KNNImputer#

class sklearn.impute.KNNImputer(*, missing_values=nan, n_neighbors=5, weights='uniform', metric='nan_euclidean', copy=True, add_indicator=False, keep_empty_features=False)[Quelle]#

Imputation zur Vervollständigung fehlender Werte mittels k-Nächste Nachbarn.

Die fehlenden Werte jedes Musters werden mit dem Mittelwert von n_neighbors nächsten Nachbarn im Trainingsdatensatz imputiert. Zwei Muster sind nah beieinander, wenn die Merkmale, die für keines von beiden fehlen, nah beieinander liegen.

Lesen Sie mehr im Benutzerhandbuch.

Hinzugefügt in Version 0.22.

Parameter:
missing_valuesint, float, str, np.nan oder None, Standard=np.nan

Der Platzhalter für die fehlenden Werte. Alle Vorkommen von missing_values werden imputiert. Für Pandas-DataFrames mit nullable Integer-Datentypen mit fehlenden Werten sollte missing_values auf np.nan gesetzt werden, da pd.NA in np.nan konvertiert wird.

n_neighborsint, Standard=5

Anzahl der benachbarten Muster, die für die Imputation verwendet werden.

weights{‘uniform’, ‘distance’} oder aufrufbar, Standard=’uniform’

Gewichtsfunktion, die bei der Vorhersage verwendet wird. Mögliche Werte

  • ‘uniform’ : gleichmäßige Gewichte. Alle Punkte in jedem Nachbarschaftsbereich werden gleich gewichtet.

  • ‘distance’ : Punkte werden nach dem Kehrwert ihrer Entfernung gewichtet. In diesem Fall haben nähere Nachbarn eines Anfragepunkts mehr Einfluss als weiter entfernte Nachbarn.

  • aufrufbar: Eine benutzerdefinierte Funktion, die ein Array von Distanzen entgegennimmt und ein Array derselben Form mit den Gewichten zurückgibt.

metric{‘nan_euclidean’} oder aufrufbar, Standard=’nan_euclidean’

Distanzmetrik zur Suche nach Nachbarn. Mögliche Werte

  • ‘nan_euclidean’

  • aufrufbar: Eine benutzerdefinierte Funktion, die der Definition von func_metric(x, y, *, missing_values=np.nan) entspricht. x und y entsprechen einer Zeile (d.h. 1D-Arrays) von X bzw. Y. Die aufrufbare Funktion sollte einen skalaren Distanzwert zurückgeben.

copybool, Standard=True

Wenn True, wird eine Kopie von X erstellt. Wenn False, erfolgt die Imputation, wo immer möglich, direkt (in-place).

add_indicatorbool, Standardwert=False

Wenn True, wird ein MissingIndicator-Transformationsmodul an die Ausgabe des Transformators des Imputers angehängt. Dies ermöglicht es einem prädiktiven Schätzer, fehlende Werte trotz Imputation zu berücksichtigen. Wenn ein Merkmal zur Trainingszeit keine fehlenden Werte aufweist, erscheint das Merkmal im fehlenden Indikator nicht, auch wenn zur Testzeit fehlende Werte vorhanden sind.

keep_empty_featuresbool, Standardwert=False

Wenn True, werden Merkmale, die bei Aufruf von fit ausschließlich aus fehlenden Werten bestehen, bei Aufruf von transform in den Ergebnissen zurückgegeben. Der imputierte Wert ist immer 0.

Hinzugefügt in Version 1.2.

Attribute:
indicator_MissingIndicator

Indikator, der zum Hinzufügen binärer Indikatoren für fehlende Werte verwendet wird. None, wenn add_indicator False ist.

n_features_in_int

Anzahl der während des fits gesehenen Merkmale.

Hinzugefügt in Version 0.24.

feature_names_in_ndarray mit Form (n_features_in_,)

Namen der während fit gesehenen Merkmale. Nur definiert, wenn X Merkmalnamen hat, die alle Zeichenketten sind.

Hinzugefügt in Version 1.0.

Siehe auch

SimpleImputer

Univariater Imputer zur Vervollständigung fehlender Werte mit einfachen Strategien.

IterativeImputer

Multivariater Imputer, der Werte zur Imputation für jedes Merkmal mit fehlenden Werten aus allen anderen Merkmalen schätzt.

Referenzen

Beispiele

>>> import numpy as np
>>> from sklearn.impute import KNNImputer
>>> X = [[1, 2, np.nan], [3, 4, 3], [np.nan, 6, 5], [8, 8, 7]]
>>> imputer = KNNImputer(n_neighbors=2)
>>> imputer.fit_transform(X)
array([[1. , 2. , 4. ],
       [3. , 4. , 3. ],
       [5.5, 6. , 5. ],
       [8. , 8. , 7. ]])

Ein detaillierteres Beispiel finden Sie unter Fehlende Werte vor dem Aufbau eines Schätzers imputieren.

fit(X, y=None)[Quelle]#

Den Imputer an X anpassen.

Parameter:
Xarray-ähnlich, Form (n_samples, n_features)

Eingabedaten, wobei n_samples die Anzahl der Stichproben und n_features die Anzahl der Merkmale ist.

yIgnoriert

Nicht verwendet, hier zur API-Konsistenz durch Konvention vorhanden.

Gibt zurück:
selfobject

Die angepasste Instanz der Klasse KNNImputer.

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_feature_names_out(input_features=None)[Quelle]#

Holt die Ausgabemerkmale für die Transformation.

Parameter:
input_featuresarray-like von str oder None, default=None

Eingabemerkmale.

  • Wenn input_features None ist, werden feature_names_in_ als Merkmalnamen verwendet. Wenn feature_names_in_ nicht definiert ist, werden die folgenden Eingabemerkmalsnamen generiert: ["x0", "x1", ..., "x(n_features_in_ - 1)"].

  • Wenn input_features ein Array-ähnliches Objekt ist, muss input_features mit feature_names_in_ übereinstimmen, wenn feature_names_in_ definiert ist.

Gibt zurück:
feature_names_outndarray von str-Objekten

Transformierte Merkmalnamen.

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(X)[Quelle]#

Imputiere alle fehlenden Werte in X.

Parameter:
Xarray-like der Form (n_samples, n_features)

Die Eingabedaten, die vervollständigt werden sollen.

Gibt zurück:
Xarray-ähnlich der Form (n_samples, n_output_features)

Der imputierte Datensatz. n_output_features ist die Anzahl der Merkmale, die während fit nicht immer fehlen.