Część 1 serii o wstępnych algorytmach uczenia maszynowego
Jeśli znasz systemy uczące się i podstawowe algorytmy, używany w terenie, prawdopodobnie słyszałeś o algorytmie k-najbliższych sąsiadów lub KNN. Ten algorytm jest jedną z prostszych technik stosowanych w uczeniu maszynowym. Jest to metoda preferowana przez wiele osób w branży ze względu na łatwość użycia i krótki czas obliczeń.
Co to jest KNN? KNN to model, który klasyfikuje punkty danych na podstawie punktów najbardziej do niego podobnych. Korzysta z danych testowych, aby „zgadnąć”, do jakiego punktu niesklasyfikowanego należy sklasyfikować.
Zalety:
- Łatwy w użyciu.
- Szybki czas obliczeń.
- Nie przyjmuje założeń dotyczących danych.
Wady:
- Dokładność zależy od jakości data.
- Musi znaleźć optymalną wartość k (liczbę najbliższych sąsiadów).
- Słabo klasyfikuje punkty danych na granicy, na której można je sklasyfikować w taki czy inny sposób.
KNN to algorytm uważany za nieparametryczny i przykład leniwego uczenie się. Co dokładnie oznaczają te dwa terminy?
- Nieparametryczny oznacza, że nie przyjmuje żadnych założeń. Model składa się w całości z podanych mu danych, zamiast zakładać, że jego struktura jest normalna.
- Leniwe uczenie się oznacza, że algorytm nie tworzy żadnego ge neralizacje. Oznacza to, że stosowanie tej metody wymaga niewielkiego szkolenia. Z tego powodu wszystkie dane szkoleniowe są również wykorzystywane w testowaniu przy użyciu KNN.
Gdzie używać KNN
KNN jest często używany w prostych systemach rekomendacji, image rozpoznawanie technologii i modele podejmowania decyzji. Jest to algorytm, z którego korzystają firmy takie jak Netflix czy Amazon, aby polecać różne filmy do obejrzenia lub książki do kupienia. Netflix uruchomił nawet konkurs Netflix Prize, w którym przyznano milion dolarów zespołowi, który stworzył najdokładniejszy algorytm rekomendacji!
Możesz się zastanawiać: „Ale jak te firmy to robią?” Cóż, te firmy zastosują KNN na zbiorze danych zebranych na temat filmów, które oglądałeś lub książek, które kupiłeś w ich witrynie. Firmy te wprowadzą następnie dostępne dane klientów i porównają je z innymi klientami, którzy oglądali podobne filmy lub kupili podobne książki. Ten punkt danych zostanie następnie sklasyfikowany jako określony profil na podstawie ich przeszłości przy użyciu KNN. Polecane filmy i książki będą wtedy zależeć od tego, jak algorytm klasyfikuje ten punkt danych.
Powyższy obrazek ilustruje, jak działa KNN podczas próby sklasyfikowania punktu danych w oparciu o dany zestaw danych. Jest on porównywany z najbliższymi punktami i sklasyfikowane na podstawie punktów, do których jest najbliższy i najbardziej podobny. Tutaj możesz zobaczyć, że punkt Xj zostanie sklasyfikowany jako W1 (czerwony) lub W3 (zielony) na podstawie jego odległości od każdej grupy punktów.
Ma thematics Behind KNN
Jak prawie wszystko inne, KNN działa dzięki głęboko zakorzenionym teoriom matematycznym, których używa. Przy wdrażaniu KNN pierwszym krokiem jest przekształcenie punktów danych w wektory cech lub ich wartość matematyczną. Algorytm następnie działa, znajdując odległość między wartościami matematycznymi tych punktów. Najczęstszym sposobem wyznaczania tej odległości jest odległość euklidesowa, jak pokazano poniżej.
KNN uruchamia tę formułę, aby obliczyć odległość między każdym punktem danych a danymi testowymi. Następnie znajduje prawdopodobieństwo, że te punkty są podobne do danych testowych i klasyfikuje je na podstawie tego, które punkty mają największe prawdopodobieństwo.
Aby zwizualizować tę formułę, wyglądałoby to mniej więcej tak:
Podsumowanie
Teraz znasz już podstawy jednego z najbardziej podstawowych algorytmów uczenia maszynowego .To świetne miejsce do rozpoczęcia nauki tworzenia modeli na podstawie różnych zbiorów danych. Jeśli masz zbiór danych z wieloma różnymi punktami i dokładnymi informacjami, jest to świetne miejsce, aby rozpocząć odkrywanie uczenia maszynowego za pomocą KNN.
Chcąc rozpocząć korzystanie z tego algorytmu, pamiętaj o tych trzech kwestiach:
- Najpierw znajdź zestaw danych, z którym będzie można łatwo pracować, najlepiej taki z wieloma różnymi punktami i oznaczonymi danymi.
- Po drugie, zastanów się, który język będzie najłatwiejszy w użyciu, aby rozwiązać problem. Najbardziej znam KNN w R, ale Python jest również popularnym językiem wśród profesjonalistów zajmujących się uczeniem maszynowym.
- Po trzecie, przeprowadź swoje badania. Ważne jest, aby nauczyć się poprawnych praktyk korzystania z tego algorytmu, aby znaleźć jak najdokładniejsze wyniki ze zbioru danych.
Przeprowadzono różne badania dotyczące tego, jak można ulepszyć ten algorytm. Te badania mają na celu uczynienie tego, aby można było ważyć kategorie w różny sposób, aby dokonać dokładniejszej klasyfikacji. Wagi tych kategorii różnią się w zależności od sposobu obliczania odległości.
Podsumowując, jest to podstawowy algorytm uczenia maszynowego, na którym można polegać z wielu powodów, takich jak łatwość użycia i szybki czas obliczeń. Jest to dobry algorytm do wykorzystania na początku odkrywania świata uczenia maszynowego, ale wciąż można go ulepszyć i zmodyfikować.