3. 数据预处理
3.1 数据探索性分析(EDA)
/home/yxx/notebook/Deep_learning/PracticeMachineLearning/DataPreprocessing/EDA.ipynb
3.2 数据清理
-
流程图
-
数据错误
- 数据通常有错误
- 数据丢失,错误值,极端值
- 好的ML模型对错误有弹性
- 线上部署的模型可能影响新收集数据的质量(由于模型预测结果不准确)
- 数据错误的种类
- outliers:数据分布偏移
- Rule violations :违背规则的
- Pattern violations:违背语法、模式等
- 数据通常有错误
-
outliers 检测
- 类别类型,查看
value_counts()
- 连续类型,盒子图
- 类别类型,查看
-
基于规则的检测
- 函数依赖 x → y x\rightarrow y x→y
- Denial constrains
if
-
基于模式的检测(可以使用知识图谱)
- 基于语法的
- 基于语义的
3.3 数据变换
-
对于实数值的Normalization
-
Min-max normalization
- 为了统一量纲
x i ′ = x i − m i n x m a x x − m i n x ( b − a ) + a x_i^\prime = \frac{x_i - min_x}{max_x - min_x}(b-a) + a xi′=maxx−minxxi−minx(b−a)+a
-
Z-score normalization:均值为0,标准差为1
x i ′ = x i − m e a n ( x ) s t d ( x ) x_i^\prime = \frac{x_i-mean(x)}{std(x)} xi′=std(x)xi−mean(x) -
除以整十
x i ′ = x i 1 0 j , m i n ( j ) s . t . m a x ( x ) < 1 x_i^\prime = \frac{x_i}{10^j} ,min(j) s.t. max(x)<1 xi′=10jxi,min(j)s.t.max(x)<1 -
取对数(log上的加减等于原始上的乘除)
x i ′ = l o g ( x i ) x_i^\prime = log(x_i) xi′=log(xi)
-
-
对于图片的变换
- 直接存储,存储在云端或者本地
- 下采样和裁剪
- resize
- ML比较擅长低分辨率图片
- jpeg质量的图片
- 中等质量图片(80%-90)——>降低1%精度
- 图片白化(whitening)
- 让输入更少冗余
- 模型收敛更快
-
对于视频的变换
- 平衡视频存储、视频质量和载入速度
- 通常截取10s内的视频
- 每次截取通常包含一个单一的场景
- 解码一个可以播放的视频,采样连续的一些帧
- 更方便存储、但是需要10倍多的空间
- 计算可能比存储更省资源(例如:使用GPU去解码)
- 可以应用图片变换方法到每一帧上
-
关于文本的变换
- 词根化或者语法化
- 词根化:变成一个常见的形式,例如:car,cars,car’s,cars’ -> car
- 语法化:变成一个相同的部分,例如:am,are,is -> be
- 词元化(词元化)
- 通过词
- 通过字符
- 通过子词
- 词根化或者语法化
-
小结:
- 数据转换:格式和数值上的转换,平衡数据大小、质量和读取速度
- Tabular
- 图片
- 视频
- 文本
3.4 特征工程
- 特征工程
- 表格类数据特征
- int/float类型,直接使用或者分桶
- 类别数据:one-hot编码
- 可以将不常见的类定义为’Unknown’
- 时间:
year month day day_of_year week_of_year day_of_week
- 特征结合
- 文本特征
- 通过词元特征表示
- 词袋模型(BoW)
- 词嵌入(Word2vec)
- 预训练模型(e.g. BERT, GPT-3)
- 通过词元特征表示
- 图片/视频特征
- 卷积神经网络倒数第二层
- 表格类数据特征
- 小结:
- 深度学习抽取特征
部分小结
-
流程图
-
挑战:
- 权衡数据的量和数据质量
- 数据质量:
- 多样性:要有产品相关的所有场景
- 不偏:没有采集某个特定场景的数据
- 公平性:没有区别对待数据和人群
- 大规模管理:存储、处理、版本控制、安全