L'interprétation des résultats de l'ACP randomisée en scikit-learn
-
16-10-2019 - |
Question
J'utilise scikit-learn à faire une étude d'association pangénomique avec un vecteur caractéristique d'environ 100K SNPs. Mon but est de dire aux biologistes qui sont SNPs « intéressant ».
RandomizedPCA vraiment amélioré mes modèles, mais je vais avoir du mal à interprétariat Les resultats. Peut scikit-learn me dire quelles fonctionnalités sont utilisées dans chaque composant?
La solution
Oui, à travers la propriété 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]])
On voit que la décomposition tronquée est simplement la troncature de la pleine décomposition. Chaque ligne contient les coefficients de la composante principale correspondante.
Licencié sous: CC-BY-SA avec attribution
Non affilié à datascience.stackexchange