一、什么是特征预处理
我们在进行特征抽取后,需要根据算法的要求,使用特定的统计方法(数学方法)将数据转换成其所需格式。对于不同的数据类型有不同的转换方法。
1、数值类型数据
对于数值类型数据可采用标准的缩放,其方法有:
- 归一化
- 标准化
- 缺失值处理
2、类别型数据
采用one-hot编码,像字典、文本数据进行特征抽取,转成了one-hot编码。
3、时间类型
采用时间切分的方式。
注意:这里主要说说数值型数据的预处理方式。
二、数值类型处理
(一)归一化
1、为什么使用归一化
归一化是将数据样本缩放到[0,1]的区间范围,那么为什么要这样做呢?因为在特征(维度)非常多的时候,避免某一维或者某几维对数据的影响过大,同时也是为了把不同来源的数据同一到一个度量标准下,这样比较起来才有意义。
样本 |
身高(cm) |
体重(kg) |
样本一 |
150 |
50 |
样本二 |
200 |
70 |
假设现在有这样的样本数据,k-近邻算法中一个距离公式是这样的:
(200-150)^2 + (70-50)^2
如果两个人的体型差异较大,以至于第一个身高差的平方的值打到忽略体重差平方的值,这样是不是体重这个特征就会被忽略了。所以为了解决这个问题,我们需要将数据进行归一化。
2、归一化的原理
归一化的特点:通过对原始数据进行变换把数据映射到(默认为[0,1])之间
公式: