最近在看一些sklearn中的分类方法,结合实际的生产应用有一些理解,记录下来,方便以后查阅。
最基本的分类就是二分,也就是“非此即彼”。我们所熟知的SVM(支持向量机)就是用来解决这类问题的。但是实际应用中肯定不会这么简单,具体需求又大概分为两种多类别分类和多标签分类。多类别指的是类别数量大于1,每一条记录属于且只属于某一个类别,也就是彼此之间“非此即彼”,例如[人, 狗, 猫]。多标签分类则指的是每一条记录可以有多个标签来描述,记录与记录之间可以有重复的特征,例如[男人, 女人]。
通过实现sklearn的多标签分类发现,在贴完标签后,都会需要把类别标签Y矩阵进行转换,转换完的矩阵跟打点记录一样,似乎又跟多类别分类类似了。例如[1, 2, 3], [1],[4],转换后的矩阵为[1,1,1,0],[1,0,0,0],[0,0,0,1]。
另外,在实现分类的OneVsRestClassfier中,有多种函数可以用,需要多试试才能找到最适合的函数,具体根据自己的应用来定。
最后,关于分类策略的解释可以参考
http://blog.sina.com.cn/s/blog_7103b28a0102w42v.html