【NLP复习】数据预处理和特征选择:方差、相关系数、K方检验、互信息、树模型
先拿一张特征工程的导图镇楼。本文主要复习特征工程的核心——特征处理(数据预处理,特征选择,降维)。
一、数据预处理
-
量纲不统一怎么办?(猫咪的身高和体重)
- 标准化(前提是特征值服从正态分布,通过算特征的均值和标准差转成标准正态分布)
- 区间缩放法(利用两个最值进行缩放,将特征取值缩放到某范围,例如[0, 1]等)
- 标准化与归一化的区别(标准化按特征值,也就是按列;归一化按行搞成单位向量)
- 标准化(前提是特征值服从正态分布,通过算特征的均值和标准差转成标准正态分布)
-
定量特征信息冗余怎么办?(给的特征是猫咪的体重,我们只需要“肥”or“瘦”而不需要具体体重)
- 定量特征二值化:
- (设定一个阈值,大于阈值50斤的猫咪的赋值为1,小于等于50斤的赋值为0)
- 定量特征二值化:
-
定性特征不能直接用怎么办?(给的特征是猫的颜色(橘猫 白猫 黑猫等花色)没法直接用)
- 哑编码(one-hot的感觉),5种花色,白色为 0 1 0 0 0 ,黑色为 0 0 1 0 0 这样
-
存在缺失值怎么办?(有些猫咪太顽皮,没法给他称体重)
- 填充一个值,比如填那列特征所有数据的均值mean,也就是猫咪们的平均体重
-
信息利用率低怎么办?
- 数据变换:基于多项式的、基于指数函数的、基于对数函数
二、特征选择
为啥特征选择呢?一,有些特征不发散(例如方差接近于0)也就是说样本在这个特征上基本上没有差异,这个特征对于样本的区分并没有什么用。二,有些特征与目标的相关性高,应当优选选择。
-
Filter:过滤法,按照发散性或者相关性对各个特征进行评分,分高的要,分低的扔。
- 方差选择法:算每个特征的方差,选方差大于阈值的那些特征。
- 相关系数法:算每个特征对目标值的相关系数(结果介于-1到1之间,其结果为两个变量之间的协方差与标准差的商),以及相关系数的P值
- 卡方检验法:检验定性自变量对定性因变量的相关性。假设自变量有N种取值,因变量有M种取值,考虑自变量等于i且因变量等于j的样本频数的观察值与期望的差距,构建统计量(A是真实值,T是理论值):
- 互信息法:也是评价定性自变量对定性因变量的相关性:
-
Wrapper:包装法,根据目标函数(通常是预测效果评分),每次选择若干特征,或者排除若干特征。
- 第一,给每一个特征指定一个权重,接着采用预测模型在这些原始的特征上进行训练。
- 第二,在获取到特征的权重值后,对这些权重值取绝对值,把最小绝对值剔除掉。
- 第三,按照这样做,不断循环递归,直至剩余的特征数量达到所需的特征数量。
-
Embedded:嵌入法,先使用某些机器学习的算法和模型进行训练,得到各个特征的权值系数,根据系数从大到小选择特征。类似于Filter方法,但是是通过训练来确定特征的优劣。
- 使用带惩罚项的基模型,除了筛选出特征外,同时也进行了降维。
- 树模型中GBDT也可用来作为基模型进行特征选择。
三、降维
- 主成分分析法(PCA):无监督。两个变量之间有一定相关关系时删一个,最后留下的那些特征之间都两两不相关
- 线性判别分析法(LDA):有监督。将数据在低维投影,投影后希望每个类内数据的投影点尽可能的接近,而不同类别的数据的类别中心之间的距离尽可能的大。
【参考资料】