RadiusNeighborsClassifier#

class sklearn.neighbors.RadiusNeighborsClassifier(radius=1.0, *, weights='uniform', algorithm='auto', leaf_size=30, p=2, metric='minkowski', outlier_label=None, metric_params=None, n_jobs=None)[Quelle]#

Klassifikator, der eine Abstimmung unter Nachbarn innerhalb eines gegebenen Radius implementiert.

Lesen Sie mehr im Benutzerhandbuch.

Parameter:
radiusfloat, Standardwert=1.0

Bereich des Parameterraums, der standardmäßig für Abfragen von radius_neighbors verwendet wird.

weights{‘uniform’, ‘distance’}, aufrufbar oder None, 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 Entfernungen akzeptiert und ein Array derselben Form mit den Gewichten zurückgibt.

Gleichmäßige Gewichte werden standardmäßig verwendet.

algorithm{‘auto’, ‘ball_tree’, ‘kd_tree’, ‘brute’}, Standard=’auto’

Algorithmus zur Berechnung der nächsten Nachbarn

  • ‘ball_tree’ verwendet BallTree

  • ‘kd_tree’ verwendet KDTree

  • ‘brute’ verwendet eine brute-force Suche.

  • „auto“ versucht, den am besten geeigneten Algorithmus basierend auf den an die Methode fit übergebenen Werten zu ermitteln.

Hinweis: Das Anpassen an dünnbesetzte Eingaben überschreibt die Einstellung dieses Parameters und verwendet brute force.

leaf_sizeint, Standard=30

Anzahl der Blätter, die an BallTree oder KDTree übergeben werden. Dies kann die Geschwindigkeit des Aufbaus und der Abfrage sowie den benötigten Speicherplatz für den Baum beeinflussen. Der optimale Wert hängt von der Art des Problems ab.

pfloat, Standard=2

Potenzparameter für die Minkowski-Metrik. Wenn p = 1, ist dies äquivalent zur Verwendung der Manhattan-Distanz (l1) und der Euklidischen Distanz (l2) für p = 2. Für beliebiges p wird die Minkowski-Distanz (l_p) verwendet. Dieser Parameter muss positiv sein.

metricstr oder aufrufbar, Standard=’minkowski’

Metrik zur Entfernungsberechnung. Standard ist „minkowski“, was bei p = 2 zur Standard-Euklidischen Distanz führt. Siehe die Dokumentation von scipy.spatial.distance und die unter distance_metrics aufgeführten Metriken für gültige Metrikwerte.

Wenn metric “precomputed” ist, wird davon ausgegangen, dass X eine Distanzmatrix ist und während des Anlernens quadratisch sein muss. X kann ein dünnbesetzter Graph sein, in diesem Fall können nur “nonzero” Elemente als Nachbarn betrachtet werden.

Wenn metric eine aufrufbare Funktion ist, nimmt sie zwei Arrays entgegen, die 1D-Vektoren darstellen, und muss einen Wert zurückgeben, der die Entfernung zwischen diesen Vektoren angibt. Dies funktioniert für Scipys Metriken, ist aber weniger effizient als die Übergabe des Metriknamens als String.

outlier_label{manueller Label, „most_frequent“}, Standard=None

Label für Ausreißer-Samples (Samples ohne Nachbarn im gegebenen Radius).

  • Manueller Label: str oder int Label (sollte vom gleichen Typ wie y sein) oder Liste von manuellen Labels, wenn Multi-Output verwendet wird.

  • „most_frequent“: weist den häufigsten Label von y Ausreißern zu.

  • None: Wenn ein Ausreißer erkannt wird, wird eine ValueError ausgelöst.

Der Ausreißer-Label sollte aus den eindeutigen ‚Y‘-Labels ausgewählt werden. Wenn er mit einem anderen Wert angegeben wird, wird eine Warnung ausgegeben und alle Klassenwahrscheinlichkeiten von Ausreißern werden auf 0 gesetzt.

metric_paramsdict, Standard=None

Zusätzliche Schlüsselwortargumente für die Metrikfunktion.

n_jobsint, default=None

Die Anzahl der parallelen Jobs für die Nachbarsuche. None bedeutet 1, es sei denn, es befindet sich in einem joblib.parallel_backend Kontext. -1 bedeutet, alle Prozessoren zu verwenden. Siehe Glossar für weitere Details.

