Запуск модели
Часть раздела Обучение с учителем путешествия по Machine Learning на Coddy. Урок 54 из 58.
Тестовые пингвины ждали весь проект. Обучите настроенный конвейер на обучающих строках, затем один раз оцените его на тестовых пингвинах: это будет честный показатель.
Затем посмотри, где модель ошибается. Модель клиники определяет, здоров ли пациент, простужен или болен гриппом; строки показывают истинные значения, столбцы — предсказания модели:
Новый пингвин — это таблица из одной строки со столбцами, используемыми при обучении. predict определяет его класс, а predict_proba(new).max() показывает степень уверенности: долю победившего класса; для k-NN — долю соседей, которые согласны.
Задание
СреднеФинишная черта. model — это ваш настроенный конвейер; стартовый код считывает нового пингвина в new_penguin.
- Обучите модель на обучающих строках. Выведите точность на тестовой выборке (3 знака после запятой) и количество тестовых пингвинов, которых она определила правильно.
- Постройте матрицу ошибок для предсказаний на тестовой выборке на
axи покажите её. - Определите вид нового пингвина и уверенность модели в процентах.
Для колонии на другой станции:
Test accuracy: 0.960 (72 of 75 penguins)
New penguin: Gentoo (86% sure)и её матрица:
Затем Coddy сообщит ваши результаты. Звезда из Meet the Penguins измерила 47.2, 18.0, 194 и 3650; остров — Dream, пол — female. Запустите программу с её данными: кто она?
Попробуйте сами
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.compose import ColumnTransformer
from sklearn.pipeline import make_pipeline
from sklearn.impute import SimpleImputer
from sklearn.preprocessing import StandardScaler, OneHotEncoder
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import ConfusionMatrixDisplay
# Колония из Meet the Penguins, её признаки и метка
penguins = pd.read_csv("penguins.csv")
numbers = ["bill_length_mm", "bill_depth_mm", "flipper_length_mm", "body_mass_g"]
text = ["island", "sex"]
X = penguins[numbers + text]
y = penguins["species"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, stratify=y, random_state=0)
# Из Prepare the Data: две ветви обработки
number_steps = make_pipeline(SimpleImputer(strategy="median"), StandardScaler())
text_steps = make_pipeline(SimpleImputer(strategy="constant", fill_value="unknown"), OneHotEncoder())
prep = ColumnTransformer([("numbers", number_steps, numbers), ("words", text_steps, text)])
# Из Choose a Model and Tune the Winner: k-NN с k = 7
model = make_pipeline(prep, KNeighborsClassifier(n_neighbors=7))
# Новый пингвин, обнаруженный в естественной среде: таблица из одной строки с теми же столбцами
new_penguin = pd.DataFrame({
"bill_length_mm": [float(input())],
"bill_depth_mm": [float(input())],
"flipper_length_mm": [float(input())],
"body_mass_g": [float(input())],
"island": [input()],
"sex": [input()],
})
fig, ax = plt.subplots()
ax.set_title("Test Penguins")
# Напишите свой код ниже
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Обучение с учителем
1Ваша первая модель
Обучение на примерахОбучающая и тестовая выборкиОбучение и предсказаниеОценка моделиПовторение: сортировщик семян4Логистическая регрессия
Предсказания «да» или «нет»Порог принятия решенияВеса как свидетельстваНесколько классовПовторение: спам-фильтр2Метод ближайших соседей
Как работает k-NNВыбор kГраницы принятия решенийМасштабирование признаков для поиска соседейПовторение: соседи для вин5Оценка классификаторов
Матрица ошибокТочность и полнотаF1-мераНесбалансированные классыROC-кривыеПовторение: скрининговый тест8Кросс-валидация
K-блочная проверкаСправедливое сравнение моделейПоиск по сеткеПовторение: ремонт скейтбордов11Проект: виды пингвинов
Знакомство с пингвинамиПодготовка данныхВыбор моделиНастройка лучшей моделиЗапуск моделиПотренируйтесь самостоятельно: Онлайн-компилятор Python