【机器学习】机器学习工程实战-第3章 数据收集和准备

上一章:第2章 项目开始前

文章目录

    • [3.1 关于数据的问题](#3.1 关于数据的问题)
      • [3.1.1 数据是否可获得](#3.1.1 数据是否可获得)
      • [3.1.2 数据是否相当大](#3.1.2 数据是否相当大)
      • [3.1.3 数据是否可用](#3.1.3 数据是否可用)
      • [3.1.4 数据是否可理解](#3.1.4 数据是否可理解)
      • [3.1.5 数据是否可靠](#3.1.5 数据是否可靠)
    • [3.2 数据的常见问题](#3.2 数据的常见问题)
      • [3.2.1 高成本](#3.2.1 高成本)
      • [3.2.2 质量差](#3.2.2 质量差)
      • [3.2.3 噪声(noise)](#3.2.3 噪声(noise))
      • [3.2.4 偏差(bias)](#3.2.4 偏差(bias))
      • [3.2.5 预测能力低(low predictive power)](#3.2.5 预测能力低(low predictive power))
      • [3.2.6 过时的样本](#3.2.6 过时的样本)
      • [3.2.7 离群值](#3.2.7 离群值)
      • [3.2.8 数据泄露/目标泄漏](#3.2.8 数据泄露/目标泄漏)

3.1 关于数据的问题

3.1.1 数据是否可获得

1、首先考虑数据是否存在?

2、若存在,考虑是否可获得:物理上、合同上、道德上、成本上

3.1.2 数据是否相当大

判断是否收集了足够数据的一个实用的方法:绘制学习曲线(learningcurve),具体操作为:不同数量训练样本的学习算法会对应不同的训练得分和验证得分,分别将它们绘制出来。

通过观察学习曲线,会发现模型在达到一定数量的训练样本后,表现趋于平缓。在达到这个训练样本数量后,额外增加样本而受益却递减。

如果学习算法的表现趋于平缓,那么有三种情况:

  • 收集更多数据对训练更好的模型没有帮助
  • 包含信息的特征不足以建立表现更好的模型
  • 选择的学习算法无法利用已有数据训练出足够复杂的模型

3.1.3 数据是否可用

(1)数据质量

信息错误

(2)数据集是否规整

用于机器学习的数据集必须是规整的

(3)是否有缺失值(missing value)

使用数据填补(data imputation)技术填补缺失值

(4)神奇数字(magic number)

人们用9999或-1等特殊数字标记的缺失值,需要通过使用适当的数据填补技术替换这些神器数字

(5)重复(duplicate)

重复数据通常会被删除,除非是故意用来解决不平衡问题(imbalanced problem)

(6)数据过期(expired)

如需要训练一个识别打印机异常行为的模型,却使用上一代打印机的测量结果,将使用过期数据训练出来的模型部署到新一代打印机,就可能会的表现的很差。

(7)数据不完整(incomplete)或现象代表性不足(unrepresentative)

如自动驾驶汽车系统的行人数据集,如果只有工程师冒充行人,会导致大多数情况下只采集到年轻男性,而儿童、女性和老人的代表性不足或完全没有。

3.1.4 数据是否可理解

防止数据泄露(data leakage)/目标泄露(target leakage)

如预测房屋交易价格,如果使用房子的属性(卧室数量、位置、建造年份等)训练模型,发现测试集中的表现几乎完美,生产部署后却大多数时候错误。

仔细检查发现训练数据中包含了房地产经纪人的佣金,因为佣金取决于售价,模型很容易学会了将这个属性完美地转换成房价。

3.1.5 数据是否可靠

(1)收集程序是否可靠

(2)是否存在标签延迟(delayed)或间接(indirect)特性影响

  • 标签延迟

以客户流失预测(churn prediction)问题为例。

有一个描述客户的特征向量,用来预测客户是否会在未来6个月后离开。特征向量代表对用户现在的了解,但标签是在未来指定。在现在和未来之间,很多事件会影响客户的去留,因此延迟的标签会使数据可靠性降低。

  • 间接特性

以预测网站访问者对某网页是否感兴趣为例。

数据集中的"感兴趣"/"不感兴趣"标签,反映了特定用户是否对该网页感兴趣。例如用户按下了"喜欢"按钮,这是直接的兴趣指标。但如果用户只点击了链接,这是间接指标,因为有可能存在用户误点的情况。所以如果标签是间接的,则可能导致数据不太可靠。

(3)反馈链路(feedback loop)

3.2 数据的常见问题

3.2.1 高成本

3.2.2 质量差

数据质量有两个部分:原始数据质量、标签质量

原始数据的常见问题:噪声、偏差、预测能力低、样本过时、离群值和泄露

3.2.3 噪声(noise)

数据中的噪声是对样本的损坏。

如图像模糊或不完整,音频背景噪声,民意调查缺失年龄、性别属性,等等。

3.2.4 偏差(bias)

数据的偏差是指,与数据所代表的现象不一致。

偏差类型:

(1)选择偏差(selection bias)

(2)自选偏差(self-selection bias)

如训练一个预测成功企业家的模型。

先询问企业家是否成功,然后选取宣称自己成功的企业家那里获得数据。

问题是,真正成功的企业家没时间回答你的问题,而自称成功的人很可能不是真的成功。

(3)遗漏变量偏差(omitted variable bias)

(4)赞助偏差(sponsorship bias)或资助偏差(funding bias)

(5)采样偏差(sampling bias)/分布偏差(distribution shift)

用于训练的样本分布不能反映模型在生产中收到的输入的分布

(6)偏见/刻板印象偏差(prejudice/stereotype bias)

(7)系统性值失真(systematic value distortion)

(8)实验者偏差(experimenter bias)

(9)贴标偏差(labeling bias)

避免偏差的方法

(1)选择偏差

可以通过系统地质疑选择特定数据源的原因来避免。

(2)自选偏差

无法完全消除。

预先选择回答者以减少自选偏差。

(3)遗漏变量偏差

很难完全避免。

试着用用代理变量代替被省略的变量。

如要训练一个预测二手车价格的模型。若无法得到车龄,就用当前车主拥有该车的时间来代替。

(4)赞助偏差

通过仔细调查数据来源,特别是来源所有者提供数据的动机,可以减少赞助偏差。

(5)采样偏差

通过研究生产中数据的各种属性的真实比例,然后在训练数据中保持类似的比例进行采样,来避免采样偏差。

(6)偏见/刻板印象偏差

通过将学习算法暴露在更均匀的样本分布中,减少偏见/刻板印象偏差。

(7)系统性值失真偏差

通过多个设备测量,或者聘请经过训练的人员来比较测量,或观察设备的输出来缓解。

(8)实验者偏差

通过让多人验证调查中提出的问题来避免。

(9)贴标偏差

3.2.5 预测能力低(low predictive power)

3.2.6 过时的样本

在实际场景中,由于概念漂移(concept drift),模型开始出错。概念漂移是特征和标签之间的统计关系发生了根本性的变化。

如预测用户是否喜欢网站上的某些内容。随着时间的推移,用户的喜好可能会改变。过去的样本不再反映这些用户的偏好,并开始伤害模型的表现。

3.2.7 离群值

3.2.8 数据泄露/目标泄漏

监督学习中的数据泄露是指无意中引入了不该提供的目标信息,这就是所谓的"污染"。

后续待更新

今天看到第三章,发现这本书的翻译不是特别好,多是字面直译过来,甚至有的地方不够通顺。 要求翻译者精通机器学习显然不现实,加上这本书基本都是理论内容,所以后续考虑粗读一些。

以后我会尽量选择清北等出版社的图书,质量应该会更高。

请在关闭网页之前,利用2秒钟的时间,在脑海中迅速回顾一遍本部分的框架及要点

相关推荐
阿里云大数据AI技术5 分钟前
DistilQwen2.5-R1发布:知识蒸馏助推小模型深度思考
人工智能·机器学习
Mapmost25 分钟前
【数据可视化艺术·进阶篇】热力图探秘:用色彩演绎场馆和景区的人流奥秘
前端·人工智能·数据可视化
知梦EDA1 小时前
【今日EDA行业分析】2025年3月24日
大数据·人工智能·eda·半导体·行业分析
葡萄成熟时_1 小时前
【第十三届“泰迪杯”数据挖掘挑战赛】【2025泰迪杯】A题解题全流程(持续更新)
人工智能·python·数据挖掘·蓝桥杯
果冻人工智能1 小时前
我对 AI 所知道的一切,都是从 Costco 披萨里学来的
人工智能
果冻人工智能2 小时前
为什么我们在 AI 对齐上没有变得更好?
人工智能
Code哈哈笑2 小时前
【机器学习】从回声定位到优化引擎:蝙蝠算法在SVR超参数优化中的应用
人工智能·算法·机器学习·蝙蝠算法
HR Zhou2 小时前
群体智能优化算法-沙丁鱼群优化算法(Salp Swarm Algorithm (SSA,含Matlab源代码)
算法·机器学习·matlab·优化·群体智能优化
取个名字真难呐2 小时前
相对位置2d矩阵和kron运算的思考
人工智能·pytorch·python·深度学习·线性代数·矩阵
qq_513398983 小时前
深度学习笔记(38周)
人工智能