机器学习中的多类别分类和多标签分类

多类别分类(Multiclass Classification)

一个样本属于且只属于多个类中的一个,一个样本只能属于一个类,不同类之间是互斥的。

多标签分类(Multilable classification)

多标签分类又称多标签学习、多标记学习,不同于多类别分类,一个样本可以属于多个类别(或标签),不同类之间是有关联的。

 

sklearn.multiclass 提供了很多机器学习算法,处理multiclass和multilabel分类问题,主要是将问题转化为二分类问题,同时也支持multitarget回归问题。

 

  • Multiclass分类:多类别分类问题,类别classes数大于2,如,对水果fruit数据集分类,类别有orange。apples,pears。多分类问题,每个样本仅对应一个标签label,如一张fruit图片可能是apple或pear,而不可能同时是apple和pear。
  • Multilabel分类:多标签分类问题,每个样本对应着一组标签labels。
     

 

Multiclass(多分类分类器):

固有的

sklearn.naive_bayes.BernoulliNB
sklearn.tree.DecisionTreeClassifier
sklearn.tree.ExtraTreeClassifier
sklearn.ensemble.ExtraTreesClassifier
sklearn.naive_bayes.GaussianNB
sklearn.neighbors.KNeighborsClassifier
sklearn.semi_supervised.LabelPropagation
sklearn.semi_supervised.LabelSpreading
sklearn.discriminant_analysis.LinearDiscriminantAnalysis
sklearn.svm.LinearSVC (setting multi_class=”crammer_singer”)
sklearn.linear_model.LogisticRegression (setting multi_class=”multinomial”)
sklearn.linear_model.LogisticRegressionCV (setting multi_class=”multinomial”)
sklearn.neural_network.MLPClassifier
sklearn.neighbors.NearestCentroid
sklearn.discriminant_analysis.QuadraticDiscriminantAnalysis
sklearn.neighbors.RadiusNeighborsClassifier
sklearn.ensemble.RandomForestClassifier
sklearn.linear_model.RidgeClassifier
sklearn.linear_model.RidgeClassifierCV


Multiclass as One-Vs-One: 

sklearn.svm.NuSVC

sklearn.svm.SVC

sklearn.gaussian_process.GaussianProcessClassifier(setting multi_class = "one_vs_one")

 

Multiclass as One-Vs-All: 
sklearn.ensemble.GradientBoostingClassifier
sklearn.gaussian_process.GaussianProcessClassifier (setting multi_class = “one_vs_rest”)
sklearn.svm.LinearSVC (setting multi_class=”ovr”)
sklearn.linear_model.LogisticRegression (setting multi_class=”ovr”)
sklearn.linear_model.LogisticRegressionCV (setting multi_class=”ovr”)
sklearn.linear_model.SGDClassifier
sklearn.linear_model.Perceptron
sklearn.linear_model.PassiveAggressiveClassifier

你可能感兴趣的:(machine,learning)