当前位置:首页 > 文章列表 > 科技周边 > 人工智能 > LabelSpreading 的transduction与新样本预测有什么区别

LabelSpreading 的transduction与新样本预测有什么区别

来源:17golang原创 2026-10-31 09:43:34 0浏览 收藏

LabelSpreading 里的 transduction_ 和 predict(X) 不是同一个入口。前者是 fit(X, y) 时在整张训练图上给样本分配的标签,包含原本用 -1 标记的未标注样本;后者是模型拟合后对一批输入特征做归纳式推断,适合处理之后到来的新样本。已经有标签的训练点不要拿来证明泛化效果,生产数据也不要把 transduction_ 当成新样本预测接口。

官方文档:https://scikit-learn.org/stable/modules/generated/sklearn.semi_supervised.LabelSpreading.html

要点速览
  • transduction_ 的长度等于传给 fit 的样本数,代表训练图上的传导标签。
  • predict(X_new) 与 predict_proba(X_new) 面向拟合后的新输入,概率列顺序对应 classes_。
  • alpha 控制邻居信息相对初始标签的权重;它不是新样本置信度阈值。

先按样本来源拆开两个结果

LabelSpreading 是半监督分类器。fit 接收带标签和未标注样本的 X,未标注位置通常在 y 中写成 -1。算法根据样本之间的相似关系传播类别信息,最终把每个 fit 输入对应的标签保存到 transduction_。它回答的是“这张已参与传播的图上,每个节点现在被分到哪一类”。

predict(X_new) 的问题不同:X_new 可以是 fit 之后才出现的数据,接口执行的是文档所称的 inductive inference。它返回新输入的类别;如果需要每一类的归一化分布,使用 predict_proba。因此,二者最大的区别不是返回值类型,而是样本是否已经进入本次 fit 的传播图。

LabelSpreading fit 输入、transduction_ 训练图标签与 predict 新样本推断的边界说明图
图1:边界说明图,展示 fit 样本、transduction_ 与新样本预测的静态关系,不是运行截图。

用接口名称确认“图内标签”还是“新数据预测”

下面的写法只展示接口关系。代码中的 X_new 不应被拼回原训练数组后再用结果冒充线上预测;上线时应保留训练特征处理流程,并检查列数和顺序与 n_features_in_ 一致。

import numpy as np
from sklearn.semi_supervised import LabelSpreading

# -1 表示这一行没有人工标签,参与传播但不是已知类别。
X_fit = np.array([[0.0, 0.1], [0.2, 0.0], [1.0, 1.1], [1.2, 0.9]])
y_fit = np.array([0, -1, 1, -1])

# alpha 控制邻居信息相对初始标签的影响,不是置信度阈值。
model = LabelSpreading(kernel="rbf", alpha=0.2, max_iter=30)
model.fit(X_fit, y_fit)

# 读取 fit 阶段整张图的传导标签,长度与 X_fit 相同。
labels_on_graph = model.transduction_

# 新样本走归纳式预测;概率列按 model.classes_ 对齐。
X_new = np.array([[0.1, 0.2], [1.1, 1.0]])
new_labels = model.predict(X_new)
new_probabilities = model.predict_proba(X_new)

如果业务只想查看训练图上未标注点的补全结果,可以用 transduction_ 配合原始的 y_fit == -1 掩码;如果业务要给刚上传的记录分类,就应该调用 predict,并在需要人工复核时保留 predict_proba 的整行分布,而不是只保存最大类别。

结果对应样本适合回答的问题注意点
transduction_传给 fit 的全部样本训练图上的节点被分到哪类不能当作独立测试集成绩
predict(X_new)拟合后的新输入这批新特征预测成哪类先保持特征处理一致
predict_proba(X_new)拟合后的新输入各类别分布怎样概率不是业务风险保证

kernel 和 alpha 改变的是传播边界,不是接口含义

kernel="rbf" 使用 RBF 相似度,kernel="knn" 则按近邻关系构图;选择哪个 kernel 会改变样本之间的连接方式。gamma 用于 RBF,n_neighbors 用于 KNN。它们会影响传播结果,但不会把 transduction_ 变成预测新数据的缓存。