Attribute:
classes_ndarray der Form (n_classes,)

Bekannte Klassen-Labels für den Klassifikator.

effective_metric_str oder callable

Die verwendete Distanzmetrik. Sie ist identisch mit dem Parameter metric oder ein Synonym davon, z. B. ‘euclidean’, wenn der Parameter metric auf ‘minkowski’ und der Parameter p auf 2 gesetzt ist.

effective_metric_params_dict

Zusätzliche Schlüsselwortargumente für die Metrikfunktion. Für die meisten Metriken ist dies dasselbe wie der Parameter metric_params, kann aber auch den Wert des Parameters p enthalten, wenn das Attribut effective_metric_ auf ‘minkowski’ gesetzt 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.

n_samples_fit_int

Anzahl der Samples in den angepassten Daten.

outlier_label_int oder array-ähnlich der Form (n_class,)

Label, das für Ausreißer-Samples vergeben wird (Samples ohne Nachbarn im gegebenen Radius).

outputs_2d_bool

False, wenn die Form von y während des Fits (n_samples, ) oder (n_samples, 1) ist, andernfalls True.

Siehe auch

KNeighborsClassifier

Klassifikator, der die k-nächste-Nachbarn-Abstimmung implementiert.

RadiusNeighborsRegressor

Regression basierend auf Nachbarn innerhalb eines festen Radius.

KNeighborsRegressor

Regression basierend auf k-nächsten Nachbarn.

NearestNeighbors

Unüberwachter Lerner zur Implementierung von Nachbarschaftssuchen.

Anmerkungen

Siehe Nearest Neighbors in der Online-Dokumentation für eine Diskussion der Wahl von algorithm und leaf_size.

https://en.wikipedia.org/wiki/K-nearest_neighbor_algorithm

Beispiele

>>> X = [[0], [1], [2], [3]]
>>> y = [0, 0, 1, 1]
>>> from sklearn.neighbors import RadiusNeighborsClassifier
>>> neigh = RadiusNeighborsClassifier(radius=1.0)
>>> neigh.fit(X, y)
RadiusNeighborsClassifier(...)
>>> print(neigh.predict([[1.5]]))
[0]
>>> print(neigh.predict_proba([[1.0]]))
[[0.66666667 0.33333333]]
fit(X, y)[Quelle]#

Trainiert den Radius-Nachbarn-Klassifikator anhand des Trainingsdatensatzes.

Parameter:
X{array-like, sparse matrix} der Form (n_samples, n_features) oder (n_samples, n_samples), wenn metric=’precomputed’

Trainingsdaten.

y{array-like, sparse matrix} der Form (n_samples,) oder (n_samples, n_outputs)

Zielwerte.

Gibt zurück:
selfRadiusNeighborsClassifier

Der trainierte Radius-Nachbarn-Klassifikator.

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.

predict(X)[Quelle]#

Vorhersage der Klassen-Labels für die bereitgestellten Daten.

Parameter:
X{array-like, sparse matrix} der Form (n_queries, n_features), oder (n_queries, n_indexed), wenn metric == ‘precomputed’, oder None

Teststichproben. Wenn None, werden Vorhersagen für alle indizierten Punkte zurückgegeben; in diesem Fall werden Punkte nicht als ihre eigenen Nachbarn betrachtet.

Gibt zurück:
yndarray der Form (n_queries,) oder (n_queries, n_outputs)

Klassen-Labels für jeden Daten-Sample.

predict_proba(X)[Quelle]#

Gibt Wahrscheinlichkeitsschätzungen für die Testdaten X zurück.

Parameter:
X{array-like, sparse matrix} der Form (n_queries, n_features), oder (n_queries, n_indexed), wenn metric == ‘precomputed’, oder None

Teststichproben. Wenn None, werden Vorhersagen für alle indizierten Punkte zurückgegeben; in diesem Fall werden Punkte nicht als ihre eigenen Nachbarn betrachtet.

Gibt zurück:
pndarray der Form (n_queries, n_classes) oder eine Liste von n_outputs solcher Arrays, wenn n_outputs > 1.

Die Klassenwahrscheinlichkeiten der Eingabe-Samples. Klassen werden lexikografisch sortiert.

radius_neighbors(X=None, radius=None, return_distance=True, sort_results=False)[Quelle]#

Findet die Nachbarn innerhalb eines gegebenen Radius eines oder mehrerer Punkte.

