NeighborhoodComponentsAnalysis#

class sklearn.neighbors.NeighborhoodComponentsAnalysis(n_components=None, *, init='auto', warm_start=False, max_iter=50, tol=1e-05, callback=None, verbose=0, random_state=None)[Quelle]#

Neighborhood Components Analysis.

Neighborhood Component Analysis (NCA) ist ein Machine-Learning-Algorithmus für Metrik-Lernen. Er lernt eine lineare Transformation auf überwachte Weise, um die Klassifizierungsgenauigkeit einer stochastischen Regel für nächste Nachbarn im transformierten Raum zu verbessern.

Lesen Sie mehr im Benutzerhandbuch.

Parameter:
n_componentsint, default=None

Bevorzugte Dimensionalität des projizierten Raums. Wenn None, wird sie auf n_features gesetzt.

init{‘auto’, ‘pca’, ‘lda’, ‘identity’, ‘random’} oder ndarray der Form (n_features_a, n_features_b), default=’auto’

Initialisierung der linearen Transformation. Mögliche Optionen sind 'auto', 'pca', 'lda', 'identity', 'random' und ein numpy-Array der Form (n_features_a, n_features_b).

  • 'auto'

    Abhängig von n_components wird die sinnvollste Initialisierung gewählt. Wenn n_components <= min(n_features, n_classes - 1) verwenden wir 'lda', da es Label-Informationen verwendet. Wenn nicht, aber n_components < min(n_features, n_samples), verwenden wir 'pca', da es Daten in bedeutungsvollen Richtungen projiziert (die mit höherer Varianz). Andernfalls verwenden wir einfach 'identity'.

  • 'pca'

    n_components Hauptkomponenten der an fit übergebenen Eingaben werden zur Initialisierung der Transformation verwendet. (Siehe PCA)

  • 'lda'

    min(n_components, n_classes) diskriminativste Komponenten der an fit übergebenen Eingaben werden zur Initialisierung der Transformation verwendet. (Wenn n_components > n_classes, sind die restlichen Komponenten Null.) (Siehe LinearDiscriminantAnalysis)

  • 'identity'

    Wenn n_components strikt kleiner ist als die Dimensionalität der an fit übergebenen Eingaben, wird die Identitätsmatrix auf die ersten n_components Zeilen gekürzt.

  • 'random'

    Die anfängliche Transformation ist ein Zufallsarray der Form (n_components, n_features). Jeder Wert wird aus der Standard-Normalverteilung gezogen.

  • numpy array

    n_features_b muss mit der Dimensionalität der an fit übergebenen Eingaben übereinstimmen, und n_features_a muss kleiner oder gleich dieser sein. Wenn n_components nicht None ist, muss n_features_a damit übereinstimmen.

warm_startbool, Standard=False

Wenn True und fit zuvor aufgerufen wurde, wird die Lösung des vorherigen Aufrufs von fit als anfängliche lineare Transformation verwendet (n_components und init werden ignoriert).

max_iterint, default=50

Maximale Anzahl von Iterationen bei der Optimierung.

tolfloat, default=1e-5

Konvergenztoleranz für die Optimierung.

callbackcallable, default=None

Wenn nicht None, wird diese Funktion nach jeder Iteration des Optimierers aufgerufen und erhält als Argumente die aktuelle Lösung (flache Transformationsmatrix) und die Anzahl der Iterationen. Dies kann nützlich sein, wenn man die nach jeder Iteration gefundene Transformation untersuchen oder speichern möchte.

verboseint, default=0

Wenn 0, werden keine Fortschrittsmeldungen ausgegeben. Wenn 1, werden Fortschrittsmeldungen an stdout ausgegeben. Wenn > 1, werden Fortschrittsmeldungen ausgegeben und der disp-Parameter von scipy.optimize.minimize wird auf verbose - 2 gesetzt.

random_stateint oder numpy.RandomState, default=None

Ein Pseudo-Zufallszahlengeneratorobjekt oder ein Seed dafür, wenn int. Wenn init='random', wird random_state zur Initialisierung der Zufallstransformation verwendet. Wenn init='pca', wird random_state als Argument an PCA bei der Initialisierung der Transformation übergeben. Übergeben Sie eine Ganzzahl für reproduzierbare Ergebnisse über mehrere Funktionsaufrufe hinweg. Siehe Glossar.

Attribute:
components_ndarray der Form (n_components, n_features)

Die während des Fits gelernte lineare Transformation.

n_features_in_int

Anzahl der während des fits gesehenen Merkmale.

Hinzugefügt in Version 0.24.

n_iter_int

Zählt die Anzahl der vom Optimierer durchgeführten Iterationen.

random_state_numpy.RandomState

Pseudo-Zufallszahlengeneratorobjekt, das während der Initialisierung verwendet wird.

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

sklearn.discriminant_analysis.LinearDiscriminantAnalysis

Lineare Diskriminanzanalyse.

sklearn.decomposition.PCA

Hauptkomponentenanalyse (PCA).

Referenzen

[1]

J. Goldberger, G. Hinton, S. Roweis, R. Salakhutdinov. „Neighbourhood Components Analysis“. Advances in Neural Information Processing Systems. 17, 513-520, 2005. https://www.cs.toronto.edu/~rsalakhu/papers/ncanips.pdf

[2]

Wikipedia-Eintrag zu Neighborhood Components Analysis https://en.wikipedia.org/wiki/Neighbourhood_components_analysis

Beispiele

>>> from sklearn.neighbors import NeighborhoodComponentsAnalysis
>>> from sklearn.neighbors import KNeighborsClassifier
>>> from sklearn.datasets import load_iris
>>> from sklearn.model_selection import train_test_split
>>> X, y = load_iris(return_X_y=True)
>>> X_train, X_test, y_train, y_test = train_test_split(X, y,
... stratify=y, test_size=0.7, random_state=42)
>>> nca = NeighborhoodComponentsAnalysis(random_state=42)
>>> nca.fit(X_train, y_train)
NeighborhoodComponentsAnalysis(...)
>>> knn = KNeighborsClassifier(n_neighbors=3)
>>> knn.fit(X_train, y_train)
KNeighborsClassifier(...)
>>> print(knn.score(X_test, y_test))
0.933333...
>>> knn.fit(nca.transform(X_train), y_train)
KNeighborsClassifier(...)
>>> print(knn.score(nca.transform(X_test), y_test))
0.961904...
fit(X, y)[Quelle]#

Trainiert das Modell anhand der gegebenen Trainingsdaten.

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

Die Trainingsbeispiele.

yarray-like von Form (n_samples,)

Die entsprechenden Trainingslabels.

Gibt zurück:
selfobject

Angepasster Schätzer.

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.

Die Feature-Namen werden mit dem kleingeschriebenen Klassennamen präfixiert. Wenn der Transformer z.B. 3 Features ausgibt, dann sind die Feature-Namen: ["klassenname0", "klassenname1", "klassenname2"].

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

Wird nur verwendet, um die Feature-Namen mit den in fit gesehenen Namen zu validieren.

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

Wendet die gelernte Transformation auf die gegebenen Daten an.

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

Datenproben.

Gibt zurück:
X_embedded: ndarray der Form (n_samples, n_components)

Die transformierten Datenproben.

Löst aus:
NotFittedError

Wenn fit zuvor nicht aufgerufen wurde.