在业界广泛流传着一句话:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。
由此可见,数据和特征是多么的重要,而在数据大多数场景下,数据已经就绪,不同人对于同样的数据处理得到的特征却千差万别,最终得到的建模效果也是高低立现。从数据到特征这就要从特征工程说起了...
0. 特征工程
- 特征构建:从原始数据中构建出特征,有时也称作特征预处理,包括缺失值处理、异常值处理、无量纲化(标准化/归一化)、哑编码等。
- 特征提取:将原特征转换为一组具有明显物理意义或统计意义或核的新特征。
- 特征选择:从特征集合中挑选一组最具统计意义的特征子集。
1. 特征降维
1.1 特征选择(子集筛选):
特征选择方法主要分为三种:
- Filter:过滤式;按权重排序,不涉及到学习器,排序规则一般有方差法、相关系数法、互信息法、卡方检验法、缺失值比例法(注意受范围影响的方法需先归一化)[2.zhihu]。
- 方差法:计算各个特征的方差,然后根据阈值,选择方差大于阈值的特征。可使用sklearn.feature_selection库的VarianceThreshold类来实现。
- 缺失值比例法:计算各个特征的缺失值比例,将缺失值比例较大的特征过滤掉。
- 相关系数法:计算特征与输出值的相关系数以及相关系数的 P值(常见的有:皮尔森相关系数用于数值特征的线性检验,秩相关系数用于类别特征的单调性检验)。
- 互信息法:计算定性特征与输出值的相关性(运用了信息熵理论),决策树学习中的信息增益等价于训练数据集中类与特征的互信息。
- 卡方检验法:对于每个特征与输出值,先假设独立,再观察实际值与理论值的偏差来确定假设的正确性,即是否相关。
- Embedded:嵌入式;确定模型过程中自动完成重要特征挑选,基于惩罚项如岭回归(L2正则)、LASSO(L1正则),基于树模型如GBDT、决策树[3.cnblog]。
- Wrapper:封装式;用学习器的性能评判不同特征子集的效果,特征子集生成方式:完全搜索(前向&后向)、启发式搜索、随机搜索[3.cnblog]。
1.2 特征提取(投影or转换):
- 线性方法[4.csdn]:
- PCA:主成分分析;理论:通过正交变换将原始的 n 维数据集变换到一个新的被称做主成分的数据集中,变换后的结果中第一个主成分具有最大的方差值;
- 特点:无监督,尽量少维度保留尽量多原始信息(均方误差最小),期望投影维度上方差最大,不考虑类别,去相关性,零均值化,丧失可解释性
- ICA:独立成分分析;将原特征转化为相互独立的分量的线性组合;PCA一般作为ICA的预处理步骤[5.zhihu]。
- LDA:线性判别分析,有监督,尽可能容易被区分(高内聚、低耦合)[6.cnblog]。
- SVD:奇异值分解,可用于PCA、推荐、潜在语义索引LSI,可并行,可解释性不强
- 非线性方法:
- LLE:局部线性嵌入,非线性降维(基于图),保持原有流行结构
- LE:拉普拉斯特征映射,非线性(基于图),相互有联系的点尽可能靠近
- t-SNE:t分布随机临近嵌入,将欧几里得距离转为条件概率表达点与点之间的相似度[7.datakit]。
- AE:自动编码器
- 聚类
特征降维方法对比先介绍到这里,更多内容后续继续分解~
转载请注明出处:数据挖掘篇——特征工程之特征降维(https://www.cnblogs.com/webary/p/12498886.html)
参考链接:
1.wiki:https://en.wikipedia.org/wiki/Feature_engineering
2.zhihu:https://www.zhihu.com/question/28641663
3.cnblog:https://www.cnblogs.com/pinard/p/9032759.html
4.csdn:https://blog.csdn.net/yujianmin1990/article/details/48223001
5.zhihu:https://www.zhihu.com/search?type=content&q=PCA%20ICA
6.cnblog:https://www.cnblogs.com/LeftNotEasy/archive/2011/01/08/lda-and-pca-machine-learning.html
7.datakit:http://www.datakit.cn/blog/2017/02/05/t_sne_full.html
原文出处:https://www.cnblogs.com/webary/p/12498886.html
来源:oschina
链接:https://my.oschina.net/u/4391973/blog/3238618