Как работает k-NN
Часть раздела Обучение с учителем путешествия по Machine Learning на Coddy. Урок 6 из 58.
В этой главе мы разберём k-NN. К её окончанию вы сможете построить его карту для любых данных, например такую для перцев чили умеренной остроты и острых:
Чтобы классифицировать новый перец чили, метод k ближайших соседей находит k обучающих перцев чили, ближайших к нему, и они голосуют:
Ближайшее — это наименьшее расстояние, которое ты рассматривал в разделе 2. Ты выбираешь k:
model = KNeighborsClassifier(n_neighbors=5)n_neighbors — это k, равное 5, если не указано иное. При двух классах нечётное k не может привести к ничьей.
Задание
ЛегкоАстрономический клуб распределяет звёзды из stars.csv на карлики и гиганты по температуре и величине. Стартовый код считывает новую звезду и k.
- Найди вручную k ближайших звёзд: добавь столбец
distance, затем выполни сортировку. - Выведи, сколько среди них гигантов, а затем победителя голосования.
- Проверь результат с помощью модели k-NN с этим k, обученной на всех звёздах.
Для звезды другого клуба и k = 5:
Giants among the nearest 5: 4
By hand: giant
Model: giantПопробуйте сами
import numpy as np
import pandas as pd
from sklearn.neighbors import KNeighborsClassifier
# Одна строка на звезду: температура в тысячах кельвинов, звёздная величина (чем меньше, тем ярче), карлик или гигант
stars = pd.read_csv("stars.csv")
X = stars[["temp_kK", "magnitude"]]
y = stars["type"]
# Новая звезда и k
temp = float(input())
mag = float(input())
k = int(input())
new_star = pd.DataFrame({"temp_kK": [temp], "magnitude": [mag]})
# Напишите свой код ниже
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Обучение с учителем
1Ваша первая модель
Обучение на примерахОбучающая и тестовая выборкиОбучение и предсказаниеОценка моделиПовторение: сортировщик семян4Логистическая регрессия
Предсказания «да» или «нет»Порог принятия решенияВеса как свидетельстваНесколько классовПовторение: спам-фильтр2Метод ближайших соседей
Как работает k-NNВыбор kГраницы принятия решенийМасштабирование признаков для поиска соседейПовторение: соседи для вин5Оценка классификаторов
Матрица ошибокТочность и полнотаF1-мераНесбалансированные классыROC-кривыеПовторение: скрининговый тест8Кросс-валидация
K-блочная проверкаСправедливое сравнение моделейПоиск по сеткеПовторение: ремонт скейтбордов11Проект: виды пингвинов
Знакомство с пингвинамиПодготовка данныхВыбор моделиНастройка лучшей моделиЗапуск моделиПотренируйтесь самостоятельно: Онлайн-компилятор Python