Gibt die Indizes und Entfernungen jedes Punktes aus dem Datensatz zurück, der sich in einer Kugel mit der Größe radius um die Punkte des Abfrage-Arrays befindet. Punkte, die auf der Grenze liegen, werden in die Ergebnisse aufgenommen.

Die Ergebnis-Punkte sind *nicht* notwendigerweise nach der Entfernung zu ihrem Abfragepunkt sortiert.

Parameter:
X{array-like, sparse matrix} von (n_samples, n_features), Standardwert=None

Der Anfragepunkt oder die Anfragepunkte. Wenn nicht angegeben, werden die Nachbarn jedes indizierten Punktes zurückgegeben. In diesem Fall wird der Anfragepunkt nicht als sein eigener Nachbar betrachtet.

radiusfloat, Standardwert=None

Begrenzungsradius der zurückzugebenden Nachbarn. Der Standardwert ist der Wert, der an den Konstruktor übergeben wurde.

return_distancebool, Standard=True

Gibt zurück, ob die Entfernungen zurückgegeben werden sollen.

sort_resultsbool, Standardwert=False

Wenn True, werden die Entfernungen und Indizes vor der Rückgabe nach aufsteigenden Entfernungen sortiert. Wenn False, sind die Ergebnisse möglicherweise nicht sortiert. Wenn return_distance=False gesetzt ist, führt die Einstellung von sort_results=True zu einem Fehler.

Hinzugefügt in Version 0.22.

Gibt zurück:
neigh_distndarray von shape (n_samples,) von Arrays

Array, das die Entfernungen zu jedem Punkt darstellt, nur vorhanden, wenn return_distance=True ist. Die Entfernungs-Werte werden gemäß dem Konstruktorparameter metric berechnet.

neigh_indndarray von shape (n_samples,) von Arrays

Ein Array von Arrays von Indizes der ungefähren nächsten Punkte aus der Populationsmatrix, die sich innerhalb einer Kugel der Größe radius um die Abfragepunkte befinden.

Anmerkungen

Da die Anzahl der Nachbarn jedes Punktes nicht notwendigerweise gleich ist, können die Ergebnisse für mehrere Abfragepunkte nicht in einem Standard-Datenarray untergebracht werden. Aus Effizienzgründen gibt radius_neighbors Arrays von Objekten zurück, wobei jedes Objekt ein 1D-Array von Indizes oder Entfernungen ist.

Beispiele

Im folgenden Beispiel konstruieren wir eine NeighborsClassifier-Klasse aus einem Array, das unseren Datensatz repräsentiert, und fragen, welcher Punkt [1, 1, 1] am nächsten liegt

>>> import numpy as np
>>> samples = [[0., 0., 0.], [0., .5, 0.], [1., 1., .5]]
>>> from sklearn.neighbors import NearestNeighbors
>>> neigh = NearestNeighbors(radius=1.6)
>>> neigh.fit(samples)
NearestNeighbors(radius=1.6)
>>> rng = neigh.radius_neighbors([[1., 1., 1.]])
>>> print(np.asarray(rng[0][0]))
[1.5 0.5]
>>> print(np.asarray(rng[1][0]))
[1 2]

Das erste zurückgegebene Array enthält die Entfernungen zu allen Punkten, die näher als 1,6 sind, während das zweite zurückgegebene Array deren Indizes enthält. Im Allgemeinen können mehrere Punkte gleichzeitig abgefragt werden.

radius_neighbors_graph(X=None, radius=None, mode='connectivity', sort_results=False)[Quelle]#

Berechnet den (gewichteten) Graphen von Nachbarn für Punkte in X.

Nachbarschaften werden auf die Punkte mit einer Entfernung kleiner als radius beschränkt.

Parameter:
X{array-like, sparse matrix} von shape (n_samples, n_features), Standardwert=None

Der Anfragepunkt oder die Anfragepunkte. Wenn nicht angegeben, werden die Nachbarn jedes indizierten Punktes zurückgegeben. In diesem Fall wird der Anfragepunkt nicht als sein eigener Nachbar betrachtet.

radiusfloat, Standardwert=None

Radius der Nachbarschaften. Der Standardwert ist der Wert, der an den Konstruktor übergeben wurde.

mode{‘connectivity’, ‘distance’}, Standard=’connectivity’

