我使用scikit-learn PCA来找到具有20000个特征和400多个样本的数据集的主要组成部分。Orange PCA和scikit-learn PCA之间的不同结果
但是,与Orange3 PCA哪个应该使用scikit-learn PCA相比,我得到了不同的结果。我也没有检查Orange3 PCA提出的标准化选项。
随着scikit学习第一主成分约占总方差14%,第二约13%等。
随着Orange3我得到一个非常不同的结果(〜为第一主成分等方差的65%):
使用scikit学习我的代码如下:
import pandas as pd
from sklearn.decomposition import PCA
matrix = pd.read_table("matrix.csv", sep='\t', index_col=0)
sk_pca = PCA(n_components=None)
result = sk_pca.fit(matrix.T.values)
print(result.explained_variance_ratio_)
使用Orange3,我使用文件块加载了csv。然后我将这个块连接到PCA块,在那里我取消选中规范化选项。
这两种方法的区别在哪里?
机器学习中的*标准*是表示数据点(或样本)的行和表示要素的列。仅供将来参考:P –
同意,这是SQL,pandas和R数据框所做的。 –