Entfernen von Komponenten mit geringer Varianz mit scikit-learn

scikit-learn bietet verschiedene Methoden zum entfernen von Deskriptoren, ein basic Methode für diesen Zweck wurde durch die gegebenen Anleitung unten,

http://scikit-learn.org/stable/modules/feature_selection.html#

aber das tutorial stellt keine Methode oder einen Weg, der Ihnen sagen kann die Art und Weise, die Liste der features, die entweder entfernt oder beibehalten.

Den code unten wurde entnommen aus dem tutorial.

    from sklearn.feature_selection import VarianceThreshold
    X = [[0, 0, 1], [0, 1, 0], [1, 0, 0], [0, 1, 1], [0, 1, 0], [0, 1, 1]]
    sel = VarianceThreshold(threshold=(.8 * (1 - .8)))
    sel.fit_transform(X)
array([[0, 1],
       [1, 0],
       [0, 0],
       [1, 1],
       [1, 0],
       [1, 1]])

Beispiel-code oben zeigt nur zwei Deskriptoren " - Form(6, 2)", aber in meinem Fall, ich habe einen riesigen Daten-frames mit einer Form der (Zeilen 51, Spalten 9000). Nach der Suche nach einem geeigneten Modell, das ich behalten möchten Spur von nützlichen und nutzlosen features, weil ich speichern kann Rechenzeit bei der Berechnung der features von test-Daten durch die Berechnung nur nützliche Funktionen.

Beispielsweise, wenn Sie ausführen, maschinelles lernen-Modellierung mit WEKA 6.0, sofern es mit bemerkenswerter Flexibilität über die feature-Auswahl und nach dem entfernen der nutzlosen Funktion können Sie eine Liste der verworfenen features zusammen mit den nützlichen features.

Dank

  • Sklearn funktioniert anders als WEKA. In diesem Fall, anstatt Ihnen eine Liste der besten features, sklearn gibt direkt ein neues array mit den besten features. Brauchst du wirklich die Liste? Ich denke, diese Liste könnte berechnet werden, die mit einer umgehen, aber ist das wirklich notwendig?
  • laut meines Verständnisses (wie ich bin nicht sehr Erfahrung in der ML, aber ein begeisterter schlanker ) Trainings-und test-set sollte haben dieselbe Anzahl von features mit derselben Indizierung, da sonst im Falle von weka er rase Fehler. Wenn Test-set ist die interne abgeleitet, die mit den Daten split-würde ich immer gleichen Funktionen und die gleiche Indizierung, aber wenn wir die Verwendung von externen Daten-Testsatz oder unbekannte Daten auf welche Vorhersagen machen, ohne die bekannten Namen der Funktion, wie wir könnten die unbekannten Daten.
  • ja du hast Recht. Ich dachte nur in der Ausbildung ahah
InformationsquelleAutor jax | 2015-03-27
Schreibe einen Kommentar