多类别分类器,多标签分类,多输出分类

多类别分类器

能直接处理多类:如 随机森林,朴素贝叶斯
二元分类器实现多类:如 SVM,线性分类器
  • 直接y传入不同类即可,比如布尔变数字
  • OvA 一对多 n类训练n个
  • OvO 一对一 n类训练n*(n-1)/2个
  • 可以强制分类器使用

多标签分类器

  • KneighborsClassifier

    from sklearn.neighbors import KNeighborsClassifier

y_train_large = (y_train >= 7)
y_train_odd = (y_train %2 == 1)
y_multilabel = np.c_[y_train_large, y_train_odd]

knn_clf = KNeighborsClassifier()
knn_clf.fit(X_train, y_multilabel)

knn_clf.predict([some_digit]).shape

#(2,)两个输出

多输出分类器

  • 使用knn,将带噪声的手写字体还原为干净的手写字体

    训练X_train为带噪声的手写字体,y_train为不带噪声的