降维-主成分分析(PCA)
来源:互联网 发布:数据库mdf文件过大 编辑:程序博客网 时间:2024/05/19 16:35
主成分分析(Principal Components Analysis)是由Hotelling于1933年首先提出的。由于多个纬度变量之间往往存在着一定程度的相关性。人们自然希望通过线性组合的方式,从这些指标中尽可能快地提取信息。当这些纬度变量的第一个线性组合不能提取更多的信息时,再考虑用第二个线性组合继续这个提取的过程,……,直到提取足够多的信息为止。这就是主成分分析的思想。
主成分分析适用于原有纬度变量之间存在较高程度相关的情况。在主成分分析适用的场合,一般可以用较少的主成分得到较多的信息量,从而得到一个更低维的向量。通过主成分既可以降低数据“维数”又保留了原数据的大部分信息。一项十分著名的案例是美国的统计学家斯通(Stone)在1947年关于国民经济的研究。他曾利用美国1929一1938年各年的数据,得到了17个反映国民收入与支出的变量要素,例如雇主补贴、消费资料和生产资料、纯公共支出、净增库存、股息、利息外贸平衡等等。在进行主成分分析后,竟以97.4%的精度,用3个新变量就取代了原17个变量。
一、主成分分析的几何意义
如果仅考虑
对坐标轴进行旋转,
第一主成分的效果与椭圆的形状有关。椭圆越扁平,
原始变量相关程度越高,主成分分析效果越好。
PCA的几何意义即是将原始坐标系进行旋转变换,然后将数据映射到新的坐标系,再根据一定标准去掉值较小的纬度,留下值较大的纬度–主成分。
二、主成分分析的数学模型
对于
若基于
根据最近重构性,上式应该被最小化,考虑到
对上面优化目标使用拉格朗日乘子法可得:
于是只需对样本集的协方差矩阵
注:具体过程可阅读参考资料3 P230。
三、主成分求解的步骤
输入样本集
1. 计算原始变量的相关系数矩阵
2. 计算相关系数矩阵
3. 计算特征值对应的特征向量,取前
4. 把原始变量的值代入主成分表达式中,可以计算出主成分得分。得到的主成分得分后,可以把各个主成分看作新的变量代替原始变量,从而达到降维的目的。
四、主成分的贡献率
降维后低维空间的维数
前
五、主成分分析的应用
主成分回归:即把各主成分作为新自变量代替原来自变量
用于综合评价:按照单个的主成分(例如第一主成分)可以对个体进行排序。按照几个主成分得分的加权平均值对个体进行排序也是一种评价方法。一般用各个主成分的方差贡献率加权。由于加权得分缺少实际意义,这种方法理论上有争议。
六、主成分分析举例
假定样本集为:
相关系数矩阵对应的特征值为2和58,求得匹配的单位特征向量为:
在新坐标系上的位置,第一维的能量 > 第二维的能量,而且它们正交。所以,如果要降到一维,无疑应该保留第一维,把第二维去掉(第1个主成分累计贡献率为96.66%)。最后得到的降维结果为:
七、主成分分析实战
scikit-learn中的主成分分析函数为decomposition.PCA,其主要包含3个参数:n_components确定要保留的主成分个数,类型为int 或者 string,缺省时默认为None,即所有成分被保留。赋值为int,比如n_components=1,将把原始数据降到一个维度。赋值为string,比如n_components=’mle’,将自动选取特征个数n,使得满足所要求的方差百分比。copy表示是否在运行算法时,将原始训练数据复制一份。若为True,则运行PCA算法后,原始训练数据的值不会有任何改变,因为是在原始数据的副本上进行运算;若为False,则运行PCA算法后,原始训练数据的值会改,因为是在原始数据上进行降维计算。whiten表示白化,即使得每个特征具有相同的方差,缺省时默认为False。
# -*- coding: utf-8 -*-from sklearn.decomposition import PCAimport numpy as npdata = np.array([[1,1],[1.5,1.6],[2,2],[2.4,2.4],[1.95,1.9],[3,3],[3.3,3.1]])pca = PCA(n_components=1)newdata = pca.fit_transform(data)print "原始数据-二维:", dataprint "降维后数据-一维:", newdata
参考资料
- http://blog.csdn.net/u012162613/article/details/42192293 scikit-learn中PCA的使用方法
- http://scikit-learn.org/stable/auto_examples/decomposition/plot_pca_iris.html PCA example with Iris Data-set
- https://item.jd.com/11867803.html 《机器学习》 周志华
- 降维:主成分分析(PCA)
- 降维-主成分分析(PCA)
- 主成分分析 PCA
- 主成分分析 PCA
- PCA--主成分分析
- PCA主成分分析
- 主成分分析PCA
- PCA主成分分析
- 主成分分析PCA
- PCA主成分分析
- PCA主成分分析
- PCA 主成分分析
- 主成分分析PCA
- 主成分分析(PCA)
- 主成分分析(PCA)
- PCA主成分分析
- PCA 主成分分析
- 主成分分析PCA
- 【UVA10755】Garbage Heap
- [splay][bzoj1251]
- 阿里云mysql5.6的一些优化配置参数,直接从阿里云mysql数据库扒的配置
- Java面试题全集(2)
- Blog4@linux管理输入输出、管道、Vim、gedit的相关用法
- 降维-主成分分析(PCA)
- 系统安全卫士企业级安全架构shiro源码分析
- 使用andengine开发游戏,屏幕适配出现的问题(二)。
- 奇偶数分离
- VS2010和VS2013同时安装visual assist X助手
- 从零开始前端学习[30]:Css3中新增加的选择器二
- HDU 1176
- Codeforces Round #439 (Div. 2)A,B
- ubuntu16.04配置vncserser中常见的问题