主成分分析(Principal Component Analysis,PCA)已经多次听到过了,最近在看论文时也用了一些奇奇怪怪的降维方法,一下子搜还不容易搜到相关的介绍,那就将其替换为PCA试试看吧(反正应该也差不多 )
PS:个人认为(如果不是请大佬们打醒我)PCA、LDA、LSA、CFS、Word2vec等都可以用来进行降维后的特征选择,在未来研究中其实可以尝试
那还是先把喜闻乐见的PCA学习一下吧~感觉以后也能用得上
正餐开始 1. PCA的实现过程PCA是一种数据降维技术,它主要应用于数据的预处理。其一般实现过程主要有3步:
- 对原始数据零均值化
- 求协方差矩阵
- 接着对协方差矩阵求特征向量和特征值,这些特征向量组成了新的特征空间。
sklearn.decomposition.PCA(n_components=None,copy=True,whiten=False)
n_components:PCA算法中所要保留的主成分个数n,也即保留下来的特征个数(最重要的参数,一般情况下只需要设置这个即可),如果什么都不填,默认会保留下来所有的特征(大多数情况降为2维)
copy:表示是否在运行算法时,将原始训练数据复制一份。若为True,则运行PCA算法后,原始训练数据的值不会有任何改变;若为False,在原始数据上进行降维计算。
whiten:白化,使得每个特征具有相同的方差
3. 开始实践以鸢尾花数据集为例进行了实践
不足之处是颜色暂时不知道如何随鸢尾花数据集进行改变
4. 原理介绍PCA到底做了一个什么事情呢?
首先来考虑一个特殊的情况:假如我们要保存的数据是一个二维的数据,都排布成了一条直线,我们现在只想存储一个维度的信息,这样的话我们存储的信息量就减少了
PCA就是找到一个新的坐标系,这个坐标系的原点落在数据的中心,坐标系的方向是往数据分布的方向走,这样我们即可将其降维。
新的坐标系原点、新的坐标系相对于原坐标系它旋转了多少角度,然后再去存储它新的坐标点(比如这里所有点都是分布在新坐标系的x轴上面,所以所有点的y坐标均为0(0就不用存储了,这样即可把二维降为一维))
所以PCA是什么?
简单的说PCA就是找坐标系
PCA即是找到一个坐标系,使得这个数据在只保留一个维度的时候,信息损失是最小的( 比如旋转到一个位置结果大家投影的点都集中到了一起,那就相当于没有保存多少信息,效果就不好)
那么怎么界定这个坐标系的好坏呢?
新坐标系的x轴(蓝色那根)被称为主成分1
新坐标系的y轴(黄色那根)被称为主成分2
当在主成分1上投影的方差最大的时候,即说明主成分1能保留最多的信息,这时候的轴就是最好的
那如何实现PCA呢?
首先要去中心化,即是说要把坐标轴的原点放在数据的中心
下图为未去中心化与去中心化后找数据中心的区别:
(剩下的感觉没多少用 暂时就这样吧 最重要的是实践)
这篇博文记得很水嗷 之后有机会再来调整修改吧
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)