scikit-learn 半监督学习实战指南:LabelPropagation 与 LabelSpreading 原理、参数与示例解析
文档机器学习教程【免费下载链接】sklearn-doc-zh:book: [译] scikit-learnsklearn 中文文档项目地址https://gitcode.com/gh_mirrors/sk/sklearn-doc-zh点击查看免费下载导读本文基于 scikit-learnsklearn0.21.3 官方文档中文版docs/master/15.md系统讲解sklearn.semi_supervised模块中的半监督学习算法重点剖析标签传播Label Propagation与标签扩散Label Spreading两种模型的原理差异、核函数选择、夹持clamping机制以及工程实践中的性能取舍。读完本文你将掌握如何用-1标记未标注样本、配置gamma/n_neighbors等核心参数并结合仓库示例快速上手半监督分类任务。在训练数据中只有一部分样本带有标签、其余样本没有标签的场景被称为半监督学习Semi-supervised learning。sklearn.semi_supervised中的半监督估计器能够利用这些附加的未标记数据更好地捕获底层数据分布的形状并将其更好地推广到新的样本。当训练数据中有非常少量的有标签点、却有大量的无标签点时这些算法往往可以表现得很好。y中含有未标记的数据在使用fit方法训练数据时为无标签和有标签的点分配标识符是尤其重要的。本实现使用的标识符是整数值-1即未标记样本的目标值统一填入-1。半监督学习在 scikit-learn 中的定位在本文档所在仓库的目录结构中半监督学习位于「用户指南 → 1. 监督学习 → 1.14 半监督学习」一节见 docs/master/SUMMARY.md 与 docs/master/1.md 中的导航链接。它属于监督学习体系中的特殊分支模型在训练阶段同时消费有标签数据与无标签数据。sklearn.semi_supervised模块对外暴露两个核心估计器LabelPropagation与LabelSpreading。从 API 视角看它们均被归入 scikit-learn 的固有inherently多类分类器列表——这意味着它们天然支持多类分类无需借助OneVsRestClassifier等元评估器包装见 docs/master/13.md 中的分类器汇总表。如上图所示标签传播的核心直觉是无标签的观测值结构与类结构一致因此可以将类标签传播到训练集的无标签观测值上——只要数据本身的流形/簇结构与类别分布吻合少量的标注点就足以把标签扩散到整个数据分布。1.14.1 标签传播Label Propagation总览标签传播表示半监督图推理算法的几个变体。这类算法基于图Graph来推理标签其模型特性如下可用于分类和回归任务LabelPropagation同时提供predict与predict_proba并可通过设置fit目标为连续值做回归使用**核方法kernel methods**将数据投影到备用维度空间从而在核诱导的特征空间中度量样本相似性。scikit-learn提供了两种标签传播模型LabelPropagation和LabelSpreading。两者都通过在输入数据集中的所有项目上**构建相似图similarity graph**来进行工作将每个样本视为图中的一个节点样本间的相似度作为边的权重随后让标签沿图的边进行传播直到收敛。LabelPropagation 与 LabelSpreading 的核心差异两种模型的名字相似、流程相似但在两个关键环节上存在实质性区别相似性矩阵的构建方式以及对标签分布的夹持效应clamping effect。夹持效应硬夹持与软夹持夹持效应允许算法在一定程度上改变真实标签化数据的权重LabelPropagation算法执行输入标签的全加持hard clamping这意味着夹持系数 $\alpha0$——即原始标签完全固定在迭代传播过程中绝不会被算法修改传播只作用于未标记节点夹持因子可以不一定那么严格。例如 $\alpha0.2$ 意味着算法将始终保留原始标签分配的 80%但允许其在传播过程中将自身分布的置信度改变 20% 以内。LabelSpreading正是通过这种软夹持机制给已标记节点也留出了自我修正的空间。相似性矩阵与损失函数LabelPropagation使用原始相似性矩阵从未修改的数据构建图传播过程直接在该矩阵上进行LabelSpreading则最小化具有正则化属性的损耗函数因此它通常更适用于噪声数据。算法在原始图形的修改版本上进行迭代并通过计算normalized graph Laplacian matrix归一化图拉普拉斯矩阵来对边缘的权重进行归一化。这一归一化过程同样被用于 scikit-learn 的Spectral clustering谱聚类参见用户指南「2.3 聚类」章节 docs/master/22.md。简单归纳如果数据含噪较多优先考虑LabelSpreading的正则化传播如果希望已标注样本的标签绝对不可变例如标注来自人工、可信度极高则LabelPropagation的全加持行为更贴合需求。核函数的选择rbf 与 knn标签传播模型内置了两种核函数。核的选择会显著影响算法的可扩展性和性能核函数数学形式关键参数rbf$\exp(-\gamma |x-y|^2), \gamma 0$gamma通过关键字gamma指定knn$1[x \in kNN(x)]$n_neighbors通过关键字n_neighbors指定两种核的工程代价差异明显RBF 核将产生一个全连接的图它通过密集矩阵在内存中表示。这个矩阵可能非常大加上算法每次迭代都要执行全矩阵乘法的计算成本我们可能会面临特别长的运行时间另一方面KNN 核能够产生更内存友好的稀疏矩阵这可以大幅度地减少运行时间。因此在样本量较大、内存受限或对训练耗时敏感的场景中优先选用kernelknn并调节n_neighbors在样本量较小、希望利用全局相似度结构的场景中kernelrbf配合gamma更合适。实战在 scikit-learn 中使用标签传播最小可用示例import numpy as np from sklearn.semi_supervised import LabelPropagation, LabelSpreading # 假设 X 是特征矩阵y 中已标注样本为 0/1未标注样本一律填 -1 X np.array([...]) # n_samples x n_features y np.array([0, 1, -1, ...]) # 未标记样本填 -1 lp LabelPropagation(kernelrbf, gamma0.25, max_iter1000) lp.fit(X, y) predicted lp.predict(X) # 噪声数据下可改用 LabelSpreading并保留部分对真实标签的软夹持 ls LabelSpreading(kernelknn, n_neighbors7, alpha0.2, max_iter100) ls.fit(X, y)使用要点未标记样本的目标值必须为-1这是该模块约定的标识符fit内部会据此区分已标记与未标记节点半监督估计器具有与普通分类器一致的fit/predict/predict_proba接口可无缝接入 Pipeline 与交叉验证流程从源码结构看二者的迭代过程均为构建相似图 → 归一化LabelSpreading计算图拉普拉斯→ 迭代传播标签直至收敛收敛由max_iter控制。仓库配套的官方示例本文档所在仓库的示例目录中半监督分类相关示例收录于 docs/examples/README.md 的「半监督分类」一节共四个Iris 数据集上标签传播与 SVM 的决策边界对比plot_label_propagation_versus_svm_iris在经典鸢尾花数据上仅标注少量样本对比标签传播与 SVM 在极少标注下的决策边界差异标签传播学习复杂的结构plot_label_propagation_structure使用嵌套环状two moons 类数据演示 KNN 型标签传播如何沿流形结构把类标签扩散到未标注观测值标签传播数字演示性能plot_label_propagation_digits在手写数字数据集digits上演示半监督性能标签传播数字主动学习plot_label_propagation_digits_active_learning将标签传播与主动学习active learning结合迭代挑选最有信息量的样本进行标注。以下为「标签传播学习复杂的结构」示例的运行结果缩略图左侧是原始数据橙色点为未标记样本仅极少量标注点右侧是LabelSpreadingKNN 核学习后的标签结果可见未标记样本被正确划分到对应的嵌套环类中对应的示例缩略图与中文标题均可在 docs/examples/img 目录下找到如sphx_glr_plot_label_propagation_digits_thumb.png、sphx_glr_plot_label_propagation_digits_active_learning_thumb.png、sphx_glr_plot_label_propagation_versus_svm_iris_thumb.png便于读者按图索骥定位完整示例。典型应用场景与选型建议结合半监督学习的定义与上述算法特性标签传播类方法尤其适合以下场景标注成本高昂仅有少量人工标注如几十个点但有海量未标注数据如数万个点——此时算法能利用未标注点的分布结构大幅提升泛化能力数据结构与类别分布强相关当数据的流形/簇结构与类别标签高度一致时如环形嵌套数据、文档主题聚类标签传播效果显著含噪标注或软标签场景使用LabelSpreading的正则化损失与软夹持如alpha0.2允许传播过程轻微修正初始标注多类分类LabelPropagation与LabelSpreading均属于固有的多类分类器见 docs/master/13.md可直接输出多类标签。选型速查需要绝对信任原始标注→ 用LabelPropagation硬夹持$\alpha0$数据含噪、标注可能有误→ 用LabelSpreading软夹持 正则化样本量大、内存紧张 →kernelknn 合理n_neighbors稀疏矩阵样本量小、追求全局结构 →kernelrbf 调gamma。参考资料本文档docs/master/15.md引用的算法原始文献如下供深入理解理论背景时查阅[1] Yoshua Bengio, Olivier Delalleau, Nicolas Le Roux. InSemi-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若需继续深入可在本仓库中对照阅读用户指南目录导航 docs/master/SUMMARY.md、多类分类器汇总 docs/master/13.md、谱聚类与归一化图拉普拉斯相关所在的聚类章节 docs/master/22.md以及示例索引 docs/examples/README.md。赞分享文档机器学习教程【免费下载链接】sklearn-doc-zh:book: [译] scikit-learnsklearn 中文文档项目地址https://gitcode.com/gh_mirrors/sk/sklearn-doc-zh点击查看免费下载相关推荐scikit-learn 半监督学习完全指南SelfTrainingClassifier、LabelPropagation 与 LabelSpreading 的原理与实践scikit learn 半监督学习完全指南SelfTrainingClassifier、LabelPropagation 与 LabelSpreading人工智能机器学习数据科学scikit-learn监督学习算法实战scikit learn监督学习算法实战 文章详细介绍了scikit learn中四大核心监督学习算法线性模型与正则化方法、支持向量机与核方法、决策树与集成学人工智能机器学习数据科学scikit-learn 监督神经网络MLPClassifier / MLPRegressor完整指南原理、算法与实战调参scikit learn 监督神经网络MLPClassifier / MLPRegressor完整指南原理、算法与实战调参 本文全面讲解 scikit l人工智能机器学习数据科学上一篇高效图像标注实战指南5步掌握make-sense专业标注流程下一篇终极指南一键获取官方原版macOS安装文件Windows/Mac全平台支持创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Agent Infra实战指南:从零搭建稳定智能体基础设施

