KNN in Sklearn

KNN in Sklearn

„Der KNN -Algorithmus wird angenommen, dass neue Daten und vorhandene Daten vergleichbar sind. Es nutzt die Metriken der nächsten Nachbarn dafür. In diesem Artikel wird der KNN -Algorithmus und die Implementierung von Sklearn erläutert.”

Was ist KNN?

Dieser Algorithmus verwendet beschriftete Daten, da es sich um ein überwachtes maschinelles Lernmodell handelt. Der Standort der nächsten „K“ der neuen Datenpunkte der neuen Nachbarn bestimmt, wie der KNN -Algorithmus ihn kategorisiert. Die euklidische Entfernung wird verwendet, um dies zu erreichen. Die Formel für den euklidischen Abstand zwischen zwei Punkten (a, b) und (x, y) ist √ (a-x)2 + (von)2.

Wo wird KNN verwendet??

KNN kann verwendet werden, um eine Vielzahl von Problemen anzugehen. In der Klassifizierung kann beispielsweise ein neuer Punkt einfach kategorisiert werden, indem die Klasse seiner nächsten Nachbarn betrachtet wird. Die vergleichbaren Dokumente eines bestimmten Dokuments können mit KNN nach Plagiaten, Spiegeln usw. gefunden werden, usw. KNN kann in Empfehlungssystemen verwendet werden, um Produkte zu identifizieren, die einem Produkt am ähnlichsten sind, das ein Benutzer nicht bewertet hat, und dann feststellen, ob der Benutzer es genießt oder nicht. Es gibt zahlreiche andere Anwendungen, einschließlich Clustering -Methoden, bei denen Sie sie anwenden können.

Vor- und Nachteile von KNN?

Profis

    • Ein einfacher Algorithmus, der nur die Entfernungsfunktion und den Wert von K (die ungerade Ganzzahl) verwendet (euklidisch, wie heute erwähnt).
    • Es ist ein Ansatz, der für winzige Datensätze wirksam ist.
    • Nutzen Sie „faules Lernen.Dies macht es schneller als die Unterstützung von Vektorautomaten (SVMs) und linearer Regression, da der Trainingsdatensatz bei der Erstellung von Vorhersagen aufbewahrt und verwendet wird.

Nachteile

    • Die Verarbeitung großer Datensätze dauern länger.
    • Forderungen zur Skalierung von Features und Nichts führen zu ungenauen Projektionen.
    • Laute Daten können dazu führen, dass Daten über- oder untermauert werden.

Implementierung von KNN in Sklearn

Importieren der erforderlichen Methoden und Klassen

von Sklearn.Ensemble importieren RandomforestClassifier
von Sklearn.Datensätze importieren make_classification
von Sklearn.Die Nachbarn importieren KnreighborsClassifier


Erstellen des Datensatzes

X, y = make_classification (n_samples = 500, n_features = 4, n_informative = 2, n_redundant = 0, random_state = 0, shuffle = false)
Druck ('Funktionen sind')
Druck (x)
print ('Etiketten sind')
Druck (y)


Ausgang

Funktionen sind

Array ([[0).44229321, 0.08089276, 0.54077359, -1.81807763],
[1.34699113, 1.48361993, -0.04932407, 0.2390336],
[-0.54639809, -1.1629494, -1.00033035, 1.67398571],
… ,
[0.8903941, 1.08980087, -1.53292105, -1.71197016],
[0.73135482, 1.25041511, 0.04613506, -0.95837448],
[0.26852399, 1.70213738, -0.08081161, -0.70385904]]))


Etiketten sind

Array ([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])


Erstellen des Modells und Vorhersagen machen

model = kneighborsclassifier (n_neighbors = 5)
Modell.fit (x, y)
Druck (Modell.vorhersagen ([[0).5, 0.3, 0.2, 0.1]])))
Druck (Modell.Predict_Proba ([[0).5, 0.3, 0.2, 0.1]])))


Ausgang

[0]
[[0.8 0.2]]]

Abschluss

Wir haben den KNN -Algorithmus besprochen, der ein überwachtes maschinelles Lernalgorithmus ist. Wir haben gesehen, wo es hilfreich sein oder scheitern könnte. Später diskutierten wir auch seine Implementierung in Sklearn Python.