Menu
CoddyTech

Повторение: соседи для вин

Часть раздела Обучение с учителем путешествия по Machine Learning на Coddy. Урок 10 из 58.

challenge icon

Задание

Легко

Нарисуй карту, как первую в этой главе, для вина. В стартовом коде разделяются 178 образцов вина (два признака, сорта от 0 до 2), перечисляются значения ks и подписывается график.

  1. Масштабируй оба набора, обучаясь на образцах вина из обучающей выборки.
  2. Выведи значение k с наилучшей точностью на тестовой выборке (пока что: в главе 7 будет более справедливая проверка).
  3. Используя это значение k, заполни карту: сетка xx, yy, размером 100 на 100, от -3 до 3 в обоих направлениях, предсказания сохрани в zz.
  4. Поверх нанеси масштабированные образцы вина из обучающей выборки, подписав их значениями из 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)")

# Напишите свой код ниже

Все уроки раздела Обучение с учителем

Потренируйтесь самостоятельно: Онлайн-компилятор Python