从sklearn的PCA中获取特征值和特征向量。
从sklearn的PCA中获取特征值和特征向量。
如何获得PCA应用的特征值和特征向量?
from sklearn.decomposition import PCA clf=PCA(0.98,whiten=True) #保留98%的方差 X_train=clf.fit_transform(X_train) X_test=clf.transform(X_test)
我在文档中找不到相关信息。
1. 我无法理解这里的不同结果。
编辑:
def pca_code(data): #原始实现 var_per=.98 data-=np.mean(data, axis=0) data/=np.std(data, axis=0) cov_mat=np.cov(data, rowvar=False) evals, evecs = np.linalg.eigh(cov_mat) idx = np.argsort(evals)[::-1] evecs = evecs[:,idx] evals = evals[idx] variance_retained=np.cumsum(evals)/np.sum(evals) index=np.argmax(variance_retained>=var_per) evecs = evecs[:,:index+1] reduced_data=np.dot(evecs.T, data.T).T print(evals) print("_"*30) print(evecs) print("_"*30) #使用scipy包 clf=PCA(var_per) X_train=data.T X_train=clf.fit_transform(X_train) print(clf.explained_variance_) print("_"*30) print(clf.components_) print("__"*30)
2. 我希望获取所有特征值和特征向量,而不仅仅是满足收敛条件的缩减集合。