K-блочная проверка
Часть раздела Обучение с учителем путешествия по Machine Learning на Coddy. Урок 37 из 58.
Эта глава поможет сделать ваши оценки надёжными. К концу главы вы научитесь настраивать модель с помощью диаграмм, подобных этой:
Вам может повезти с одним разбиением. Кросс-валидация по K блокам разбивает строки на блоки — в данном случае на 5 — и по очереди проверяет модель на каждом блоке, обучая её на остальных:
Один вызов запускает все пять, здесь — для дерева на цветках ириса:
from sklearn.model_selection import cross_val_score
tree = DecisionTreeClassifier(random_state=0)
scores = cross_val_score(tree, X, y, cv=5)
print(np.round(scores, 3))
print(f"{scores.mean():.3f} {scores.std():.3f}")Это выводит:
[0.967 0.967 0.9 0.967 1. ]
0.960 0.033Укажи среднее значение как оценку, а std — как меру разброса.
Задание
СреднеПивоварня комбучи предсказывает, испортились ли партии, по 5 лабораторным показателям. Насколько стабильно работает её модель? Программа считывает количество фолдов; код-заготовка создаёт данные и модель.
- Проведи перекрёстную проверку модели с указанным количеством фолдов.
- Выведи точность для каждого фолда, а затем среднее значение и стандартное отклонение — всё с точностью до 3 знаков после запятой.
- Выведи номер фолда с наименьшей точностью, считая от 1.
Для других партий и 4:
Fold 1: 0.917
Fold 2: 0.933
Fold 3: 0.883
Fold 4: 0.917
Mean 0.912, std 0.018
Weakest fold: 3Попробуйте сами
import numpy as np
from sklearn.datasets import make_classification
from sklearn.model_selection import cross_val_score
from sklearn.linear_model import LogisticRegression
n_folds = int(input())
# Не меняйте строки ниже: 240 партий комбучи, по 5 лабораторных показателей для каждой; метка 1 означает, что партия испорчена
X, y = make_classification(n_samples=240, n_features=5, n_informative=3, n_redundant=0,
flip_y=0.08, class_sep=0.9, random_state=2)
model = LogisticRegression(max_iter=1000)
# Напишите свой код ниже
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Обучение с учителем
1Ваша первая модель
Обучение на примерахОбучающая и тестовая выборкиОбучение и предсказаниеОценка моделиПовторение: сортировщик семян4Логистическая регрессия
Предсказания «да» или «нет»Порог принятия решенияВеса как свидетельстваНесколько классовПовторение: спам-фильтр2Метод ближайших соседей
Как работает k-NNВыбор kГраницы принятия решенийМасштабирование признаков для поиска соседейПовторение: соседи для вин5Оценка классификаторов
Матрица ошибокТочность и полнотаF1-мераНесбалансированные классыROC-кривыеПовторение: скрининговый тест8Кросс-валидация
K-блочная проверкаСправедливое сравнение моделейПоиск по сеткеПовторение: ремонт скейтбордов11Проект: виды пингвинов
Знакомство с пингвинамиПодготовка данныхВыбор моделиНастройка лучшей моделиЗапуск моделиПотренируйтесь самостоятельно: Онлайн-компилятор Python