Typ der zurückgegebenen Matrix: ‘connectivity’ gibt die Konnektivitätsmatrix mit Einsen und Nullen zurück, bei ‘distance’ sind die Kanten die Entfernungen zwischen den Punkten; die Art der Distanz hängt vom ausgewählten Metrikparameter in der NearestNeighbors-Klasse ab.

sort_resultsbool, Standardwert=False

Wenn True, werden in jeder Zeile des Ergebnisses die Nicht-Null-Einträge nach aufsteigenden Entfernungen sortiert. Wenn False, sind die Nicht-Null-Einträge möglicherweise nicht sortiert. Nur verwendet mit mode=’distance’.

Hinzugefügt in Version 0.22.

Gibt zurück:
Asparse-matrix der Form (n_queries, n_samples_fit)

n_samples_fit ist die Anzahl der Samples in den angepassten Daten. A[i, j] gibt das Gewicht der Kante an, die i mit j verbindet. Die Matrix hat das CSR-Format.

Siehe auch

kneighbors_graph

Berechnet den (gewichteten) Graphen von k-Nachbarn für Punkte in X.

Beispiele

>>> X = [[0], [3], [1]]
>>> from sklearn.neighbors import NearestNeighbors
>>> neigh = NearestNeighbors(radius=1.5)
>>> neigh.fit(X)
NearestNeighbors(radius=1.5)
>>> A = neigh.radius_neighbors_graph(X)
>>> A.toarray()
array([[1., 0., 1.],
       [0., 1., 0.],
       [1., 0., 1.]])
score(X, y, sample_weight=None)[Quelle]#

Gibt die durchschnittliche Genauigkeit auf den gegebenen Testdaten und Labels zurück.

Bei der Multi-Label-Klassifizierung ist dies die Subset-Genauigkeit, eine strenge Metrik, da für jede Stichprobe verlangt wird, dass jede Label-Menge korrekt vorhergesagt wird.

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

Test-Samples. Wenn None, werden Vorhersagen für alle indizierten Punkte verwendet; in diesem Fall werden Punkte nicht als ihre eigenen Nachbarn betrachtet. Dies bedeutet, dass knn.fit(X, y).score(None, y) implizit eine Leave-One-Out-Kreuzvalidierung durchführt und mit cross_val_score(knn, X, y, cv=LeaveOneOut()) äquivalent ist, aber typischerweise viel schneller.

yarray-like der Form (n_samples,) oder (n_samples, n_outputs)

Wahre Bezeichnungen für X.

sample_weightarray-like der Form (n_samples,), Standardwert=None

Stichprobengewichte.

Gibt zurück:
scorefloat

Mittlere Genauigkeit von self.predict(X) in Bezug auf y.

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.

set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') RadiusNeighborsClassifier[Quelle]#

Konfiguriert, ob Metadaten für die score-Methode angefordert werden sollen.

Beachten Sie, dass diese Methode nur relevant ist, wenn dieser Schätzer als Unter-Schätzer innerhalb eines Meta-Schätzers verwendet wird und Metadaten-Routing mit enable_metadata_routing=True aktiviert ist (siehe sklearn.set_config). Bitte lesen Sie das Benutzerhandbuch, um zu erfahren, wie der Routing-Mechanismus funktioniert.

Die Optionen für jeden Parameter sind

  • True: Metadaten werden angefordert und, falls vorhanden, an score übergeben. Die Anforderung wird ignoriert, wenn keine Metadaten vorhanden sind.

  • False: Metadaten werden nicht angefordert und der Meta-Schätzer übergibt sie nicht an score.

  • None: Metadaten werden nicht angefordert und der Meta-Schätzer löst einen Fehler aus, wenn der Benutzer sie bereitstellt.

  • str: Metadaten sollten mit diesem Alias an den Meta-Schätzer übergeben werden und nicht mit dem ursprünglichen Namen.

Der Standardwert (sklearn.utils.metadata_routing.UNCHANGED) behält die bestehende Anforderung bei. Dies ermöglicht es Ihnen, die Anforderung für einige Parameter zu ändern und für andere nicht.

Hinzugefügt in Version 1.3.

Parameter:
sample_weightstr, True, False, oder None, Standardwert=sklearn.utils.metadata_routing.UNCHANGED

Metadaten-Routing für den Parameter sample_weight in score.

Gibt zurück:
selfobject

Das aktualisierte Objekt.