使用scikit-learn进行回归的半监督学习

在scikit-learn中,标签传播可以用于半监督回归任务吗?根据其API,答案是肯定的。http://scikit-learn.org/stable/modules/label_propagation.html

然而,当我尝试运行以下代码时,收到了错误消息。

from sklearn import datasetsfrom sklearn.semi_supervised import label_propagationimport numpy as nprng=np.random.RandomState(0)boston = datasets.load_boston()X=boston.datay=boston.targety_30=np.copy(y)y_30[rng.rand(len(y))<0.3]=-999label_propagation.LabelSpreading().fit(X,y_30)

在label_propagation.LabelSpreading().fit(X,y_30)这一行显示了”ValueError: Unknown label type: ‘continuous'”错误。

我该如何解决这个问题?非常感谢。


回答:

看起来是文档中的错误,代码本身显然只适用于分类(在BasePropagation类.fit调用开始部分):

    check_classification_targets(y)    # 实际图构建(实现应覆盖此方法)    graph_matrix = self._build_graph()    # 标签构建    # 仅为分类构建分类分布    classes = np.unique(y)    classes = (classes[classes != -1])

理论上,你可以移除”check_classification_targets”调用,并使用类似回归的方法,但这并不是真正的回归,因为你永远不会“传播”训练集中未遇到的任何值,你只是将回归值视为类标识符。而且你将无法使用值”-1″,因为它是“未标记”的代号…

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注