Рукописные цифры
Часть раздела Обучение с учителем путешествия по Machine Learning на Coddy. Урок 57 из 58.
Сортировочная машина почтового отделения считывает рукописные цифры почтовых индексов со сканов размером 8 на 8, с которыми вы познакомились в разделе «Цифры с первого взгляда», load_digits:
На эту должность претендуют два кандидата: k-NN с таким значением k, которое предлагает инженер, и случайный лес из 100 деревьев.
На этот раз ошибки имеют значение. Офису нужен более справедливый победитель, его оценка на невиденных ранее сканах и самая частая путаница, поэтому эти цифры передадут человеку.
Задание
СложноПрограмма считывает значение k, введённое инженером; заготовка создаёт диаграмму с заголовком.
- Выдели стратифицированную тестовую четверть данных, указав
random_state=0. - Проведи кросс-валидацию k-NN с этим значением
kи леса из 100 деревьев (random_state=0), используя 5 фолдов на обучающих строках. Выведи среднее значение для каждой модели (3 знака после запятой) и победителя. - Обучи победившую модель и выведи её точность на тестовой выборке.
- Выведи самую большую ошибку в тестовой матрице ошибок, затем нарисуй матрицу на
axи покажи её.
Для другой машины и значения 3:
k-NN: CV accuracy 0.979
Random forest: CV accuracy 0.968
Winner: k-NN
Test accuracy: 0.976
Most confused: 7 read as 2 (3 times)Затем Coddy покажет твою матрицу.
Попробуйте сами
import matplotlib.pyplot as plt
from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split, cross_val_score
from sklearn.neighbors import KNeighborsClassifier
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay
digits = load_digits()
X = digits.data
y = digits.target
k = int(input())
fig, ax = plt.subplots()
ax.set_title("Test Digits")
# Напишите свой код ниже
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Обучение с учителем
1Ваша первая модель
Обучение на примерахОбучающая и тестовая выборкиОбучение и предсказаниеОценка моделиПовторение: сортировщик семян4Логистическая регрессия
Предсказания «да» или «нет»Порог принятия решенияВеса как свидетельстваНесколько классовПовторение: спам-фильтр2Метод ближайших соседей
Как работает k-NNВыбор kГраницы принятия решенийМасштабирование признаков для поиска соседейПовторение: соседи для вин5Оценка классификаторов
Матрица ошибокТочность и полнотаF1-мераНесбалансированные классыROC-кривыеПовторение: скрининговый тест8Кросс-валидация
K-блочная проверкаСправедливое сравнение моделейПоиск по сеткеПовторение: ремонт скейтбордов11Проект: виды пингвинов
Знакомство с пингвинамиПодготовка данныхВыбор моделиНастройка лучшей моделиЗапуск моделиПотренируйтесь самостоятельно: Онлайн-компилятор Python