scikit-learn 半监督学习

2023-02-20 13:44 更新

Semi-supervised learning是指训练数据中一些样本数据没有标签的情况。sklearn.semi_supervised 中的半监督估计器,能够利用这些附加的未标记数据来更好地捕获底层数据分布的形状,并将其更好地类推广到新的样本。当训练数据中有非常少量的有标签的点和大量的无标签的点时,这些算法可以表现良好。

y 中含有未标记的数据

在使用fit方法训练模型时,重要的是将标识符与标记数据一起分配给未标记点。此实现使用的标识符是整数值−1。

1.14.1 标签传播

标签传播表示半监督图推理算法的几个变体。

该模型中有以下几个特性:

  • 可用于分类和回归任务
  • 使用内核方法将数据投影到备用维度空间

scikit-learn 提供了两种标签传播模型: LabelPropagationLabelSpreading 。 两种方法都是在输入数据集中的所有项上构造一个相似图。


标签传播的说明: 未标记观测的结构与类结构是一致的,从而可以将类标签传播到训练集的未标记观测。

LabelPropagationLabelSpreading 在对图形的相似性矩阵以及对标签分布的夹持效应(clamping effect)方面的修改不太一样。 夹持效应允许算法在一定程度上改变真实标签化数据的权重。 LabelPropagation 算法执行输入标签的全加持(hard clamping),这意味着 。夹持因子可以不一定很严格。例如 意味着我们将始终保留原始标签分布的 80%,但该算法可以将其分布的置信度改变在 20% 以内。

LabelPropagation 使用未经修改的数据构造的原始相似度矩阵。相反 LabelSpreading最小化了具有正则化特性的损失函数,因此它通常对噪声更有鲁棒性。该算法在原始图形的修改版本上进行迭代,并通过计算 normalized graph Laplacian matrix(归一化图拉普拉斯矩阵)来对边缘的权重进行归一化。这一过程也用于光谱聚类。

标签传播模型有两个内置的核方法。核的选择对算法的可扩展性和性能都有影响。可获得以下:

  • , 通过关键字gamma指定
  • , 通过关键字 n_neighbors 指定

RBF核将生成一个完全连通的图,在内存中用稠密矩阵表示。该矩阵可能非常大,再加上对算法的每一次迭代执行全矩阵乘法计算的成本,可能导致运行时间过长。另一方面,KNN核将产生一个对内存更友好的稀疏矩阵,可以大大减少运行时间。

示例
Iris数据集上的标签传播与SVM的决策边界
使用标签传播学习复杂的结构
手写数据集上的标签传播:性能展示
手写数字数据集上的标签传播:主动学习

参考

[1] Yoshua Bengio, Olivier Delalleau, Nicolas Le Roux. In Semi-Supervised Learning (2006), pp. 193-216

[2] Olivier Delalleau, Yoshua Bengio, Nicolas Le Roux. Efficient Non-Parametric Function Induction in Semi-Supervised Learning. AISTAT 2005 https://research.microsoft.com/en-us/people/nicolasl/efficient_ssl.pdf


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号