才疏学浅,平时只用过PCA降维,大家还有什么其他的降维方法吗?
11个回答
1. High Correlation
如果两个feature的correlation大于某个阈值(自己设定的,比如0.3),就删掉其中一个。
2. Low variance
如果一个feature的数据方差小于某个阈值(自己设定),就把它删掉。
3. Missing
如果这一列有很多missing,就把它删掉。
4. Random Forests
Random Forests训练之后,可以返回所有特征的重要性,我们可以选择重要性最高的一部分特征,比如20%。
5. Stepwise selection
逐步选择特征,可以向前选择,也可以向后消去。
6. Random Projection
类似于PCA,但是这个投影是随机的,而非像PCA那样是正交的。
7. AutoEncoder
类似于word2vec,我们只提取神经网络的中间层的结果作为降维的结果,当激活函数都是线性时,效果与PCA相似。
SofaSofa数据科学社区DS面试题库 DS面经如果你有response的话,还可以用partial least square. https://en.wikipedia.org/wiki/Partial_least_squares_regression
然后其他的降维算法可以参考scikit-learn的roadmap : http://scikit-learn.org/stable/tutorial/machine_learning_map/
SofaSofa数据科学社区DS面试题库 DS面经补充一下,还有feature hashing
SofaSofa数据科学社区DS面试题库 DS面经自编码器
SofaSofa数据科学社区DS面试题库 DS面经线性判别分析:
PCA(主成分分析)和LDA(线性判别分析)有很多的相似点,其本质是要将初始样本映射到维度更低的样本空间中,但是PCA和LDA的映射目标不一样:PCA是为了让映射后的样本具有最大的发散性;而LDA是为了让映射后的样本有最好的分类性能。所以说PCA是一种无监督的降维方法,而LDA是一种有监督的降维方法。
推荐学习链接:https://www.zhihu.com/people/wang-he-13-93/posts
- PCA
- LDA
- SVD
相关讨论
随便看看