Interpretazione dei risultati del PCA randomizzato in scikit-learn
-
16-10-2019 - |
Domanda
sto usando scikit-learn per fare uno studio di associazione genome-wide con una caratteristica di vettore di circa 100K SNP. Il mio obiettivo è quello di raccontare i biologi, che SNPs sono "interessante".
RandomizedPCA davvero migliorato i miei modelli, ma sto avendo problemi di interpretazione i risultati. Può scikit-learn dirmi quali caratteristiche vengono utilizzati in ogni componente?
Soluzione
Si, tramite la proprietà 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]])
Si vede che la decomposizione tronco è semplicemente il troncamento della piena decomposizione. Ciascuna riga contiene i coefficienti della corrispondente componente principale.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a datascience.stackexchange