【机器学习】(19)—— 数据特性与标签
数据特性与标签划分前先摸清文章目录数据特性与标签划分前先摸清1. 为什么「先划分」还不够2. 数据特性四问2.1 类型是什么数据2.2 数量样本够不够2.3 数据质量2.4 可信度3. 不可靠数据从哪来4. 不完整样本删除还是填补4.1 什么时候删除4.2 什么时候填补5. 标签直接标签与代理标签5.1 两种标签5.2 人工标注 vs 自动标注6. 划分中的隐藏坑6.1 跨集合重复6.2 验证集 / 测试集磨损6.3 分布不一致与非平稳6.4 变换泄漏7. 划分前清单与汽车小例子8. 动手去重、填补、防泄漏划分9. 能力边界与常见误区9.1 适用边界9.2 常见误区10. 关键术语速查11. 延伸阅读12. 小结摘要第 18 篇讲了训练/验证/测试三分法但若数据本身不可靠再标准的划分也只是「把垃圾切成三份」。本文讲清数据集的类型、数量、质量与可信度不完整样本该删还是该补直接标签与代理标签怎么选以及划分前后最常见的隐藏坑重复、验证集磨损、分布错位、变换泄漏。继续用汽车重量与油耗示例。适合刚读完泛化入门的读者。1. 为什么「先划分」还不够三分法回答的是参数在哪学、超参在哪调、最终在哪验收。它回答不了另一类问题这批车的重量、标签靠不靠谱缺了 MPG 的行怎么办「高效」标签是真标记还是用别的字段凑的训练集和测试集是不是同一辆车出现了两次数据集Dataset是样本的集合模型再强也强不过它所见过的数据。划分之前先把家底摸清。本单元进度篇次聚焦第 18 篇泛化、过/欠拟合、三分法本篇19数据特性、标签、划分中的坑后续篇类别不平衡模型复杂度与损失曲线2. 数据特性四问2.1 类型是什么数据一张表里常见并存类型汽车示例专栏位置数值重量、排量、MPG第 1416 篇类别品牌、颜色、邮编第 17 篇文本 / 多媒体车评、外观图后续专题其他模型输出上游打分、Embedding进阶篇类型搞错把邮编当数值会从根上歪掉第 17 篇已强调过。2.2 数量样本够不够粗经验可训练参数越多通常需要越多样本。简单说法是样本数最好比参数量大一个数量级以上好模型往往还要更多。另一条实用规律大样本 少而精的特征常常胜过小样本 特征堆满。专栏里 7 辆车只够讲概念真实油耗模型需要远更大规模。小数据也不是绝路若能从同结构、大数据上预训练再适配有时也能出活——但那是迁移学习路线前提仍是标签与特征定义要对齐。2.3 数据质量质量不必玄学化用结果定义即可高质量数据帮助模型达成目标低质量数据阻碍目标。预测「是否高效」时若高效标签大量标反再漂亮的 AUC 也只是拟合错误标签。2.4 可信度可信度Reliability问的是标签错得多吗特征噪不噪过滤条件是否匹配任务做垃圾邮件检测时机器人流量可能该留做「真人搜索体验」时机器人查询往往该滤掉——同一类脏数据任务不同去留不同。3. 不可靠数据从哪来问题汽车例子典型后果缺值某行重量空白无法组成完整特征向量重复样本同一日志上传两次训练/测试泄漏分数虚高坏特征值3.43 录成 34.3回归被极端点拉歪第 16 篇坏标签重油车标成高效监督信号本身错了坏数据段某日传感器全坏局部切片系统性偏差大到一定规模的数据集几乎一定有异常值关键是用规则、单测、监控把离谱值标出来再决定删、改还是保留第 16 篇的异常值决策树仍然适用。4. 不完整样本删除还是填补完整样本每个要用的特征都有值。不完整样本至少一个必要特征缺失。不要直接拿缺特征的行去训线性/逻辑回归——向量长度对不上或被迫塞进无意义的默认值却不告诉模型。4.1 什么时候删除完整样本已经够训出有用模型某一列缺失极多且实验证明去掉该特征损失不大 → 可删列而不是硬补删除要小心别把重要但稀有的真实样本当垃圾扔掉。吃不准时可以做两套数据只删 vs 填补对比验证集表现。4.2 什么时候填补完整样本不够时常用填补Imputation用有依据的估计值补上而不是乱填。数值列常见均值、中位数有时序时也可用邻近时刻但补完后训练集仍要打乱避免按时间排序直接训练。填补值几乎总不如真值。更好的做法是加一列布尔标记例如weight_is_imputed让模型自己学「补出来的重量要不要少信一点」。标准化后均值常为 0缺值补 0 在 z-score 空间里往往对应「补均值」。5. 标签直接标签与代理标签监督信号来自标签Label。标签也必须最终能变成浮点数才能进损失计算。5.1 两种标签类型含义汽车例子直接标签与预测目标完全一致预测是否高效列里就有efficient代理标签与目标相近但不相同没有efficient用「是否上过节能榜」近似能直接用直接标签就别绕弯。代理标签永远是折中模型上限取决于「代理」和「真目标」有多贴。再举一个非车例子帮助直觉想预测「是否有自行车」若没有owns_bike用recently_bought_bike往往是还不错但不完美的代理——买车的人多半有车但也可能是送礼。专栏里用 MPG 阈值造「高效」标签时要想清楚你要的是「官方节能认证」还是「按 MPG 切一刀」后者是可复现的工程定义前者才是某些业务的直接标签。5.2 人工标注 vs 自动标注人工标注自动标注优点能做难任务倒逼标准写清楚便宜、可规模化风险贵、慢、人也会错需多人交叉上游模型错会系统性传染实用建议自己先标一小批如 1001000 条和众包/同事结果对照。不一致时先别默认自己一定对——尤其涉及主观判断时优先把标注说明书写清楚再重标。6. 划分中的隐藏坑第 18 篇讲了三分法该怎么用下面是分数「假好看」的常见原因。6.1 跨集合重复同一辆车或同一条日志既在训练集又在测试集等于开卷考试。划分后应检查并去掉验证/测试里与训练重复的样本。邮件反垃圾场景里同一封垃圾信复制多份最容易制造「训练测试双 99%」的幻觉。6.2 验证集 / 测试集磨损验证集可以反复用于调参但用得越多越像间接训练集置信度下降。测试集若也拿来天天调最后验收就失真。对策阶段性换新验证/测试数据或严格限制测试集动用次数。6.3 分布不一致与非平稳训练集全是夏季车况、测试全是冬季或用十年前的用户口味预测三年后的爆款——都属于第 18 篇提过的同分布 / 平稳假设被破坏。此时测试损失低只说明切到了相似切片不代表上线能泛化。6.4 变换泄漏更隐蔽的一种先对全表做StandardScaler.fit再划分训练/测试。测试信息通过均值方差漏进了预处理。正确顺序是先划分 → 只在训练集 fit 变换 → 再 transform 验证/测试第 15、17 篇的 Pipeline 思路正是为了堵住这类洞。7. 划分前清单与汽车小例子假设原始表如下含故意埋的坑idweightmpgnote13.5018正常23.6915正常33.5018与 id1 重复4NaN16缺重量534.316疑似录入错误62.3724正常建议处理顺序去重按业务键如车架号演示里可用weightmpg近似异常值34.3 核对后删除或改正缺值完整样本够则删行不够则中位数填补 weight_is_imputed确认标签定义回归用mpg分类用阈值后的efficient打乱再切训练/验证/测试检查各集合是否仍有重复、重量分布是否离谱8. 动手去重、填补、防泄漏划分importnumpyasnpimportpandasaspdfromsklearn.model_selectionimporttrain_test_splitfromsklearn.imputeimportSimpleImputerfromsklearn.preprocessingimportStandardScalerfromsklearn.pipelineimportPipelinefromsklearn.linear_modelimportLinearRegressionfromsklearn.metricsimportmean_squared_error dfpd.DataFrame({weight:[3.50,3.69,3.50,np.nan,34.3,2.37,4.34,4.42,3.44,3.43],mpg:[18,15,18,16,16,24,15,14,18,16],})# 1) 去重dfdf.drop_duplicates()# 2) 粗滤明显录入错误业务阈值示例dfdf[df[weight].isna()|(df[weight]10)].copy()# 3) 划分先切出测试再切验证标签与特征一起切Xdf[[weight]]ydf[mpg]X_tv,X_test,y_tv,y_testtrain_test_split(X,y,test_size0.2,random_state0)X_train,X_val,y_train,y_valtrain_test_split(X_tv,y_tv,test_size0.25,random_state0)# 4) 只在训练集 fit中位数填补 标准化pipePipeline([(imputer,SimpleImputer(strategymedian)),(scaler,StandardScaler()),(model,LinearRegression()),])pipe.fit(X_train,y_train)print(val MSE:,mean_squared_error(y_val,pipe.predict(X_val)))print(test MSE:,mean_squared_error(y_test,pipe.predict(X_test)))# 注意没有在全表上先 fit scaler避免变换泄漏样本很少时分数会抖重点看流程去重 → 清洗 → 再划分 → 训练集上 fit。9. 能力边界与常见误区9.1 适用边界本篇面向表格型监督数据图像/语音的「质量」还有分辨率、采样率等维度原则相同先可信再划分。类别严重不平衡时「可信的标签」仍可能让准确率虚高——下一篇专门讲。9.2 常见误区误区正解有三分法就够了先保证数据可信再谈划分缺值一律删光可能删掉关键稀有样本可对比填补方案缺值乱填 0 且不告知模型至少标记是否为填补值代理标签当直接真相始终评估代理与真目标的差距验证集刷到完美再测一次测试集测试集也会磨损限制动用次数全表标准化后再划分典型泄漏必须先划分再 fit10. 关键术语速查术语一句话解释数据集用于训练与评估的样本集合样本 / 示例表中的一行一组特征 可选标签数据质量是否有助于达成建模目标可信度特征与标签可被信任的程度填补用合理估计补全缺失特征直接标签与预测目标完全一致的标签代理标签近似目标、但不完全相同的标签变换泄漏用到了验证/测试信息来 fit 预处理11. 延伸阅读资源适合看什么pandas 去重drop_duplicates用法sklearn SimpleImputer均值/中位数等填补sklearn Pipeline防止预处理泄漏专栏第 16 篇异常值识别与处理专栏第 18 篇泛化与三分法12. 小结三分法之前先问四件事类型对不对、样本够不够、质量帮不帮目标、数值与标签信不信。不完整样本在「删」与「补」之间权衡填补时最好带上标记列。标签能直接则直接代理要清楚近似误差。划分时盯死重复、验证/测试磨损、分布错位和变换泄漏。摸清家底 → 去重清洗 → 处理缺失与标签 → 打乱划分 → 仅训练集 fit 变换下一篇进入类别不平衡正负样本差几个数量级时为什么准确率会骗人以及该怎么评估与处理。系列导航上一篇【机器学习】18—— 泛化与过拟合下一篇预告类别不平衡数据集的评估与处理如果本篇对你有帮助欢迎点赞、收藏、关注博主机器学习专栏持续更新中下次更新不迷路。

