实用机器学习笔记七:数据变换
前言:
本文是个人在 B 站自学李沐老师的实用机器学习课程【斯坦福 2021 秋季中文同步】的学习笔记,感觉沐神讲解的非常棒 yyds。
数据变换地位:
数据处理后,要根据模型的输入要求进行数据转换之后才能进行有效的训练,因此数据从收集到输入到模型进行训练会经过一下几个步骤:先是进行标注和清洗,然后进行数据转换,接着进行特征工程。注意:数据转换既可以在标注清洗前也可以在特征工程之后,这里把数据转换放在两者之间,但并不影响。
实数标准化变换:
最小最大标准化:意思就是通过线性变换把某一列数据变换到最小值 a 和最大值 b 之间。原因:机器学习模型对数据非常敏感,如果某一列数据最小值和最大值差距太大,会发生训练不稳定性。公式如下:
表示第个原始数据,表示变换后的数据,表示这列原始数据中最小值,表示这列原始数据中的最大值。
Z-score 标准化:把这一列数据变换为均值为 0,标准差为 1 的数据。公式如下:
十进制缩放(decimal scaling):把数据标准化到[-1, 1]。公式如下:
Log 标准化:适用场景:如果数值总是大于 0,并且数据变化很大,可以把数据变换到 log 空间。好处:log 上面的加减就是原始数据的乘除。按照百分比来看,看数据变化的百分比来查看数据变化的影响。公式如下:
图片变换:
图片数据集保存会占用很大的空间,因此保存成本很高,可以进行图片裁剪,裁剪成像素更小的图片,这样就会节省很多存储成本。注意的是在图片裁剪之后,如果保存成 JPEG 格式的话,要注意选择的图片质量的选择,如果保存成中等质量的话,在训练之后会有 1%精度的下降。因此尽可能保存为高质量的图片。
视频变换:
在处理视频的时候要平衡存储成本,质量和加载速度。
通成机器学习模型训练视频的时候只是对大概 10 秒左右的视频感兴趣,因为模型往往学习的就是一个动作,而一个动作通常就在 10 秒左右。所以可以把长视频裁剪成一小段一小段的短视频,可以删掉很多对于机器学习模型无用的片段。
视频通常会采用压缩算法来存储,但是在训练时,只是采样几帧图片,在采样时就需要进行解码,这样是耗费时间和金钱的。通常使用 GPU 来解码。
文本变换:
语法化和词根化:
比如:am,are,is---->be car,cars,car's,cars' ---->car
词元化(有一个词典):
以词为基础:text.split(' '),就是分离出一个一个的词
以字符为基础:text.split(''),就是分离成一个一个字符
以子词为基础:"a new gpu!" ---->"a", "new", "gp", "##u", "!"
版权声明: 本文为 InfoQ 作者【打工人!】的原创文章。
原文链接:【http://xie.infoq.cn/article/a02f23baf6afa1b4a29d9ce06】。文章转载请联系作者。
评论