Knn w Sklearn

Knn w Sklearn

„Założenie przyznaje algorytm KNN, że nowe dane i istniejące dane są porównywalne. Wykorzystuje do tego najbliższe wskaźniki sąsiadów. W tym artykule omówiono algorytm KNN i wdrożenie Sklearn."

Co to jest Knn?

Ten algorytm wykorzystuje dane oznaczone, ponieważ jest to nadzorowany model uczenia maszynowego. Lokalizacja najbliższej liczby „k” sąsiadów nowego punktu danych określa, w jaki sposób algorytm KNN kategoryzuje to. Do osiągnięcia tego osiągnięcia jest używana odległość euklidesowa. Wzór dla euklidesowej odległości między dwoma punktami (a, b) i (x, y) jest √ (a-x)2 + (przez)2.

Gdzie jest używany knn?

KNN może być używany do rozwiązania różnych problemów. Na przykład w klasyfikacji nowy punkt można podzielić po prostu, patrząc na klasę jej najbliższych sąsiadów. Najbardziej porównywalne dokumenty z danym dokumentem można znaleźć za pomocą KNN do sprawdzenia plagiatu, odkrycia luster itp. KNN może być używany w systemach rekomendujących do identyfikacji produktów najbardziej podobnych do produktu, którego użytkownik nie ocenił, a następnie ustalić, czy użytkownik będzie się cieszyć. Istnieje wiele innych aplikacji, w tym metody grupowania, w których można je zastosować.

Plusy i wady KNN?

Profesjonaliści

    • Prosty algorytm, który po prostu wykorzystuje funkcję odległości i wartość k (nieparzystą liczbę całkowitą) (euklides, jak wspomniano dzisiaj).
    • Jest to podejście skuteczne w przypadku małych zestawów danych.
    • Skorzystaj z „Lazy uczenia się.„To sprawia, że ​​jest szybsze niż maszyny wektorowe wsparcia (SVM) i regresja liniowa, ponieważ zestaw danych szkoleniowy jest przechowywany i używany podczas dokonywania prognoz.

Cons

    • Przetwarzanie dużych zestawów danych trwa dłużej.
    • Wzywa do skalowania funkcji i braku tego doprowadzi do niedokładnych projekcji.
    • Głośne dane mogą powodować nadmierne lub niedostateczne dane.

Wdrażanie KNN w Sklearn

Importowanie wymaganych metod i klas

ze Sklearn.Ensemble Import landomforestclassifer
ze Sklearn.Zestawy danych importuj Make_classification
ze Sklearn.Sąsiedzi importują Kneghborscassifier


Tworzenie zestawu danych

X, y = Make_classification (n_samples = 500, n_features = 4, n_informative = 2, n_redundant = 0, Random_State = 0, shuffle = false)
druk („funkcje są”)
Drukuj (x)
druk („etykiety są”)
Drukuj (y)


Wyjście

Funkcje są

tablica ([[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]])


Etykiety są

tablica ([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 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])


Tworzenie modelu i prognozy

Model = KneighborsCassifier (n_neighbors = 5)
Model.Fit (x, y)
Drukuj (model.Przewiduj ([[0.5, 0.3, 0.2, 0.1]]))
Drukuj (model.PREDICT_PROBA.5, 0.3, 0.2, 0.1]]))


Wyjście

[0]
[[0.8 0.2]]

Wniosek

Omówiliśmy algorytm KNN, który jest nadzorowanym algorytmem uczenia maszynowego. Widzieliśmy, gdzie może to być pomocne lub może się nie uda. Później omówiliśmy również jego wdrożenie w Sklearn Python.