相关新闻

商用 Kiosk 自助终端开发全流程:企业锁机应用资质到上线完整记录

商用 Kiosk 自助终端开发全流程:企业锁机应用资质到上线完整记录

一、前言:Kiosk商用锁机能力定位与落地门槛 鸿蒙7 API26 kioskManager 收敛至kit.AbilityKit,面向政务一体机、门店收银自助机、景区取票终端、广告触控一体机等企业无人值守商用场景,核心能力是设备开机后锁定单一应用,屏蔽桌面、…

2026/7/17 0:45:05阅读更多 →
折叠屏 FoldSplitContainer 适配全解:悬停、折痕避让生产级实现

折叠屏 FoldSplitContainer 适配全解:悬停、折痕避让生产级实现

一、组件核心定位与鸿蒙7增强能力 FoldSplitContainer 是鸿蒙7 API26 专为折叠形态打造的顶层布局容器,统一接管折叠窄屏、完全展开大屏、半折悬停三种设备形态,相比旧版手动监听折叠角度、计算窗口分区方案,原生内置四大商用核心能力&#…

2026/7/17 0:45:05阅读更多 →
选电子合同平台,别只盯着价格:四个隐形坑与避坑指南

选电子合同平台,别只盯着价格:四个隐形坑与避坑指南

