解释Scikit-Learn中随机PCA的结果
-
16-10-2019 - |
题
我正在使用Scikit-Learn进行全基因组关联研究,其中大约100K SNP的特征向量。我的目标是告诉生物学家哪些SNP“有趣”。
随机PCA 确实改善了我的模型,但是我无法解释结果。 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]])
我们看到截断的分解只是完整分解的截断。每一行都包含相应主组件的系数。