0

機能とそのラベルを含むデータセットがあります。

次のようになります。

X1, X2, X3, X4, X5 .. Xn L1, L2, L3
Y1, Y2, Y3, Y4, Y5 .. Yn L5, L2
..

このデータセットで KNeighborsClassifier をトレーニングしたいと考えています。sklearn はマルチラベルを取らないようです。私はこれを試してきました:

mlb = MultiLabelBinarizer()
Y = mlb.fit_transform(Y)

# parameters:  n_neighbors=[5,15], weights = 'uniform', 'distance'
bagging = BaggingClassifier(KNeighborsClassifier(n_neighbors =5,weights ='uniform'), max_samples = 0.6, max_features= 0.7, verbose =1, oob_score =True)
scores = cross_val_score(bagging, X, Y, verbose =1, cv=3, n_jobs=3, scoring='f1_macro')

それは私に与えていますValueError: bad input shape

sklearn でマルチラベル分類子を実行する方法はありますか?

4

3 に答える 3

2

sklearn のドキュメントによると、多出力多クラス分類タスクをサポートする分類子は次のとおりです。

決定木、ランダム フォレスト、最近傍

于 2015-10-28T12:37:16.277 に答える
2

ラベルのバイナリ マトリックスがあるため、ハンドル マルチラベル予測OneVsRestClassifierを行うために使用できます。BaggingClassifierコードは次のようになります。

bagging = BaggingClassifier(KNeighborsClassifier(n_neighbors=5, weights='uniform'), max_samples=0.6, max_features=0.7, verbose=1, oob_score=True)
clf = OneVsRestClassifier(bagging)
scores = cross_val_score(clf, X, Y, verbose=1, cv=3, n_jobs=3, scoring='f1_macro')

OneVsRestClassifierを任意の sklearn モデルで使用して、マルチラベル分類を行うことができます。

説明は次のとおりです。

http://scikit-learn.org/stable/modules/multiclass.html#one-vs-the-rest

そして、ここにドキュメントがあります:

http://scikit-learn.org/stable/modules/generated/sklearn.multiclass.OneVsRestClassifier.html

于 2015-12-09T15:37:35.263 に答える