Wprowadzenie do algorytmu KNN

Algorytm K najbliższego sąsiada, znany jako KNN, jest podstawowym algorytmem uczenia maszynowego. Zrozumienie tego algorytmu jest bardzo dobrym miejscem do rozpoczęcia uczenia się uczenia maszynowego, ponieważ logika tego algorytmu jest uwzględniona w wielu innych modelach uczenia maszynowego. Algorytm K Nearest Neighbour znajduje się w części dotyczącej klasyfikacji w nadzorowanym uczeniu się.

Co to jest nauka nadzorowana?

Algorytm uczenia nadzorowanego jest rodzajem algorytmu, w którym do nauki opiera się na oznaczonych danych wejściowych i przewiduje na podstawie funkcji, gdy dostarczane są dane nieznakowane. Ponieważ zrozumieliśmy, czym jest nadzorowane uczenie się, zobaczmy, czym jest klasyfikacja, algorytm klasyfikacji podaje wartość dyskretną jako wartość wyjściową, a nie ciągłą.

Jak działa algorytm KNN?

K Najbliżsi sąsiedzi to podstawowy algorytm, który przechowuje wszystkie dostępne dane i przewiduje klasyfikację nieznakowanych danych na podstawie miary podobieństwa. W geometrii liniowej, gdy w układzie kartezjańskim 2D wykreślone są dwa parametry, identyfikujemy miarę podobieństwa poprzez obliczenie odległości między punktami. To samo dotyczy tutaj, algorytm KNN działa przy założeniu, że podobne rzeczy istnieją w bliskiej odległości, po prostu możemy umieścić w tych samych rzeczach trzymać się blisko siebie.

Przykład: Jeśli mamy zestaw danych, gdy wykres wygląda w ten sposób, aby sklasyfikować te punkty danych, algorytm K najbliższych sąsiadów najpierw rozpozna odległość między punktami i sprawdzi, czy są one podobne.

W geometrii według Euklidesa funkcję odległości można obliczyć za pomocą następującego równania:

Jeśli K = 1, to przypadek jest po prostu przypisywany do klasy jego najbliższego sąsiada (używamy „1” w prawie każdej sytuacji w matematyce, możemy zmienić wartość K podczas szkolenia modeli w uczeniu maszynowym i będziemy omów to dalej w artykule) X i Y to wartości na osiach współrzędnych.

Jeśli zauważymy tutaj, wszystkie miary odległości, które otrzymujemy, będą zmiennymi ciągłymi, ale potrzebujemy dyskretnych wartości podczas dokonywania klasyfikacji, więc musimy to zrobić, stosując odległość hamującą.

To równanie prowadzi nas również do standaryzacji wartości liczbowych od 0 do 1, gdy w zestawie danych występuje mieszanina wartości liczbowych i kategorycznych.

X Y Dystans
Z rakiem Z rakiem X = Y → D = 0
Bez raka Bez raka X! = Y → D = 1

W ten sposób algorytm działa, a teraz przyjrzyjmy się, jak wybrać wartość K w KNN.

Wybór wartości K w algorytmie KNN

Zanim zobaczymy, jakie czynniki należy wziąć pod uwagę przy wyborze wartości K, musimy zrozumieć, w jaki sposób wartość K wpływa na algorytm.

Są to wykresy tego samego zestawu danych o różnych wartościach K, wartość K wynosi 1 dla wykresu w lewym górnym rogu i najwyższa dla wykresu w prawym dolnym rogu. Po dokładnym zbadaniu możemy zrozumieć, że granica algorytmu klasyfikacji staje się gładka wraz ze wzrostem wartości K. To jest wartość K jest wprost proporcjonalna do gładkości granicy. Na podstawie tego możemy zrozumieć, że jeśli wartość K jest ustawiona na 1, wówczas model treningowy prześcignie dane, a jeśli wartość K zostanie ustawiona na dużą liczbę, to nie spełni danych. Aby wybrać optymalną wartość K, musimy sprawdzić błąd walidacji z wieloma wartościami K i wybrać jedną z minimalnym błędem.

