【笔记】实用机器学习 – Data III

李沐老师实用机器学习笔记: Data III

2.2 数据清理

数据往往不是完美的,经常存在很多错误,包括 丢失某些特征,异常值等, 好的机器学习模型应该容忍这些错误。
使用存在错误的数据训练模型,模型可能会收敛,但会影响精度和训练速度,而且,对于新收集的数据,也可能带来不利的影响。
因此,应当数据应该尽可能的干净。

?️ 授课视频

2.2 数据清理【斯坦福21秋季:实用机器学习中文版】_哔哩哔哩_bilibili

? 课件

讲义下载地址

数据错误的类型

  • Outliers 离群值: 某一些值与其他的观测值显著不同
  • 违背规则:例如,价值应当大于0
  • 违背模式:例如,singlefamily 写成了 singlefamily, 中间多了

找出数据中存在的错误的方法

  • 异常值检测
    对于异常值的检测,我们可以使用boxplot。首先我们找出中值,并计算出25~75%的区间。在图上,这个区间是蓝色或棕色的矩形。我们找出上下1.5倍矩形框之外的值,这些值通常情况下是有问题(错误)的值。

    quicker_72aa5b52-eb53-4bb2-878f-9aadff92d6f8.png

  • 基于规则的检测
    我们可以制定规则来找出错误,
    依赖性约束:基于邮编,我们可以验证城市名称。基于纳税号,我们可以验证公司名称
    拒绝性(Denial)约束:例如,如果有纳税号,电话号码通常不为空

  • 基于模式的检测
    句法模式:例如检测到eng(简写),我们就知道此项应该为English 字符。
    语义模式:国家应该有首都,如果国家检测到斯坦福,斯坦福没有首都,因此无效

我们通常情况下可以使用图形化界面帮助我们指定规则,这里可以使用数据工程师常用的软件,例如Trifacta(如果需要使用的话,需要进一步学习)。

2.2 数据变换

机器学习算法需要固定长度,条件固定,理想分布的输入数据。这要求了我们需要提前预处理数据。

?️ 授课视频

2.3 数据变换【斯坦福21秋季:实用机器学习中文版】_哔哩哔哩_bilibili

? 课件

讲义下载地址

实数值

  • 归一化0到1
  • 高斯分布
  • 10倍压缩,压缩所有值到0-1
  • 指数压缩
    quicker_9956d0f2-5a39-472c-926c-fbc36a022be7.png

图片变换

  • 裁剪(crop)
  • 下采样(尺寸压缩)
  • 压缩,中等压缩率(80%-90%)的jpeg压缩大约会带来1%的ImageNet精度损失
  • 图片的白化(whitening),图片里很多像素没用,可以通过类似于PCA的方法降维,可能会帮助收敛

视频变换

受限于存储,读取速度

  • 一般切片,用<10s 以内的片段
  • 视频帧做抽样

文本变换

  • Stemming and Lemmatization (词形还原)
    am is are ⇒ be, 去掉复数形式。语法对于语义影响不大
  • Tokenization,把问题变成一系列的token,根据单词、字符划分

总结

数据变换最主要的考量是,平衡存储、质量、读取速度。

2.4 特征工程

神经网络通常需要固定长度的数据
在深度学习之前,我们通常人工提取特征,比如图片里的HOG特征,SIFT特征等。现在,我们直接使用深度学习,让它自己去学习特征提取。

quicker_a3ef371c-f91b-42d9-8e95-c19779c460c0.png

?️ 授课视频

2.4 特征工程【斯坦福21秋季:实用机器学习中文版】_哔哩哔哩_bilibili

? 课件

讲义下载地址

数值数据

  • bin,不同的值,使用区间进行划分,类似于HOG
  • 独热编码
  • 时间类型的数据做维度增广,[year, month, day, day_of_year, week_of_year, day_of_week]
  • 特征组合

文本特征

  • bag of words, 统计单词出现的次数。丢失语义信息
  • word embedding: 使用小的训练模型,对文本进行编码
  • 或者使用预训练的深度学习模型,类似于bert

图片或者视频特征

  • 传统的特征提取器:sift, hog
  • 预训练的深度学习模型:VGG

使用预训练的深度学习模型会更好,但需要更多的计算时间

总结

?️ 授课视频

2.4 数据科学家的日常【斯坦福21秋季:实用机器学习中文版】_哔哩哔哩_bilibili

? 课件

讲义下载地址

在拿到一个机器学习任务,我们首先要看是不是有充足的数据。如果没有的话,需要去收集或者生成。如果有的话,可能需要去清洗数据,提升数据质量。

对于数据的处理,是一个长期循环的过程。需要收集数据,数据清洗,数据变换(变成想要的类型),然后再训练模型。根据实际结果,根据反馈,再去收集数据。

quicker_31658aff-2544-4a17-8982-b52bfabe02ec.png

No Comments

Send Comment Edit Comment


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
Previous
Next