主成分分析也称主分量分析,旨在利用降维的思想,把多指标转化为少数几个综合指标(即主成分),其中每个主成分都能够反映原始变量的大部分信息,且所含信息互不重复。这种方法在引进多方面变量的同时将复杂因素归结为几个主成分,使问题简单化,同时得到的结果更加科学有效的数据信息。
使用梯度上升法求解主成分//准备数据import numpy as npimport matplotlib.pyplot as plt
X = np.empty((100,2))
X[:,0] = np.random.uniform(0.,100.,size=100)
X[:,1] = 0.75*X[:,0]+3.+np.random.normal(0,10.,size=100)
plt.scatter(X[:,0],X[:,1])
plt.show
// 数据demean过程def demean(X):
return X - np.mean(X,axis=0)#效用函数def f(w,X):
return np.sum((X.dot(w)**2))/len(X)#效用函数导函数def df_math(w,X):
return X.T.dot(X.