Kroki implementacji algorytmu KNN w Pythonie

Do tej pory nauczyliśmy się teoretycznej części algorytmu K Nearest Neighbour, teraz możemy zobaczyć praktycznie, ucząc się, jak zaimplementować w pythonie.

Krok 1: Importowanie bibliotek

Poniżej zobaczymy Importowanie bibliotek potrzebnych do uruchomienia KNN.

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

Krok 2: Importowanie zestawu danych

Tutaj zobaczymy importowany zestaw danych.

file = "/path/to/the/dataset"
#Push dataset into Pandas dataframe
dataset = pd.read_csv(file)

Krok 3: Podziel zestaw danych

Następnym krokiem jest podzielenie naszego zestawu danych na test i podzielenie pociągu.

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.30)

Uwaga: Zestaw danych, którego używam do zademonstrowania, został wstępnie przetworzony z określeniem wartości X i Y. Jeśli nie zostanie to zrobione w pierwszej kolejności, należy to zrobić, ponieważ podczas szkolenia modelu klasyfikacji musimy przekazywać oznakowane dane w celu obliczenia odległości.

Krok 4: Model treningowy

Teraz w tym kroku zobaczymy szkolenie modelowe.

from sklearn.neighbors import KNeighborsClassifier
classifier = KNeighborsClassifier(n_neighbors=3)
classifier.fit(X_train, y_train)

Uwaga: tutaj używamy klasyfikatora K sąsiadów importowanego z modułu biblioteki sklearn.neighbours.

Krok 5: Uruchomienie prognoz

Uruchamianie prognoz na podzielonych danych testowych.

y_pred = classifier.predict(X_test)

Krok 6: Sprawdź weryfikację

Następnym krokiem jest ocena algorytmu i sprawdzenie błędu sprawdzania poprawności, ponowne uruchomienie z inną wartością K i rozważenie wartości k, w której otrzymujemy minimalny błąd sprawdzania poprawności. W ten sposób możemy praktycznie zaimplementować klasyfikator K Nearest Neighbours, istnieje wiele sposobów na implementację tego algorytmu, to tylko jeden z nich iw tym artykule bardzo krótko opisałem kroki, ponieważ naszym głównym celem jest zrozumienie, jak działa algorytm.

Wniosek

Jak wspomniano wcześniej, algorytm K Nearest Neighbors jest jednym z najprostszych i najłatwiejszych algorytmów używanych do klasyfikacji. W oparciu o to, jak to działa, jest również objęty „Leniwym algorytmem uczenia się”. Zasadniczo wartość K, którą wszyscy przechodzą podczas szkolenia modelu, jest liczbą nieparzystą, ale nie jest to przymus. Istnieje jednak kilka wad, a przy korzystaniu z KNN jest ich kilka

  • Nie idzie to dobrze z danymi kategorycznymi, ponieważ nie możemy znaleźć odległości między dwiema kategorycznymi cechami.
  • Nie działa również dobrze z danymi o dużych wymiarach, ponieważ algorytmowi trudno będzie obliczyć odległość w każdym wymiarze.

Jeśli obecnie widzimy, że większość przypadków użycia w uczeniu maszynowym jest otoczona algorytmem klasyfikacji na poziomie podstawowym, właśnie dlatego KNN odgrywa ważną rolę w świecie uczenia maszynowego.

Polecane artykuły

Jest to przewodnik po algorytmie KNN. W tym miejscu omawiamy wprowadzenie i działanie algorytmu K Nearest Neighbours wraz z krokami implementacji algorytmu kNN w pythonie. Możesz także przejrzeć następujące artykuły, aby dowiedzieć się więcej-

  1. Jak działa algorytm SVM?
  2. Algorytm MD5 (zalety i wady)
  3. K- oznacza algorytm grupowania
  4. Rodzaje uczenia się przez zbrojenie
  5. Kompletny przewodnik po algorytmie C ++

Kategoria: