在 scikit-learn 中解释随机 PCA 的结果

数据挖掘 特征选择 scikit-学习 主成分分析 随机算法
2021-10-01 15:40:39

我正在使用 scikit-learn 进行全基因组关联研究,其特征向量约为 100K SNP。我的目标是告诉生物学家哪些 SNP 是“有趣的”。

RandomizedPCA确实改进了我的模型,但我无法解释结果。scikit-learn 可以告诉我每个组件中使用了哪些功能吗?

1个回答

是的,通过components_物业:

import numpy, seaborn, pandas, sklearn.decomposition
data = numpy.random.randn(1000, 3) @ numpy.random.randn(3,3)
seaborn.pairplot(pandas.DataFrame(data, columns=['x', 'y', 'z']));

多面散点图

sklearn.decomposition.RandomizedPCA().fit(data).components_

> array([[ 0.43929754,  0.81097276,  0.38644644],
       [-0.54977152,  0.58291122, -0.59830243],
       [ 0.71047094, -0.05037554, -0.70192119]])

sklearn.decomposition.RandomizedPCA(2).fit(data).components_

> array([[ 0.43929754,  0.81097276,  0.38644644],
       [-0.54977152,  0.58291122, -0.59830243]])

我们看到截断分解只是完全分解的截断。每行包含相应主成分的系数。