FeatureHasher#
- class sklearn.feature_extraction.FeatureHasher(n_features=1048576, *, input_type='dict', dtype=<class 'numpy.float64'>, alternate_sign=True)[Quelle]#
Implementiert Feature Hashing, auch bekannt als Hashing Trick.
Diese Klasse wandelt Sequenzen von symbolischen Feature-Namen (Strings) in scipy.sparse Matrizen um, indem sie eine Hash-Funktion verwendet, um die Spalte der Matrix zu berechnen, die einem Namen entspricht. Die verwendete Hash-Funktion ist die vorzeichenbehaftete 32-Bit-Version von Murmurhash3.
Feature-Namen vom Typ Byte-String werden wie sie sind verwendet. Unicode-Strings werden zuerst in UTF-8 konvertiert, aber es wird keine Unicode-Normalisierung durchgeführt. Feature-Werte müssen (endliche) Zahlen sein.
Diese Klasse ist eine speichereffiziente Alternative zu DictVectorizer und CountVectorizer und ist für skalare (Online-)Lernmethoden und Situationen gedacht, in denen der Speicher knapp ist, z.B. beim Ausführen von Vorhersagecode auf eingebetteten Geräten.
Für einen Effizienzvergleich der verschiedenen Merkmalsextraktoren siehe Vergleich von HashingVectorizer und DictVectorizer.
Lesen Sie mehr im Benutzerhandbuch.
Hinzugefügt in Version 0.13.
- Parameter:
- n_featuresint, default=2**20
Die Anzahl der Features (Spalten) in den Ausgabematrizen. Kleine Anzahlen von Features führen wahrscheinlich zu Hash-Kollisionen, aber große Anzahlen führen zu größeren Koeffizienten-Dimensionen in linearen Lernmethoden.
- input_typestr, default=’dict’
Wählen Sie einen String aus {‚dict‘, ‚pair‘, ‚string‘}. Entweder „dict“ (Standard), um Dictionaries über (feature_name, value) zu akzeptieren; „pair“, um Paare von (feature_name, value) zu akzeptieren; oder „string“, um einzelne Strings zu akzeptieren. feature_name sollte ein String sein, während value eine Zahl sein sollte. Im Falle von „string“ wird implizit ein Wert von 1 angenommen. Der feature_name wird gehasht, um die entsprechende Spalte für das Feature zu finden. Das Vorzeichen des Wertes kann in der Ausgabe umgekehrt werden (aber siehe non_negative, unten).
- dtypenumpy dtype, default=np.float64
Der Typ der Feature-Werte. Wird an scipy.sparse Matrix-Konstruktoren als dtype-Argument übergeben. Setzen Sie diesen nicht auf bool, np.boolean oder einen vorzeichenlosen Integer-Typ.
- alternate_signbool, default=True
Wenn True, wird den Features ein wechselndes Vorzeichen hinzugefügt, um das innere Produkt im gehashten Raum auch für kleine n_features annähernd zu erhalten. Dieser Ansatz ähnelt der dünnbesetzten zufälligen Projektion.
Geändert in Version 0.19:
alternate_signersetzt den nun veralteten Parameternon_negative.
Siehe auch
DictVectorizerVektorisieren von String-basierten Features mithilfe einer Hash-Tabelle.
sklearn.preprocessing.OneHotEncoderVerarbeitet nominale/kategorische Features.
Anmerkungen
Dieser Estimator ist zustandslos und muss nicht angepasst werden. Wir empfehlen jedoch,
fit_transformanstelle vontransformaufzurufen, da die Parameterprüfung nur infitdurchgeführt wird.Beispiele
>>> from sklearn.feature_extraction import FeatureHasher >>> h = FeatureHasher(n_features=10) >>> D = [{'dog': 1, 'cat':2, 'elephant':4},{'dog': 2, 'run': 5}] >>> f = h.transform(D) >>> f.toarray() array([[ 0., 0., -4., -1., 0., 0., 0., 0., 0., 2.], [ 0., 0., 0., -2., -5., 0., 0., 0., 0., 0.]])
Mit
input_type="string"muss die Eingabe ein iterierbares Objekt über iterierbare Objekte von Strings sein.>>> h = FeatureHasher(n_features=8, input_type="string") >>> raw_X = [["dog", "cat", "snake"], ["snake", "dog"], ["cat", "bird"]] >>> f = h.transform(raw_X) >>> f.toarray() array([[ 0., 0., 0., -1., 0., -1., 0., 1.], [ 0., 0., 0., -1., 0., -1., 0., 0.], [ 0., -1., 0., 0., 0., 0., 0., 1.]])
- fit(X=None, y=None)[Quelle]#
Validiert nur die Parameter des Estimators.
Diese Methode erlaubt: (i) die Validierung der Parameter des Estimators und (ii) Konsistenz mit der scikit-learn Transformer API.
- Parameter:
- XIgnoriert
Nicht verwendet, hier zur API-Konsistenz durch Konvention vorhanden.
- yIgnoriert
Nicht verwendet, hier zur API-Konsistenz durch Konvention vorhanden.
- Gibt zurück:
- selfobject
FeatureHasher Klasseninstanz.
- fit_transform(X, y=None, **fit_params)[Quelle]#
An Daten anpassen, dann transformieren.
Passt den Transformer an
Xundymit optionalen Parameternfit_paramsan und gibt eine transformierte Version vonXzurück.- Parameter:
- Xarray-like der Form (n_samples, n_features)
Eingabestichproben.
- yarray-like der Form (n_samples,) oder (n_samples, n_outputs), Standardwert=None
Zielwerte (None für unüberwachte Transformationen).
- **fit_paramsdict
Zusätzliche Fit-Parameter. Nur übergeben, wenn der Estimator zusätzliche Parameter in seiner
fit-Methode akzeptiert.
- Gibt zurück:
- X_newndarray array der Form (n_samples, n_features_new)
Transformiertes Array.
- get_metadata_routing()[Quelle]#
Holt das Metadaten-Routing dieses Objekts.
Bitte prüfen Sie im Benutzerhandbuch, wie der Routing-Mechanismus funktioniert.
- Gibt zurück:
- routingMetadataRequest
Ein
MetadataRequest, der Routing-Informationen kapselt.
- get_params(deep=True)[Quelle]#
Holt Parameter für diesen Schätzer.
- Parameter:
- deepbool, default=True
Wenn True, werden die Parameter für diesen Schätzer und die enthaltenen Unterobjekte, die Schätzer sind, zurückgegeben.
- Gibt zurück:
- paramsdict
Parameternamen, zugeordnet ihren Werten.
- set_output(*, transform=None)[Quelle]#
Ausgabecontainer festlegen.
Siehe Einführung in die set_output API für ein Beispiel zur Verwendung der API.
- Parameter:
- transform{“default”, “pandas”, “polars”}, default=None
Konfiguriert die Ausgabe von
transformundfit_transform."default": Standardausgabeformat eines Transformers"pandas": DataFrame-Ausgabe"polars": Polars-AusgabeNone: Die Transformationskonfiguration bleibt unverändert
Hinzugefügt in Version 1.4: Die Option
"polars"wurde hinzugefügt.
- Gibt zurück:
- selfestimator instance
Schätzer-Instanz.
- set_params(**params)[Quelle]#
Setzt die Parameter dieses Schätzers.
Die Methode funktioniert sowohl bei einfachen Schätzern als auch bei verschachtelten Objekten (wie
Pipeline). Letztere haben Parameter der Form<component>__<parameter>, so dass es möglich ist, jede Komponente eines verschachtelten Objekts zu aktualisieren.- Parameter:
- **paramsdict
Schätzer-Parameter.
- Gibt zurück:
- selfestimator instance
Schätzer-Instanz.
- transform(raw_X)[Quelle]#
Wandelt eine Sequenz von Instanzen in eine scipy.sparse Matrix um.
- Parameter:
- raw_Xiterierbar über iterierbare Objekte über Roh-Features, Länge = n_samples
Stichproben. Jede Stichprobe muss iterierbar sein (z.B. eine Liste oder ein Tupel), die Feature-Namen (und optional Werte, siehe Konstruktorargument input_type) enthält/generiert, die gehasht werden. raw_X muss die Funktion len nicht unterstützen, sodass es das Ergebnis eines Generators sein kann; n_samples wird dynamisch ermittelt.
- Gibt zurück:
- Xspärliche Matrix der Form (n_samples, n_features)
Feature-Matrix zur Verwendung mit Estimators oder weiteren Transformatoren.