でマルチラベルデータを予測、OneVsRest分類器は、マルチラベル分類をサポートしていますhttp://scikit-learn.org/stable/modules/multiclass.html#multilabel-learningは、ドキュメントによるとsklearn
は、ここで私が実行しようとしているコードです:
from sklearn import metrics
from sklearn.preprocessing import MultiLabelBinarizer
from sklearn.multiclass import OneVsRestClassifier
from sklearn.cross_validation import train_test_split
from sklearn.svm import SVC
x = [[1,2,3],[3,3,2],[8,8,7],[3,7,1],[4,5,6]]
y = [['bar','foo'],['bar'],['foo'],['foo','jump'],['bar','fox','jump']]
y_enc = MultiLabelBinarizer().fit_transform(y)
train_x, train_y, test_x, test_y = train_test_split(x, y_enc, test_size=0.33)
clf = OneVsRestClassifier(SVC())
clf.fit(train_x, train_y)
predictions = clf.predict_proba(test_x)
my_metrics = metrics.classification_report(test_y, predictions)
print my_metrics
私は次のエラーを取得する:
Traceback (most recent call last):
File "multilabel.py", line 178, in <module>
clf.fit(train_x, train_y)
File "/sklearn/lib/python2.6/site-packages/sklearn/multiclass.py", line 277, in fit
Y = self.label_binarizer_.fit_transform(y)
File "/sklearn/lib/python2.6/site-packages/sklearn/base.py", line 455, in fit_transform
return self.fit(X, **fit_params).transform(X)
File "/sklearn/lib/python2.6/site-packages/sklearn/preprocessing/label.py", line 302, in fit
raise ValueError("Multioutput target data is not supported with "
ValueError: Multioutput target data is not supported with label binarization
MultiLabelBinarizerを使用していない場合、同じエラーが発生するため、問題ではないと想定しています。誰もがマルチラベルデータにこの分類子を使用する方法を知っていますか?
テキストのリストからx DataFrameをどのように派生させますか? – MyopicVisage