之前我们都是在Binary classification的基础上学习算法和知识。
如何使用Binary classification算法进行Multiclass classification呢?
(一)One Versus All (OVA)Decomposition
现在有k种类别,如何进行分类呢?
思路1:分辨是这一类or不是这一类(Yes or Not),将问题转化成k个binary classification问题。最终得到k个w。
思路2-1:对于每一个x,我们使用logistic regression,看看x属于哪个类别的概率大;
OVA的问题是什么呢?source Unbalance。假设我们现在有100个类别,每个类别各占1%。那么,在进行某一类的【Yes or not】 binary 分类时,即使算法的回答是:全部是not,那么这个算法的准确率也是99%。效果非常好。
(二) One Versus One Decomposition
还是同样的问题,假设有k个类别。
第一步还是按照思路1,拆分成binary分类问题。但是需要拆分为个binary classification问题。
但是思路2-1明显不适合此处了,这种情况下,最合适的算法是投票(voting)
思路2-2:voting of classifiers。
无论是OVA还是OVO,他们都是一种meta-algorithm。它们依赖于其他的算法(此处依赖于线性分类算法),是一个计算框架,具体的内容需要用别的算法来填充。