pca主成分分析原理

基本思想

几个数学思想:

其方差Var(F1)越大,表示F1包含的信息越多。

从数学上可以证明,原变量协方差矩阵的特征根是主成分的方差,所以前m个较大特征根就代表前m个较大的主成分方差值;原变量协方差矩阵前m个较大的特征值 (这样选取才能保证主成分的方差依次最大)所对应的特征向量就是相应主成分Fi表达式的系数 ,为了加以限制,系数 启用的是 对应的单位化的特征向量,即有 = 1。
其基本思想是设法将原来众多的具有一定相关性的指标X1,X2,…,XP(比如p个指标),重新组合成一组较少个数的互不相关的综合指标Fm来代替原来指标。

对综合指标要求:使其既能最大程度的反映原变量Xp所代表的信息,又能保证新指标之间保持相互无关(信息不重叠)。

主成分分析的两个主要任务

(1)确定各主成分Fi(i=1,2,…,m)关于原变量Xj(j=1,2 ,…, p)的表达式,即系数 ( i=1,2,…,m; j=1,2 ,…,p)。
(2)计算主成分载荷,主成分载荷是反映主成分Fi与原变量Xj之间的相互关联程度:

详细步骤分析

主成分分析的具体步骤如下:
(1)计算协方差矩阵
计算样品数据的协方差矩阵:Σ=(sij)p´p,其中
i,j=1,2,…,p
(2)求出Σ的特征值 及相应的正交化单位特征向量
Σ的前m个较大的特征值l1³l2³…lm>0,就是前m个主成分对应的方差, 对应的单位特征向量 就是主成分Fi的关于原变量的系数,则原变量的第i个主成分Fi为:
Fi = X
主成分的方差(信息)贡献率用来反映信息量的大小, 为:

(3)选择主成分
最终要选择几个主成分,即F1,F2,……,Fm中m的确定是通过方差(信息)累计贡献率G(m)来确定

当累积贡献率大于85%时,就认为能足够反映原来变量的信息了,对应的m就是抽取的前m个主成分。
(4)计算主成分载荷
主成分载荷是反映主成分Fi与原变量Xj之间的相互关联程度,原来变量Xj(j=1,2 ,…, p)在诸主成分Fi(i=1,2,…,m)上的荷载 lij( i=1,2,…,m; j=1,2 ,…,p)。:

在SPSS软件中主成分分析后的分析结果中,“成分矩阵”反应的就是主成分载荷矩阵。

(5)计算主成分得分
计算样品在m个主成分上的得分:
i = 1,2,…,m
实际应用时,指标的量纲往往不同,所以在主成分计算之前应先消除量纲的影响。消除数据的量纲有很多方法,常用方法是将原始数据标准化,即做如下数据变换:

python运用主成分分析代码

#-*- coding: utf-8 -*-
#主成分分析 降维
import pandas as pd

#参数初始化
inputfile = '../data/principal_component.xls'
outputfile = '../tmp/dimention_reducted.xls' #降维后的数据

data = pd.read_excel(inputfile, header = None) #读入数据

from sklearn.decomposition import PCA

pca = PCA()
pca.fit(data)
pca.components_ #返回模型的各个特征向量
pca.explained_variance_ratio_ #返回各个成分各自的方差百分比

你可能感兴趣的:(人工智能)