Capture 1
紧接着数据清洗那一篇文章,下个环节就是数据的转换,先让我们看一下机器学习的work flow
- 数据的采集
- 数据标注+数据清洗
- 数据转换
- 特征工程
- 机器学习
Capture 2
数据需要被转换成合适机器学习的形式,当然,这其中包括数据清洗+特征工程,我们需要针对不同的变量形式进行不同地transform,主要包含以下几种形式:
针对结构化数据。Normalization for Real Value Columns
method | principle |
---|---|
归一化,将数值归到0,1范围内 | x i ′ = X i − X m i n X m a x − X m i n x_{i}^{'} = \frac{X_i - X_{min}}{X_{max} - X_{min}} xi′=Xmax−XminXi−Xmin |
z-score标准化,将数值归到以0为均值,1为标准差的数值范围内 | x i ′ = X i − X m e a n X s t d x_{i}^{'} = \frac{X_i - X_{mean}}{X_{std}} xi′=XstdXi−Xmean |
Decimal scaling,小数定标标准化 | x i ′ = X i 1 0 j x_{i}^{'} = \frac{X_i}{10^{j}} xi′=10jXi |
Log scaling,log化平滑 | x i ′ = l o g ( X i ) x_{i}^{'} = log(X_{i}) xi′=log(Xi) |
Normalization是为了让数值处于统一量纲的范围,使得模型在梯度收敛时不会有太大的波动,除此之外,量纲过大的特征值相较于正常数值在某些机器学习(线性回归,逻辑回归,SVM等)过程中会默认有更大的权重。
针对图片数据。Image Transformations
图片数据的存储成本一般来说都比较大,所以图片数据的转换非常有必要,一般有以下方法:
1.下采样 or 修剪图片(裁剪不需要的边框)
- 压缩图片的大小可以加快图片数据的加载和降低存储。而且机器学习对于低像素的图片同样具有良好的学习能力。
- 但是一味地降低压缩图片会降低图片的数据质量,从而影响模型的精度,需要在图片数据质量和数据大小之间做好tradeoff。
2.Image Whitening
- 减少更多的数据冗杂
- 模型的覆盖速度更快
针对视频数据。Video Transformations
视频数据和图片数据类似,只是我们的数据获取方式不同。对于一些<10s的短视频,可以通过采帧的方法在视频感兴趣的部分提取所需要的图片,然后解码成图片数据。
针对文本数据。Text Transformations
计算机需要将不同人类语言转换成数字进行学习,所以需要经过词元转换/分词/编码等步骤。
method | How |
---|---|
Stemming and lemmatization | 针对不同单词统一为同一词根,如 a m / a r e / i s 👉 b e am/are/is 👉be am/are/is👉be,因为对于计算机而言,更注重的是词的作用而不是语法 |
Tokenization | 针对不同句子做语义分词,如 我 和 你 朋 友 👉 我 , 和 , 你 , 朋 友 我和你朋友👉我,和,你,朋友 我和你朋友👉我,和,你,朋友 |
Summary
- 数据转换将数据转换为机器学习首选的格式,但同时也要兼顾数据大小,数据质量和数据加载的平衡。
- 对于结构化数据:需要标准化原始数据
- 对于图片数据:可以通过裁剪,下采样,whitening等方式转换
- 对于视频数据:可以通过剪辑需要的视频片段,然后通过抽帧的方式获取所需要的视频数据
- 对于文本数据:词根提取,词形还原,分词操作