PCA主成分分析主要用于数据降维。由一系列特征组成的多维向量,其中某些元素本身没有区分性,或者彼此区分不大。此时,如果用它做特征区分,相似元素贡献会比较少。我们目的是找到那些变化大的元素,即方差较大的维,去除那些变化不大的维度。
具体理论参考:http://www.ams.org/samplings/feature-column/fcarc-svd
案例示例:
#-*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
import mlpy
np.random.seed(0) #seed()用于指定随机数生成时所用算法开始的整数值。
mean, cov, n = [0, 0], [[1,1],[1,1.5]], 100 #设置多元随机数生成的均值,协方差矩阵,生成点个数
x = np.random.multivariate_normal(mean, cov, n) #随机数生成
'''
x值
[[-0.2314987 0.08387106]
[ 0.66963671 1.38535319]
[ 0.97355908 0.04134561]
[ 0.38108224 0.9434845 ]
[ 0.11467758 -0.72613803]]
'''
pca = mlpy.PCA()#定义算法训练器pca
pca.learn(x) #给pca算法输入值,训练模型
coeff = pca.coeff()#获取模型训练结果的参数
'''
coef系数值
[[-0.6165097 -0.78734731]
[-0.78734731 0.6165097 ]]
'''
fig = plt.figure(1) #创