我正在使用 scikit-learn 进行全基因组关联研究,其特征向量约为 100K SNP。我的目标是告诉生物学家哪些 SNP 是“有趣的”。
RandomizedPCA确实改进了我的模型,但我无法解释结果。scikit-learn 可以告诉我每个组件中使用了哪些功能吗?
我正在使用 scikit-learn 进行全基因组关联研究,其特征向量约为 100K SNP。我的目标是告诉生物学家哪些 SNP 是“有趣的”。
RandomizedPCA确实改进了我的模型,但我无法解释结果。scikit-learn 可以告诉我每个组件中使用了哪些功能吗?
是的,通过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]])
我们看到截断分解只是完全分解的截断。每行包含相应主成分的系数。