去年秋天,我一个做零售连锁的朋友——叫他张总吧——在微信上跟我吐槽了一件事。 他们公司年初上了一个电子合同平台,选的时候比了五六家,最后挑了一个价格最低的。张总当时还挺得意,觉得自己会过日子,给公司省了一大笔…

2026/7/17 0:45:05阅读更多 →
AI Agent技能供应链安全:从ClawHavoc攻击看纵深防御实践

AI Agent技能供应链安全:从ClawHavoc攻击看纵深防御实践

1. 项目概述:当AI Agent的技能库成为攻击入口最近在跟进AI Agent安全研究时,一个名为“OpenClaw ClawHavoc”的供应链攻击事件引起了我的高度警觉。这不仅仅是一个孤立的安全漏洞,它像一把手术刀,精准地剖开了当前AI Agent生态&am…

2026/7/17 1:50:09阅读更多 →
MATLAB+Gurobi实现电力系统安全约束经济调度(SCED)建模与求解脚本

MATLAB+Gurobi实现电力系统安全约束经济调度(SCED)建模与求解脚本

本文还有配套的精品资源,点击获取 简介:一套开箱即用的MATLAB脚本(SCED_Gurobi.m),直接调用Gurobi求解器完成安全约束经济调度(SCED)计算。支持机组出力上下限、爬坡率限制、系统功率平衡、支…

