【发布时间】:2017-07-06 13:47:35
【问题描述】:
当我用 scikit-learn 做 PCA 时,我发现它使用 svd 得到eigenvalue 和eigenvector,然后使用svd_flip 得到真正的特征向量。
这是我获取eigenvalue 和eigenvector 的代码。
pca = PCA(data.shape[1])
newData = pca.fit_transform(data)
eigenvalue, eigenvector = np.linalg.eig(np.cov(data.transpose()))
explained_variance_ratio_sum_ = np.cumsum(pca.explained_variance_ratio_)
index = eigenvalue.argsort()[::-1]
eigenvalue = eigenvalue[index]
eigenvector = eigenvector[:, index]
为什么 sklearn 使用 svd?有什么优点或缺点吗?而且我对svd_flip函数不是很熟悉,你能告诉我它的用法吗?
非常感谢。
【问题讨论】:
-
这里可能不适合讨论算法。请看stats.stackexchange.com/questions/79043/…
标签: scikit-learn pca