1.14. 半监督学习#
Semi-supervised learning 是指训练数据中的一些样本没有标记的情况。中的半监督估计器 sklearn.semi_supervised
能够利用这些额外的未标记数据来更好地捕捉底层数据分布的形状,并更好地推广到新样本。当我们有非常少量的标记点和大量的未标记点时,这些算法可以很好地执行。
备注
半监督算法需要对数据集的分布做出假设,以实现性能提升。看到 here 了解更多详细信息。
1.14.1. 自我培训#
这种自我训练实现基于Yarowsky的 [1] 算法使用该算法,给定的监督分类器可以充当半监督分类器,使其能够从未标记的数据中学习。
SelfTrainingClassifier
可以用任何实现 predict_proba
,作为参数传递 estimator
.在每次迭代中, estimator
预测未标记样本的标签,并将这些标签的子集添加到已标记的数据集。
该子集的选择由选择标准确定。此选择可以使用 threshold
关于预测概率,或者通过选择 k_best
根据预测概率进行样本。
用于最终匹配的标签以及标记每个样本的迭代都可以作为属性提供。任择 max_iter
参数指定循环最多执行多少次。
的 max_iter
参数可设置为 None
,导致算法迭代,直到所有样本都有标签或在该迭代中没有选择新样本。
备注
当使用自训练分类器时, calibration 分类器的重要性。
示例
引用
1.14.2. 标签传播#
标签传播表示半监督图推理算法的一些变体。
- 该型号提供的一些功能:
用于分类任务
将数据投影到替代维度空间的核心方法
scikit-learn
提供了两种标签传播模型: LabelPropagation
和 LabelSpreading
.两者都是通过在输入数据集中的所有项目上构建相似性图来工作的。

An illustration of label-propagation: the structure of unlabeled observations is consistent with the class structure, and thus the class label can be propagated to the unlabeled observations of the training set.#
LabelPropagation
和 LabelSpreading
不同的是对图形相似性矩阵的修改以及对标签分布的钳位效应。钳位允许算法在某种程度上改变真实地面标记数据的权重。的 LabelPropagation
算法对输入标签执行硬钳位,这意味着 \(\alpha=0\) .可以说,这个夹持因素可以放宽 \(\alpha=0.2\) ,这意味着我们将始终保留80%的原始标签分布,但算法可以在20%内改变其对分布的置信度。
LabelPropagation
使用根据未经修改的数据构建的原始相似性矩阵。相反, LabelSpreading
最小化具有正规化属性的损失函数,因此它通常对噪音更稳健。该算法在原始图的修改版本上迭代,并通过计算正规化图拉普拉斯矩阵来正规化边权重。此过程也用于 谱聚类 .
标签传播模型有两个内置的内核方法。内核的选择会影响算法的可扩展性和性能。以下可用:
rbf (\(\exp(-\gamma |x-y|^2), \gamma > 0\)). \(\gamma\) is specified by keyword gamma.
KNN (\(1[x' \in kNN(x)]\) ). \(k\) 由关键字n_neighbors指定。
RBS核将产生一个全连接图,该图在存储器中由密集矩阵表示。该矩阵可能非常大,并且再加上对算法的每次迭代执行完整矩阵相乘计算的成本可能会导致运行时间过长。另一方面,KNN核将产生一个更内存友好的稀疏矩阵,可以大幅减少运行时间。
示例
引用
[2] 约塞米蒂·本吉奥、奥利维尔·德拉洛、尼古拉斯·勒鲁。在半监督学习(2006)中,pp。193-216
[3] Olivier Delalleau、Yoire Bengio、Nicolas Le Roux。半监督学习中高效的非参数函数归纳。AISTA 2005 https://www.gatsby.ucl.ac.uk/aistats/fullpapers/204.pdf