2026/7/17 1:50:09阅读更多 →
Windows系统开机优化:原生工具提升性能

Windows系统开机优化:原生工具提升性能

1. 开机慢的真相:别被"优化"软件忽悠了每次按下电源键都要等上两三分钟才能用电脑?这种体验确实让人抓狂。但先别急着下载那些所谓的"电脑管家"类软件,它们往往才是拖慢系统的元凶。我在IT运维行业摸爬滚打十年&#xff…

2026/7/17 1:50:09阅读更多 →
终极指南:如何用FLUX.1-dev-Controlnet-Union Pro实现多模态图像控制

终极指南:如何用FLUX.1-dev-Controlnet-Union Pro实现多模态图像控制

终极指南:如何用FLUX.1-dev-Controlnet-Union Pro实现多模态图像控制 【免费下载链接】FLUX.1-dev-Controlnet-Union 项目地址: https://ai.gitcode.com/hf_mirrors/InstantX/FLUX.1-dev-Controlnet-Union 在AI图像生成领域,精确控制一直是开发者…

2026/7/17 1:50:09阅读更多 →
手机变启动盘:OTG安装电脑系统全攻略

手机变启动盘:OTG安装电脑系统全攻略

1. 为什么需要手机给电脑装系统?在维修店工作这些年,我遇到过太多客户带着无法启动的电脑来求救。最典型的就是系统崩溃后,手边没有U盘、没有光驱,甚至连第二台电脑都借不到的情况。这时候,手机这个随身设备就成了救命…

2026/7/17 1:50:09阅读更多 →
MATLAB版AES-256加密工具包:含ECB模式、PKCS#7填充与全轮函数实现

MATLAB版AES-256加密工具包:含ECB模式、PKCS#7填充与全轮函数实现

本文还有配套的精品资源,点击获取 简介:一套开箱即用的MATLAB AES-256加密解决方案,专为兼容MATLAB 2012b及以上版本设计。完整实现AES-256标准核心运算:字节替换(SubBytes/InvSubBytes)、行移位&#x…

2026/7/17 1:45:09阅读更多 →
VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异当你在VSCode中启动一个新的TypeScript项目时,第一个技术决策往往从安装方式开始。这个看似简单的选择——全局安装还是项目本地安装——实际上会深刻影响你的开发流程、团队协作和…

2026/7/16 8:28:11阅读更多 →
智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 智慧树刷课插件是一款专为智慧树在线教育平台设计的Chrome浏…

2026/7/16 6:53:04阅读更多 →
Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否在GOG或Epic Games Store购买了心仪的游戏…

2026/7/16 12:02:41阅读更多 →
VS Code 高效配置与个性化定制全攻略

VS Code 高效配置与个性化定制全攻略

1. VS Code 高效配置基础作为一款轻量级但功能强大的代码编辑器,VS Code 的默认配置已经能满足基本需求,但通过合理调整设置可以大幅提升编码效率。我使用 VS Code 已经有五年多时间,期间尝试过各种配置方案,总结出这套适合大多数…

2026/7/17 0:00:01阅读更多 →
从竞赛代码到桌面工具:让 SuperADD 与 SubspaceAD 真正跑进自己的图像

从竞赛代码到桌面工具:让 SuperADD 与 SubspaceAD 真正跑进自己的图像

在异常检测领域,很多优秀算法最初都是以研究代码的形式发布的。它们能够在固定测试集上复现实验结果,却不一定能被普通用户直接拿来测试自己的图片。尤其是最近很多算法仅提供在固定测试集的测试环境,而gradio的demo演示也不会提供。 对工程应用和在自己的图片上进行测试来…

2026/7/17 0:00:01阅读更多 →
WinRAR高效配置指南:从基础安装到高级压缩实战

WinRAR高效配置指南:从基础安装到高级压缩实战

前几天帮同事处理一个客户发来的压缩包,解压时系统自带的工具弹出一串乱码,换用 WinRAR 却顺利打开了。这种看似简单的场景,恰恰暴露了不同压缩工具在处理非标准编码、分卷压缩或加密文件时的差异。WinRAR 作为一款老牌工具,真正价…

2026/7/17 0:00:01阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/16 20:13:14阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/16 8:58:42阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/16 17:10:26阅读更多 →