Ten algorytm uczenia się maszynowego jest łatwy i prosty do zrozumienia. Za pomocą metod uczenia maszynowego można rozwiązywać problemy regresji i klasyfikacji. Aby zrozumieć pojęcie K-nearest sąsiada, musisz najpierw wiedzieć, jak działa nadzorowana technika uczenia maszynowego. W nadzorowanym uczeniu się, dostarczasz do modelu dane oznaczone etykietami. Następnie maszyna analizuje oznaczone dane i uruchamia odpowiednie wyjście.
Na przykład, gdy dzieci są małe, potrzebują nadzoru, aby zrozumieć różnicę między różnymi kolorami, zwierzętami, alfabetami itp. Wszystkie elementy są dla nich oznaczane etykietami, dzięki czemu mogą je szybko zidentyfikować. Tak właśnie działa nadzorowane uczenie maszynowe. To uczenie się pomaga w rozwiązywaniu problemów z klasyfikacją. W tego typu problemach przewidujesz wartość danych wejściowych, a następnie algorytm układa wartości w różnych klasach na podstawie wagi funkcji i ich cech wejściowych.

K – Najbliżsi sąsiedzi

Aby rozwiązać regresję i klasyfikację, można użyć tego algorytmu do nadzorowanej metody uczenia maszynowego. KNN nie zawiera żadnej fazy uczenia się. Nie obliczają one metody predykcyjnej jak regresja liniowa czy logistyczna. Ten algorytm znajduje podobieństwa między zmiennymi. Mierzą one jak blisko lub daleko znajdują się zmienne na podstawie podanych danych. Mówiąc prościej, algorytm ten uważa, że im bliżej siebie są te rzeczy, tym bardziej są one do siebie podobne.

Jak działa algorytm KNN

Aby poprawnie wdrożyć Algorytm Najbliższego Sąsiada K (dla Pythona), należy zastosować następującą metodę:
– Załaduj dane wejściowe lub dane na maszynie z zestawu danych
– Modyfikacja wartości K ze zmiennych
– Obliczyć odległość zmiennych w odniesieniu do każdego przykładu danych.
– Teraz dodaj odległość w uporządkowanej formie
– Teraz posegreguj zamówioną kolekcję w kolejności rosnącej na podstawie ich odległości.
– Wybierz K z kolekcji
– Teraz znajdź etykiety z tą wartością K
– Jeśli to jest regresja, musisz zwrócić średnią etykietę “K”.
– Jeśli jest to klasyfikacja, to należy zwrócić tryb etykiety “K.”.

Implementacja kodowania na

odbiór importowyCounter
matematyka importowa

defknn(dane, zapytanie, k, distance_fn, choice_fn):
neighbor_distances_and_indices = []

# 3. Dla każdego przykładu w danych
dla indeksu, na przykład inenumerat(dane):
# 3.1 Obliczyć odległość pomiędzy przykładowym zapytaniem a aktualnym
# przykład z danych.
distance =distance_fn(przykład[:-1], zapytanie)

# 3.2 Dodaj odległość i indeks przykładu do zamówionej kolekcji
neighbor_distances_and_indices.append((distance, index)))

# 4. Sortuj zamówioną kolekcję dystansów i indeksów z
# od najmniejszego do największego (w porządku rosnącym) o odległości
sorted_neighbor_distances_and_indices =sorted(neighbor_distances_and_indices)

# 5. Wybierz pierwsze K wpisów z posortowanej kolekcji
k_nearest_distances_and_indices = sorted_neighbor_distances_and_indices[:k]

# 6. Pobierz etykiety wybranych wpisów K
k_nearest_labels = [dane[i][1] dla odległości, i w k_nearest_distances_and_indices]

# 7. Jeśli regresja (wybór_fn = średnia), zwróć średnią z etykiet K
# 8. Jeśli klasyfikacja (wybór_fn = tryb), należy zwrócić tryb etykiet K
return k_nearest_distances_and_indices , choice_fn(k_nearest_labels)

defmean(etykiety):
returnsum(etykiety) /len(etykiety)

Defmode(etykiety):
returnCounter(labels).most_common(1)[0][0]

defeuklidan_odległość (punkt 1, punkt 2):
sum_squared_distance =0
dla i inrange(len(pkt 1)):
sum_squared_distance += math.pow(point1[i] – point2[i], 2)
zwróć math.sqrt(suma_squared_distance)

