③特征预处理
原理是通过转换函数,将特征数据转换成更适合算法模型的特征数据的过程。
数据抽取步骤,已将原始数据处理为数值型数据,还需将不同规格的数据转换为同一规格,此处特征预处理的过程也称为数值型数据的无量纲化,主要通过 归一化、标准化 两种方式来实现。
3.1 归一化
通过对原始数据进行变换,把数据映射到 默认为 [0,1] 之间。
在sklearn.preprocessing.MinMaxScaler 中调用,实现如下:
由于它对最大值和最小值进行处理,并加入运算,因而结果容易受到异常值(最大/最小值)的影响,鲁棒性(稳定性)较差,只适合精确的小数据场景。
3.2 标准化
将原始数据进行变换,把数据变换到均值为 0 ,标准差为 1 的范围内。
在sklearn中的基本实现,import sklearn.preprocessing.StandardScaler。
在已有样本足够多的情况下,适合现代嘈杂大数据场景。
④特征降维
降维是指在某些限定条件下,降低随机变量(特征)个数,得到一组“不相关”主变量的过程。
ndarry,n是嵌套的层数,【0维:标量、1维:向量、2维:矩阵、3…n维:多个2维嵌套】。
特征降维的方式有特征选择、主成分分析两类。
4.1 特征选择
由于数据中包含冗余/无关变量(或称特征、属性、指标等),旨在原有特征中找出主要特征。
1、过滤式(filter)
1-1 方差选择法:低方差特征过滤(删除所有低方差特征)。
1-2 相关系数:特征与特征间的相关程度。
皮尔逊相关系数:反映变量间相关关系密切程度的统计指标(计算公式如下)。
相关系数的均值介于 [-1,1] ,约接近 1 ,表示特征间呈正相关;越接近 -1 ,表示特征间呈负相关;越接近 0 ,越不相关。
若出现多个特征与特征间相关性很高,处理方式有:1)可选其一为代表;2)按权重,加权求和,形成新特征;3)可通过主成分分析,来自动分析处理。
1-3 embeded(嵌入式)
类似决策树(信息熵/信息增益)、正则化(L1/L2)、深度学习(卷积)等。
4.2 主成分分析
将高维数据转化成低维数据的过程,此过程可能会舍弃原有数据、创造新的变量。数据维数压缩的过程中,尽可能减少原数据的维数,损失少量信息。
以上是二维降维的示意图。
sklearn中,import sklearn.decomposition.PCA 即可调用,实现代码如下:
以上为特征预处理和特征降维的处理方式介绍。