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_sign ersetzt den nun veralteten Parameter non_negative.

Siehe auch

DictVectorizer

Vektorisieren von String-basierten Features mithilfe einer Hash-Tabelle.

sklearn.preprocessing.OneHotEncoder

Verarbeitet nominale/kategorische Features.

Anmerkungen

Dieser Estimator ist zustandslos und muss nicht angepasst werden. Wir empfehlen jedoch, fit_transform anstelle von transform aufzurufen, da die Parameterprüfung nur in fit durchgefü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 X und y mit optionalen Parametern fit_params an und gibt eine transformierte Version von X zurü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 transform und fit_transform.

  • "default": Standardausgabeformat eines Transformers

  • "pandas": DataFrame-Ausgabe

  • "polars": Polars-Ausgabe

  • None: 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.