alpha 是 clamping factor。官方定义是:样本从邻居吸收的信息相对于初始标签的比例;alpha=0 更偏向保留初始信息,接近 1 则更偏向邻居信息。生产调参时要同时看已知标签是否被稳定保留、未标注区域是否出现整片偏向,以及新样本的概率分布是否过于平均。不要把 alpha 直接解释成“只接受 20% 置信度”。

LabelSpreading kernel、gamma、n_neighbors、alpha 与 classes_、label_distributions_ 结果的参数边界说明图
图2:参数边界说明图,展示构图参数、软约束参数与输出对象之间的静态关系;不代表实测结果。

上线前用四项检查避免误读

第一,确认训练图里的 -1 只代表未标注,不要把它当成一个真实类别;第二,把 transduction_ 和原始行号一起落盘,避免传播后重排造成错配;第三,对新样本使用与训练期完全一致的特征缩放、词向量或列选择;第四,对低置信度的新样本设置人工复核或“暂不判定”分支。若要评估泛化能力,应使用独立的有标签验证集调用 predict 后再计算指标,不能直接对 transduction_ 做训练集式自评。

相关问题

transduction_ 会包含原本已经标注的样本吗?

会。它对应 fit 输入的全部样本;未标注点会被传播赋值,但已标注点也位于同一个结果数组中。

新样本能直接追加到 transduction_ 吗?

不能。新样本应调用 predict 或 predict_proba;若数据分布或特征空间发生变化,应重新设计训练和评估流程。

predict_proba 的列顺序怎样确认?

用 model.classes_ 对照概率矩阵的列,不能按业务标签名称的字典序自行猜测。

版本声明
本文转载于:17golang原创 如有侵犯,请联系study_golang@163.com删除
Go bloom 过滤器容量不足怎样影响误判率Go bloom 过滤器容量不足怎样影响误判率
上一篇
Go bloom 过滤器容量不足怎样影响误判率
PHP strpbrk 找不到字符时怎样区分false与空字符串
下一篇
PHP strpbrk 找不到字符时怎样区分false与空字符串
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    543次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    516次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    500次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    485次学习
查看更多
AI推荐
  • PubMedQA数据集详解:生物医学问答基准、功能与应用指南
    PubMedQA
    深入了解PubMedQA生物医学问答数据集,涵盖其核心功能、使用方法及在临床决策、药物研发等场景的应用,助力提升NLP模型性能。
    809次使用
  • H2O EvalGPT:开源LLM大模型评估与排行榜工具
    H2O EvalGPT
    H2O EvalGPT是H2O.ai推出的开源LLM评估平台,提供详细的大模型性能排行榜、行业特定基准测试及A/B测试功能,助您快速选择最适合项目的高性能大语言模型。
    798次使用
  • LMArena是什么?伯克利AI模型评估平台使用指南与功能解析
    LMArena
    LMArena是加州大学伯克利分校推出的AI模型匿名评测平台。通过盲测投票机制,用户可对比不同大模型回答并生成实时排行榜,助力开发者优化模型及用户选择最佳AI工具。
    889次使用
  • 斯坦福HELM:大语言模型Holistic Evaluation整体评估框架详解
    HELM
    深入了解斯坦福推出的HELM(Holistic Evaluation of Language Models)大模型评测体系。本文解析其核心功能、安装配置步骤及应用场景,涵盖准确性、公平性、鲁棒性等多维度指标,助力开发者全面优化语言模型性能。
    860次使用
  • MMBench详解:多模态大模型基准测试、功能特点与使用指南
    MMBench
    MMBench是由上海人工智能实验室等机构联合推出的多模态基准测试平台,提供细粒度能力评估、大规模数据集及VLMEvalKit工具。本文详细介绍其核心功能、安装使用方法及应用场景,助力开发者全面评估多模态模型性能。
    687次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议 和 隐私政策
返回登录
  • 重置密码