Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Machine learning 基于Sklearn的多标签分类_Machine Learning_Scikit Learn_Classification_Logistic Regression_Multilabel Classification - Fatal编程技术网

Machine learning 基于Sklearn的多标签分类

Machine learning 基于Sklearn的多标签分类,machine-learning,scikit-learn,classification,logistic-regression,multilabel-classification,Machine Learning,Scikit Learn,Classification,Logistic Regression,Multilabel Classification,我曾尝试使用Sklearn的OneVsRest和逻辑回归,但它为一些样本提供了空标签(即,不预测任何结果),即使我没有任何未标记的训练数据 知道是什么原因造成的吗?或者如何修复 clf = OneVsRestClassifier(LogisticRegression(multi_class='ovr',max_iter=1000,solver='lbfgs')) clf.fit(X,Y) self.classifier=clf self.classifier.predict(test_dat

我曾尝试使用Sklearn的OneVsRest和逻辑回归,但它为一些样本提供了空标签(即,不预测任何结果),即使我没有任何未标记的训练数据

知道是什么原因造成的吗?或者如何修复

clf = OneVsRestClassifier(LogisticRegression(multi_class='ovr',max_iter=1000,solver='lbfgs'))
clf.fit(X,Y)
self.classifier=clf


self.classifier.predict(test_data)

每当执行多标签分类时,根据
OneVsRestClassifier
,目标必须是“标签序列”

此外,根据您对此标签的编码方式,您可能会收到以下警告:“弃用警告:从版本0.17起,将无法直接支持序列多标签表示。请使用sklearn.preprocessing.MultiLabelBinarizer转换为标签指示器表示。”

因此,对标签进行编码的好方法是:

from sklearn import preprocessing
mlb = preprocessing.MultiLabelBinarizer()
Y = mlb.fit_transform([(1, 2), (1,2), (1,2),(4,)]) 
# this means sample one belongs to classes {1,2} and so on. 
# Take into account the format if only one class is needed, (4,) not (4) 
所以Y原来是:

array([[1, 1, 0],
       [1, 1, 0],
       [1, 1, 0],
       [0, 0, 1]])

这正是我所做的训练数据的格式是(4,)为单一标签。然而,这对一些测试数据被标记为“无”并没有帮助。好的,你们能不能给我们举一个例子,说明其中一个样本的预测结果是
None
?可能算法本身或其实现允许sklearn中的不确定性,并返回
None
。试着给我们举个例子,同时我会检查一些理论。你也可以检查
predict\u proba(X)
方法,而不是
predict
,看看它是否返回
None
,我不知道如何在这里给出一个例子,因为有预测标签的与没有预测标签的相似。然而,我尝试了你的想法来检查预测概率(X),对于所有那些没有标签的预测。它们具有所有标签的概率,因此分类器为样本的每个标签提供概率,但最终不会预测任何内容。数据集是以特征为弓的文本文档集合,并且有多个类标记这些类。