【发布时间】:2013-12-03 13:44:28
【问题描述】:
我有 2000 个标记数据(7 个不同的标签)和大约 100K 未标记数据,我正在尝试使用 sklearn.semi_supervised.LabelPropagation。数据有 1024 个维度。我的问题是分类器将所有内容标记为 1。我的代码如下所示:
X_unlabeled = X_unlabeled[:10000, :]
X_both = np.vstack((X_train, X_unlabeled))
y_both = np.append(y_train, -np.ones((X_unlabeled.shape[0],)))
clf = LabelPropagation(max_iter=100).fit(X_both, y_both)
y_pred = clf.predict(X_test)
y_pred 都是一。此外,X_train 是 2000x1024,X_unlabeled 是未标记数据的子集,即 10000x1024。
在分类器上调用 fit 时,我也会收到此错误:
/usr/local/lib/python2.7/site-packages/sklearn/semi_supervised/label_propagation.py:255: RuntimeWarning: 除法中遇到无效值 self.label_distributions_ /= 规范化器
【问题讨论】:
-
我遇到了类似的问题。事实证明,我的
X设置错误,整个矩阵重复了一行。我建议检查X_unlabeled、X_both等的元素。 -
@Andrew Danks:这篇文章已经很老了,但是你是怎么解决这个问题的?
标签: machine-learning scikit-learn