Defmainacja():
”’
# Dane regresji
#
# Kolumna 0: wysokość (cale)
# Kolumna 1: waga (funty)
”’
reg_data = [
[65.75, 112.99],
[71.52, 136.49],
[69.40, 153.03],
[68.22, 142.34],
[67.79, 144.30],
[68.70, 123.30],
[69.80, 141.49],
[70.01, 136.46],
[67.90, 112.37],
[66.49, 127.45],
]

# Pytanie:
# Given the data we have, what’s the best-guess at someone’s weight if they are 60 inches high?
reg_query = [60]
reg_k_nearest_neighbors, reg_prediction =knn(
reg_data, reg_query, k=3, distance_fn=euclidean_distance, choice_fn=mean
)

”’
# Dane klasyfikacyjne
#
# Kolumna 0: wiek
# Kolumna 1: lubi ananasy
”’
clf_data = [
[22, 1],
[23, 1],
[21, 1],
[18, 1],
[19, 1],
[25, 0],
[27, 0],
[29, 0],
[31, 0],
[45, 0],
]
# Pytanie:
# Biorąc pod uwagę dane, które posiadamy, czy nieokreślone M&M pasuje do zestawu Red czy Green M&M?
clf_query = [33]
clf_k_nearest_neighbors, clf_prediction =knn(
clf_data, clf_query, k=3, distance_fn=euclidean_distance, choice_fn=mode
)

czy… czy…?
main()

Zrozumienie z Przykładem

Teraz zrozummy powyższe kroki w prostych słowach. Wyobraźmy sobie, że na talerzu są zielone i czerwone M&Ms. Tutaj znajdziesz inny M&M, którego klasy nie znasz. Aby znaleźć klasę, musisz ustawić wartość K. Powiedzmy, że w tym stanie K = 4. Teraz narysujesz koło wokół niezidentyfikowanego M&M w taki sposób, że środkiem koła jest sam M&M, a w kole znajdują się tylko cztery inne M&Ms. Teraz sprawdzimy, w której klasie M&Ms jest ich więcej. Powiedzmy, że jeśli były cztery czerwone M&Ms, to uznamy niezidentyfikowane M&Ms za klasę czerwoną.

Kiedy można użyć Algorytmu KNN?

Możesz użyć Algorytmu Najbliższego Sąsiada K, aby rozwiązać problem regresji lub klasyfikacji. Wiele branż używa tego nadzorowanego systemu uczenia maszynowego do rozwiązywania problemów z klasyfikacją. Oto trzy ważne czynniki w ocenie każdej techniki:
– Jak łatwo możesz zinterpretować dane wyjściowe?
– Jak możesz obliczyć wynik?
– Jaka jest siła predykcyjna?
KNN jest idealna dla wszystkich powyższych parametrów do pomiaru techniki. Jednakże, technika KNN ma częste zastosowania, ponieważ jest łatwa do zinterpretowania i obliczenia mocy wyjściowej.

Jak można wybrać wartość K?

Aby znaleźć najlepszą wartość K, musimy uruchomić algorytm wiele razy i sprawdzić, która liczba zmniejsza błędy i nadal zachować zdolność algorytmu i przewidywania. Oto kilka rzeczy, o których należy pamiętać:
– Pierwsza rzecz, której nie należy robić, to wybrać jedną jako wartość K. Kiedy wybierzesz jedną jako wartość K, otrzymamy niestabilne przewidywania. Na przykład, jeśli musimy znaleźć klasę M&M, która jest całkowicie otoczona przez czerwone M&Ms, ale tylko jeden zielony M&M jest w pobliżu niezidentyfikowanego M&M. W tym stanie, będziemy myśleć, że punkt zapytania jest zielony, więc nasze przewidywania będą błędne.
– Kiedy zwiększymy wartość K, zobaczymy, że prognoza stanie się stabilna z powodu większości wyborców. Jednakże, gdy znajdziemy więcej błędów, odejdziemy zbyt daleko od wartości K.
– Kiedy jest remis między przepowiedniami, musimy wybrać liczbę nieparzystą.
Wybór wartości K zależy od zestawu danych, którego próbujesz użyć. Należy jednak wiedzieć, że im więcej sąsiadów dodamy, tym dokładniejsze wyniki uzyskamy.

Wniosek

W tym artykule staraliśmy się przedstawić podstawową i łatwą do zrozumienia koncepcję Algorytmu Najbliższego Sąsiada K. Dowiedzieliśmy się, że KNN pomaga w przewidywaniu klasyfikacji przy pomocy danego zbioru danych. Jest to łatwa i szybka metoda obliczeń.