Agent Infra实战指南:从零搭建稳定智能体基础设施

1. 为什么“Agent Infra”成了绕不开的话题1.1 从一个真实困惑说起前阵子有个做后端的朋友找我聊天,说他所在的团队想给产品加一个“智能助手”功能,一开始大家觉得不就是调个模型接口嘛,两三天就能搞定。结果真动手才发现,事情远…

2026/10/13 9:43:46 阅读更多 →
从六级到SCI一区:学术英语与论文发表全攻略

从六级到SCI一区:学术英语与论文发表全攻略

1. 项目背景与目标定位"六级阅读-我要发SCI一区"这个看似简单的标题,实际上揭示了科研工作者在学术英语能力提升与高水平论文发表之间的关键路径。作为经历过从英语基础薄弱到发表多篇一区论文的过来人,我深刻理解这个标题背后包含的两个核心诉…

2026/10/13 9:42:44 阅读更多 →
腾讯淡马锡押注2亿美元,鸣鸣很忙IPO背后的基石投资逻辑

腾讯淡马锡押注2亿美元,鸣鸣很忙IPO背后的基石投资逻辑

鸣鸣很忙的招股书一出,最抓眼球的就是那笔2亿美元的基石投资,以及腾讯、淡马锡这两个名字。1月28日上市,这意味着这家量贩零食连锁品牌正式踏入二级市场。很多人看到“腾讯加持”“淡马锡进场”就开始兴奋,但说实话,光…

