实现主成分基本步骤:
- 数据中心化,减去均值
- 中心化后的数据求协方差阵,并对协方差阵求特征值与特征向量,以此计算主成分
- 对特征值进行排序,确定各主成分贡献率,并按大小排列
- 依据所需累积主成分贡献率p,进行截取,选取前m个主成分,使得前m个主成分的,累积贡献率大于p
所用包:numpy
#-*-coding:GBK-*-
'''
author:zwg
created in 2016-10-04 by zwg
'''
#定义pca函数
import numpy
def my_pca(A):
me=numpy.mean(A,axis=0)
A1=A-me
A1_cov=numpy.cov(A1.T)
eigval,eig=numpy.linalg.eig(A1_cov)
sort=numpy.argsort(eigval)
sort=sort[::-1]
eigval_sort=eigval[sort]