【机器学习】(19)—— 数据特性与标签

发布时间:2026/7/17 0:40:58

【机器学习】(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—— 泛化与过拟合下一篇预告类别不平衡数据集的评估与处理如果本篇对你有帮助欢迎点赞、收藏、关注博主机器学习专栏持续更新中下次更新不迷路。

相关新闻

Rust 类型状态模式:用类型系统在编译期保证状态转换的正确性

Rust 类型状态模式:用类型系统在编译期保证状态转换的正确性

2026/7/17 0:30:58

Rust 类型状态模式:用类型系统在编译期保证状态转换的正确性 做自学转码最大的痛苦之一,就是频繁碰到"运行时 bug"——状态机少写了一个状态判断、忘记在某步操作前检查条件、非法状态被意外访问……Rust 的"类型状态模式"&#xff…

Tokio 多运行时模式:什么场景值得开多个 runtime 各管一滩的实践分析

Tokio 多运行时模式:什么场景值得开多个 runtime 各管一滩的实践分析

2026/7/17 0:30:58

Tokio 多运行时模式:什么场景值得开多个 runtime 各管一滩的实践分析 初学 Rust 异步编程时,几乎所有教程都会告诉你:"创建 Tokio runtime 时用 #[tokio::main],整个程序一个就够了。" 这句话在小项目里完全正确&#x…

浏览器端模型预加载策略:用户还没点按钮,推理已经准备好了

浏览器端模型预加载策略:用户还没点按钮,推理已经准备好了

2026/7/17 0:30:58

浏览器端模型预加载策略:用户还没点按钮,推理已经准备好了 把 AI 模型跑在浏览器里,最大的用户体验瓶颈是什么?不是推理速度,不是准确率——是加载等待时间。你满怀期待地点开一个 Web AI 应用,结果看到一个…

Windows PowerShell Web 访问(PSWA)配置与安全实践指南

Windows PowerShell Web 访问(PSWA)配置与安全实践指南

2026/7/17 2:01:02

1. Windows PowerShell Web 访问概述Windows PowerShell Web 访问(PSWA)是Windows Server 2012引入的一项功能,它允许管理员通过Web浏览器远程执行PowerShell命令和脚本。这项技术特别适合以下场景:需要在非工作设备(如…

Ubuntu 25.04安装与优化全指南

Ubuntu 25.04安装与优化全指南

2026/7/17 2:01:02

1. Ubuntu 25.04 安装前的准备工作1.1 硬件需求评估Ubuntu 25.04作为Linux发行版的新版本,对硬件配置有着明确的要求。根据官方文档,建议的最低配置为双核2GHz处理器、6GB内存和25GB存储空间。但实际使用中,特别是对于开发环境或日常办公&…

内核日志,启动日志,输出正常日志的adb 命令!

内核日志,启动日志,输出正常日志的adb 命令!

2026/7/17 2:01:02

1.Capture kernel logs 内核日志捕获 2.Capture boot/transaction logs捕获启动日志/事务日志 3.The logs are output normally.日志输出正常, 这个对应的adb 命令是什么? 针对你进行 Android 系统/硬件测试或自动化压测时的这几项日志捕获需求,对应的标准 adb 命令如下:…

Windows文件占用问题解析与6种专业解决方案

Windows文件占用问题解析与6种专业解决方案

2026/7/17 2:01:02

1. 问题现象与常见场景"操作无法完成,因为文件已在Windows资源管理器中打开"这个错误提示,相信每个Windows用户都遇到过。当尝试删除、移动或重命名某个文件时,系统突然弹出这个对话框,让人既困惑又无奈。作为一名长期与…

AI编程助手集成方案:Claude Code与DeepSeek的高效结合

AI编程助手集成方案:Claude Code与DeepSeek的高效结合

2026/7/17 2:01:02

1. 项目概述:AI编程助手集成方案的价值与定位在当今快节奏的软件开发环境中,程序员每天需要处理大量重复性编码任务、调试复杂错误和查阅技术文档。Claude Code与DeepSeek的集成方案正是为解决这些痛点而生——它通过将终端AI助手与高性能大模型API无缝结…

适合学生练手的完整静态网页项目:含响应式布局、打印适配和基础交互功能

适合学生练手的完整静态网页项目:含响应式布局、打印适配和基础交互功能

2026/7/17 1:51:01

本文还有配套的精品资源,点击获取 简介:这是一个开箱即用的纯前端网页项目,直接双击index.html就能运行,不需要服务器或后端支持。页面结构用语义化HTML搭建,CSS部分包含styles.css(负责屏幕显示样式&am…

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

2026/7/16 0:35:09

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator XUnity.AutoTranslator作为Unity游戏社区中最成熟的文本翻译解决方…

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

2026/7/16 14:29:31

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持 【免费下载链接】raspberrypi-kernel It provides openEuler kernel source for Raspberry Pi 项目地址: https://gitcode.com/openeuler/raspberrypi-kernel 前往项目官网免费下载&…

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

2026/7/16 14:18:17

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧 【免费下载链接】integration-test The repo contains test suits for system integration test 项目地址: https://gitcode.com/openeuler/integration-test 前往项目官网免费下载:…

Cursor终端插件生态避坑指南:23个实测低效插件黑名单,附3个自研轻量替代方案

Cursor终端插件生态避坑指南:23个实测低效插件黑名单,附3个自研轻量替代方案

2026/7/17 0:00:57

更多请点击: https://intelliparadigm.com 第一章:Cursor终端插件生态避坑指南概览 Cursor 作为基于 VS Code 内核构建的 AI 原生编辑器,其终端插件生态虽活跃,但存在兼容性断层、权限策略突变与调试链路断裂等典型风险。开发者常…

ChatGPT写作提示词效率革命:单条提示词响应质量提升3.8倍的关键变量(附可复用提示词矩阵表)

ChatGPT写作提示词效率革命:单条提示词响应质量提升3.8倍的关键变量(附可复用提示词矩阵表)

2026/7/17 0:00:57

更多请点击: https://codechina.net 第一章:ChatGPT写作提示词效率革命:单条提示词响应质量提升3.8倍的关键变量(附可复用提示词矩阵表) 提示词工程已从经验试错迈入变量驱动的科学阶段。实证研究表明,影响…

DeepSeek V4替换Codex底座模型的实践与优化

DeepSeek V4替换Codex底座模型的实践与优化

2026/7/17 0:00:57

1. 为什么选择用DeepSeek V4替换Codex的底座模型去年我在开发一个智能代码补全工具时,发现Codex的默认底座模型在复杂业务逻辑场景下表现不尽如人意。经过多次测试对比,DeepSeek V4在以下几个关键指标上展现出明显优势:代码补全准确率&#x…