2026/10/13 9:42:44 阅读更多 →

最新新闻

元宝    LeetCode 332. Reconstruct Itinerary Java Implement

元宝 LeetCode 332. Reconstruct Itinerary Java Implement

Core idea: Hierholzer’s algorithm for an Eulerian path. A naive lexical greedy walk can get stuck (e.g. “JFK→KUL” dead-ends when “JFK→NRT→JFK→KUL” is the answer). The fix: keep walking greedily, but only append each airport on the way back up — d…

2026/10/13 10:21:51 阅读更多 →
Android Room数据库升级迁移实战:从原理到避坑指南

Android Room数据库升级迁移实战:从原理到避坑指南

1. 从一次数据库迁移事故说起:为什么Room升级值得单独拎出来讲做Android开发的人,几乎都经历过这样的场景:App上线了一个版本,本地数据库表结构设计得不太合理,产品经理又提了新需求,需要加字段、改类型、拆…

2026/10/13 10:21:51 阅读更多 →
C语言复习(内存、结构体)

C语言复习(内存、结构体)

结构体存储有int类型的存在故这个结构体的存储是12个字节(9不是整数倍),类型的顺序不一样占用内存大小不同2.内存管理:内存管理的注意事项:内存泄露、

2026/10/13 10:21:51 阅读更多 →
源码编译实战:从configure到定制安装的完整指南

源码编译实战:从configure到定制安装的完整指南

干了这么多年开发和运维,我慢慢发现一个规律:凡是对系统里某个软件有特殊要求的人,最终都会走到“源码编译”这条路上来。官方仓库下载即用的二进制包确实省事,可一旦你想换个编译参数、加一个官方版本里没带的功能模块&#xff0…

2026/10/13 10:21:51 阅读更多 →
OpenMuse:轻量级Personal Agent框架的工程实践与扩展指南

OpenMuse:轻量级Personal Agent框架的工程实践与扩展指南

1. 项目概述:OpenMuse 是什么,又不止是什么个人助理(Personal Agent)这个词已经喊了两年多,但真正能落到工程实处的开源项目少得可怜。大多数时候,你能看到的只是一堆概念拼盘:说记忆、说规划、…

2026/10/13 10:21:51 阅读更多 →
K8s 探针配置的 3 个反直觉行为:为什么 Pod 一直没就绪

K8s 探针配置的 3 个反直觉行为:为什么 Pod 一直没就绪

我不会起名字322 后端 / 算法 / 数据库 📘 技术栈 | 🧩 力扣 Hot100 | 🐹 Go 项目 | 🟥 Redis | 🐬 MySQL 文章目录K8s 探针配置的 3 个反直觉行为:为什么 P…

2026/10/13 10:20:50 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →