gpt4 book ai didi

python - Orange PCA 和 scikit-learn PCA 之间的不同结果

转载 作者:太空宇宙 更新时间:2023-11-04 05:33:19 42 4
gpt4 key购买 nike

我正在使用 scikit-learn PCA查找具有大约 20000 个特征和 400 多个样本的数据集的主要成分。

但是,与Orange3 PCA相比应该使用 scikit-learn PCA,我得到不同的结果。我还取消选中了 Orange3 PCA 提出的规范化选项。

在 scikit-learn 中,第一个主成分约占总方差的 14%,第二个主成分约占 13%,依此类推。

对于 Orange3,我得到了非常不同的结果(第一个主成分的方差约为 65%,依此类推):

Orange3 PCA output

我使用 scikit-learn 的代码如下:

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,我使用文件 block 加载了 csv。然后我将此 block 连接到 PCA block ,在其中取消选中规范化选项。

这两种方式的区别在哪里?

最佳答案

可能与 Orange 的 PCA 预处理器或加载数据的方式有关。 PCA包含以下两个预处理器:

  • 连续化(用于将分类值或确定为分类值变为连续值,例如通过单热变换),以及
  • 插补(例如,用平均值替换 nans)。

确保您加载的数据没有任何 nan 值并且带有 Orange's three line header ,将所有特征标记为连续的,因此不会进行任何转换。

关于python - Orange PCA 和 scikit-learn PCA 之间的不同结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36401290/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com