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?

È stato utile?

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']));

grafico a dispersione sfaccettato

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
scroll top