Algorytm K-Nearest Neighbors w R [Najlepszy przewodnik z przykładami]
Opublikowany: 2020-03-20Algorytm KNN w R jest dość popularny ze względu na swoją wszechstronność i funkcjonalność. Więc musiałeś słyszeć o jego nazwie od czasu do czasu, jeśli studiujesz uczenie maszynowe. I pewnie zastanawiałeś się: „Co to jest KNN w R?” lub „Jak to działa?”.
W tym artykule znajdziemy odpowiedzi na te właśnie pytania i pomożemy Ci dogłębnie zrozumieć ten temat. Więc bez zbędnych ceregieli, zanurzmy się.
Spis treści
Co to jest algorytm KNN?
KNN oznacza K Najbliższy Sąsiad. Jest to nadzorowany algorytm uczenia maszynowego, który klasyfikuje punkty danych na klasy docelowe zgodnie z cechami sąsiednich punktów danych.
Załóżmy, że chcesz, aby Twoja maszyna rozpoznawała obrazy jabłek i pomarańczy i rozróżniała je. Aby to zrobić, musisz wprowadzić zestaw danych zawierający obrazy jabłek i pomarańczy. Następnie musisz wytrenować swój model danych, pozwalając mu wykrywać każdy owoc dzięki ich unikalnym cechom. Na przykład potrafił rozpoznawać jabłka po ich czerwonym kolorze, a pomarańcze po ich kolorze.
Po wytrenowaniu modelu danych możesz go przetestować, nadając mu nowy zestaw danych z innymi obrazami jabłek i pomarańczy. Teraz algorytm KNN oddzieli jabłka i pomarańcze, klasyfikując je według cech, które zauważył w modelu uczącym.
Porównałby cechy punktu danych z sąsiednimi, aby zobaczyć, jak bardzo są podobne. I zaklasyfikuje je zgodnie z tymi ustaleniami.

W wielu przypadkach będziesz wykreślać punkty na wykresie. Aby obliczyć odległość między dwoma punktami, musisz użyć różnych formuł. Najpopularniejszą metodą obliczania odległości między dwoma punktami danych jest odległość euklidesowa. Oblicza odległość niezależnie od właściwości lub atrybutów występujących w punktach.
Funkcje algorytmu KNN
Poniżej przedstawiono cechy algorytmu KNN w R:
- Jest to nadzorowany algorytm uczenia. Oznacza to, że używa oznaczonych danych wejściowych do przewidywania danych wyjściowych.
- Jest to prosty algorytm uczenia maszynowego
- Możesz użyć algorytmu KNN do wielu rodzajów problemów
- Jest to model nieparametryczny. Oznacza to, że nie przyjmuje żadnych założeń dotyczących danych, co czyni go całkiem przydatnym w rozwiązywaniu problemów związanych z rzeczywistymi danymi.
- Klasyfikuje dane, porównując punkty danych z sąsiednimi. W prostych słowach działanie algorytmu KNN opiera się na podobieństwie atrybutów.
- Należy do kategorii leniwych algorytmów. Leniwy algorytm zapamiętuje dane treningowe zamiast uczyć się od nich funkcji dyskryminacyjnej. Dowiedz się więcej o typach algorytmów uczenia maszynowego.
- Możesz użyć KNN do rozwiązywania problemów regresji, a także klasyfikacji.
Algorytm KNN jest bezstronny, a ze względu na cechy, które omówiliśmy powyżej, jest preferowanym wyborem w przypadku wielu problemów. Jednak wszystko ma swoje problemy i KNN nie jest wyjątkiem.
Ten algorytm nie jest przydatny do rozwiązywania problemów, które są zbyt złożone. Jego model również nie zawiera procesu abstrakcji. Aby uzyskać odpowiedni model, będziesz potrzebować wysokiej jakości danych, ponieważ czasami mogą przeoczyć cenne informacje, ponieważ jest to leniwy algorytm. Jest szybki, ale czyszczenie danych wymaga poświęcenia znacznej ilości czasu.
Jak to działa?
Aby zrozumieć, jak działa KNN w języku R, przyjrzymy się kolejnemu przykładowi.
Załóżmy, że Twój zbiór danych ma dwie klasy. Klasa 1 ma prostokąty, podczas gdy klasa 2 ma koła. Musisz przypisać nowy punkt danych, który wprowadzisz do jednej z tych dwóch klas, używając tego algorytmu. Aby to zrobić, musisz najpierw zdefiniować wartość „K” dla swojego algorytmu. K oznacza liczbę najbliższych punktów sąsiednich, które algorytm weźmie pod uwagę.
Rozważ, że w tym przykładzie wpiszesz K jako 4. A dla K = 4 sąsiadami są trzy koła i jeden prostokąt. W takim przypadku zaklasyfikujesz punkt danych w klasie 2, ponieważ liczba okręgów otaczających punkt jest większa niż prostokątów.
Gdyby sąsiadami były trzy prostokąty i jedno koło, zaklasyfikowałbyś to do klasy 1. Omówiliśmy już, w jaki sposób algorytm KNN oblicza odległość między dwoma punktami, aby określić, kto jest najbliższym sąsiadem. Wykorzystuje w tym celu wzór na odległość euklidesową .

