Вступ до алгоритму KNN

Алгоритм K Найближчого сусіда, відомий як KNN, є основним алгоритмом машинного навчання. Розуміння цього алгоритму є дуже хорошим місцем для початку машинного навчання, оскільки логіка цього алгоритму закладена у багатьох інших моделях машинного навчання. Алгоритм K Найближчих сусідів підпадає під класифікаційну частину під контрольованим навчанням.

Що таке контрольоване навчання?

Керований алгоритм навчання є різновидом алгоритму, коли він покладається на мічений вхід для навчання та прогнозування на основі функції при наданні даних без маркування. Як ми зрозуміли, що контрольоване навчання дає нам змогу побачити, що таке класифікація, алгоритм класифікації дає дискретні значення як вихідні, а не безперервні значення.

Як працює алгоритм KNN?

K Найближчі сусіди - це основний алгоритм, який зберігає всі наявні та прогнозує класифікацію даних без маркування на основі міри подібності. У лінійній геометрії, коли на 2D декартовій системі побудовано два параметри, ми визначаємо міру подібності, обчислюючи відстань між точками. Це ж стосується і тут, алгоритм KNN працює на припущенні, що подібні речі існують у безпосередній близькості, просто ми можемо вкласти у ті самі речі, що знаходяться поруч один з одним.

Приклад: Якщо у нас є набір даних, коли графік виглядає так, класифікуючи ці точки даних K Найближчі сусіди алгоритм спочатку визначить відстань між точками і побачить, чи вони схожі чи ні.

У геометрії згідно з Евклідовим функцію відстані можна обчислити наступним рівнянням,

Якщо K = 1, то випадок просто віднесено до класу найближчого сусіда (ми використовуємо «1» майже в будь-якій ситуації математики, ми можемо змінити значення K під час навчання моделей машинного навчання, і ми обговоримо це далі у статті) X і Y - значення на осях координат.

Якщо ми помічаємо тут, всі вимірювані нами відстані будуть неперервними змінними, але нам потрібні дискретні значення, роблячи класифікацію, для цього ми повинні використовувати відстань забивання.

Це рівняння також приносить нам стандартизацію числових значень від 0 до 1, коли в наборі даних є суміш числових і категоричних значень.

Х Y Відстань
З Раком З Раком X = Y → D = 0
Без раку Без раку X! = Y → D = 1

Таким чином алгоритм працює і тепер давайте зануримось у те, як ми виберемо значення K у КНН.

Вибір значення K в алгоритмі KNN

Перш ніж побачити, які фактори слід враховувати при виборі значення K, ми повинні зрозуміти, як значення K впливає на алгоритм.

Це графіки одного і того ж набору даних з різними значеннями K, значення K - 1 для ділянки в лівому верхньому куті і найвище для ділянки в правому нижньому куті. Якщо ми уважно вивчимо, то можемо зрозуміти, що межа алгоритму класифікації стає гладкою у міру збільшення значення K. Тобто Значення K прямо пропорційне гладкості кордону. Отже, з цього моменту ми можемо зрозуміти, що якщо значення K буде встановлено на 1, то навчальна модель буде переповнювати дані, а якщо значення K встановлено на велику кількість, то це буде недостатньою для даних. Для вибору оптимального значення K нам потрібно перевірити помилку перевірки з декількома значеннями K і вибрати одну з мінімальною помилкою.

Кроки до впровадження алгоритму KNN в Python

Поки ми тут вивчили теоретичну частину алгоритму K Найближчого сусіда, тепер ми побачимо практично, вивчивши, як реалізувати в python.

Крок 1: Імпорт бібліотек

Нижче ми побачимо Імпорт бібліотек, які нам потрібні для запуску KNN.

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

Крок 2: Імпорт набору даних

Тут ми побачимо імпорт набору даних.

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

Крок 3: Розбиття набору даних

Наступним кроком є ​​розподіл нашого набору даних на тестовий та тренувальний поділ.

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)

Примітка: Набір даних, який я використовую для демонстрації, був попередньо оброблений із визначенням значень X та Y. Якщо це не зробити спочатку, це потрібно зробити, оскільки, хоча класифікаційна модель готується, ми повинні передавати мічені дані для цього для обчислення відстані.

Крок 4: Навчальна модель

Тепер на цьому кроці ми побачимо тренування з моделями.

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

Примітка. Тут ми використовуємо класифікатор сусідів K, імпортований з модуля sklearn.neighbours.

Крок 5: Запуск прогнозів

Виконання прогнозів щодо тестових розділених даних.

y_pred = classifier.predict(X_test)

Крок 6: Перевірте перевірку

Наступним кроком є ​​оцінка алгоритму та перевірка помилки перевірки, повторний запуск з різним значенням K та розгляд значення k, де ми отримуємо мінімальну помилку перевірки. Ось як ми можемо реалізувати класифікатор K Найближчих сусідів. Існує кілька способів реалізації цього алгоритму. Це лише один із них, і в цій статті я дуже коротко описав кроки, оскільки наша основна програма - зрозуміти, як працює алгоритм.

Висновок

Як було сказано раніше, алгоритм K Найближчих сусідів - один з найпростіших і найпростіших алгоритмів, що застосовуються для класифікації. Виходячи з того, як це працює, він також підпадає під "Алгоритм лінивого навчання". Як правило, значення K, яке кожен проходить під час навчання моделі, є непарним числом, але це не є примусом. Тим не менш, мало мінусів, а також під час використання KNN мало хто з них

  • Це не співпадає з категоричними даними, тому що ми не можемо знайти відстань між двома категоричними ознаками.
  • Він також не дуже добре працює з даними високих розмірів, оскільки алгоритму буде важко обчислити відстань у кожному вимірі.

Якщо ми бачимо, що в даний час більшість випадків використання в машинному навчанні оточені алгоритмом класифікації на базовому рівні, саме тому KNN відіграє головну роль у світі машинного навчання.

Рекомендовані статті

Це посібник з алгоритму KNN. Тут ми обговорюємо введення та роботу алгоритму K Найближчих сусідів із кроками для реалізації алгоритму kNN в python. Ви також можете переглянути наступні статті, щоб дізнатися більше -

  1. Як працює алгоритм SVM?
  2. Алгоритм MD5 (переваги та недоліки)
  3. K- означає алгоритм кластеризації
  4. Види підсилення навчання
  5. Повне керівництво алгоритмом C ++

Категорія: