Frage

Ich verwende Scikit-Learn, um eine genomweite Assoziationsstudie mit einem Merkmalsvektor von etwa 100.000 SNPs durchzuführen. Mein Ziel ist es, den Biologen zu sagen, welche SNPs "interessant" sind.

RandomisiertePca Ich habe meine Modelle wirklich verbessert, aber ich habe Probleme, die Ergebnisse zu interpretieren. Kann Scikit-Learn mir sagen, welche Funktionen in jeder Komponente verwendet werden?

War es hilfreich?

Lösung

Ja, durch die components_ Eigentum:

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

Faceted scatter plot

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

Wir sehen, dass die abgeschnittene Zersetzung einfach die Kürzung der vollständigen Zersetzung ist. Jede Zeile enthält die Koeffizienten der entsprechenden Hauptkomponente.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit datascience.stackexchange
scroll top