Wzór na odległość euklidesową jest następujący:
d(p,q) = d(q,p) = ( q 1 – p 1 ) 2 +( q 2 – p 2 ) 2 … ( q n – p n ) 2
Tutaj p = (p1, p2, p3, …. pn) i q = (q1, q2, q3, … qn). W tym równaniu „d” oznacza odległość euklidesową między punktami p i q.
Jak widać, jest to dość proste. A jego prostota sprawia, że jest bardzo wszechstronny, przez co jest jednym z najpopularniejszych algorytmów. Możesz go używać do różnych problemów.
Przykład KNN w R
Być może zastanawiasz się, gdzie w rzeczywistości widzimy zastosowania algorytmów KNN. W tym celu musisz spojrzeć na Amazon.
Ogromny sukces Amazona zależy od wielu czynników, ale najważniejszym z nich jest wykorzystanie zaawansowanych technologii. Jedną z tych technologii jest uczenie maszynowe. Ich system rekomendacji pomógł im wygenerować setki milionów przychodów. I ten system rekomendacji wykorzystuje do tego celu algorytm KNN.
Przeczytaj także: Pomysły na projekty uczenia maszynowego

Załóżmy, że kupujesz czarne dżinsy Wranglera ze skórzaną kurtką na Amazon. Kilka tygodni później inna osoba kupuje te same dżinsy od Amazona, ale nie kupuje tej skórzanej kurtki. Amazon poleci tej osobie zakup kurtki, ponieważ pokazała schemat kupowania podobny do twojego.
Tak więc system rekomendacji Amazon działa w oparciu o wzorce zakupowe ludzi. Aby zrozumieć to podobieństwo, możesz użyć algorytmu KNN, ponieważ jest on oparty na tej zasadzie. Teraz znasz podstawy tego algorytmu, a także jego zastosowanie w świecie rzeczywistym. Istnieje wiele innych przykładów jego użycia, ale na razie pozostańmy przy tym.
Ucz się kursów nauki o danych z najlepszych światowych uniwersytetów. Zdobywaj programy Executive PG, Advanced Certificate Programs lub Masters Programs, aby przyspieszyć swoją karierę.
Myśli końcowe
Algorytm KNN w R ma wiele zastosowań. A po przeczytaniu tego artykułu jesteśmy pewni, że znasz ten algorytm. Jeśli chcesz dowiedzieć się więcej o takich algorytmach uczenia maszynowego, zapoznaj się z naszym szczegółowym kursem uczenia maszynowego .
Dowiesz się wiele o uczeniu maszynowym i różnych stosowanych w nim algorytmach, oprócz innych aspektów.
Do czego służy język programowania R?
Język programowania R został stworzony z myślą o obliczeniach obejmujących statystykę i wizualizację danych. Obecnie R jest szeroko stosowany przez statystyków, naukowców zajmujących się danymi, analityków danych i biznesowych. Rdzeń R zawiera wiele wbudowanych funkcji statystycznych, więc biblioteki innych firm nie są wymagane do większości podstawowych analiz danych, które R może osiągnąć. W przeciwieństwie do wielu innych języków programowania komputerowego, R nie jest językiem ogólnego przeznaczenia. Tak więc jest on zasadniczo wykorzystywany do osiągnięcia określonych funkcji, które wykonuje wyjątkowo dobrze. Jednak R jest szeroko stosowany przez firmy we wszystkich branżach, aby uzyskać przydatne informacje z ogromnych ilości codziennych danych generowanych przez użytkowników.
Jakie są zalety programowania w R?
Język programowania R oferuje różne korzyści zarówno początkującym, jak i doświadczonym programistom. Jego główne zalety to funkcje i łatwość budowania statystycznych modeli obliczeniowych. Następnie R jest językiem programowania typu open source, który obsługuje równoległe przetwarzanie rozproszone. Każdy może z niego korzystać bez konieczności nabywania licencji lub opłat za użytkowanie. Poza tym jest wyposażony w ogromną bibliotekę obsługującą różne funkcje, a jego niezależna od platformy struktura również zwiększa wygodę. R może być również używany do skutecznego czyszczenia danych, skrobania sieci i funkcji przetwarzania danych i jest powszechnie używany do opracowywania modeli uczenia maszynowego.
Dlaczego KNN nazywa się algorytmem Lazy Learner?
Algorytm K-Nearest Neighbors jest jednym z najprostszych algorytmów używanych w uczeniu maszynowym. Jednak często nazywa się go leniwym uczniem. Powodem tego jest to, że gdy dostarczysz wszystkie dane związane z treningiem do tego algorytmu, samo trenowanie nie działa. Zamiast uczyć się funkcji dyskryminacyjnych, zapamiętywał cały zestaw danych treningowych. Przy każdym dodaniu nowego punktu danych algorytm ten wyszukuje najbliższych sąsiadów w całym zbiorze uczącym, co niezmiennie wydłuża czas potrzebny na wykonanie prognoz. To często sprawia, że jest to kosztowne obliczeniowo i bardzo czasochłonne.