Повторение: соседи для вин
Часть раздела Обучение с учителем путешествия по Machine Learning на Coddy. Урок 10 из 58.
Задание
ЛегкоНарисуй карту, как первую в этой главе, для вина. В стартовом коде разделяются 178 образцов вина (два признака, сорта от 0 до 2), перечисляются значения ks и подписывается график.
- Масштабируй оба набора, обучаясь на образцах вина из обучающей выборки.
- Выведи значение k с наилучшей точностью на тестовой выборке (пока что: в главе 7 будет более справедливая проверка).
- Используя это значение k, заполни карту: сетка
xx,yy, размером 100 на 100, от -3 до 3 в обоих направлениях, предсказания сохрани вzz. - Поверх нанеси масштабированные образцы вина из обучающей выборки, подписав их значениями из
names; добавь легенду.
По содержанию алкоголя и флаваноидов:
Best k: 13 (test accuracy 0.956)Coddy опишет твою карту.
Попробуйте сами
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_wine
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.preprocessing import StandardScaler
# 178 образцов вина из трёх сортов, классы 0, 1, 2
wine = load_wine()
# столбцы 6 и 12: flavanoids и пролин
X = wine.data[:, [6, 12]]
y = wine.target
names = ["cultivar A", "cultivar B", "cultivar C"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)
ks = range(1, 32, 2) # k = 1, 3, 5, ..., 31
fig, ax = plt.subplots()
ax.set_title("Wine Neighbors")
ax.set_xlabel("flavanoids (scaled)")
ax.set_ylabel("proline (scaled)")
# Напишите свой код ниже
Все уроки раздела Обучение с учителем
1Ваша первая модель
Обучение на примерахОбучающая и тестовая выборкиОбучение и предсказаниеОценка моделиПовторение: сортировщик семян4Логистическая регрессия
Предсказания «да» или «нет»Порог принятия решенияВеса как свидетельстваНесколько классовПовторение: спам-фильтр2Метод ближайших соседей
Как работает k-NNВыбор kГраницы принятия решенийМасштабирование признаков для поиска соседейПовторение: соседи для вин5Оценка классификаторов
Матрица ошибокТочность и полнотаF1-мераНесбалансированные классыROC-кривыеПовторение: скрининговый тест8Кросс-валидация
K-блочная проверкаСправедливое сравнение моделейПоиск по сеткеПовторение: ремонт скейтбордов11Проект: виды пингвинов
Знакомство с пингвинамиПодготовка данныхВыбор моделиНастройка лучшей моделиЗапуск моделиПотренируйтесь самостоятельно: Онлайн-компилятор Python