Menu
CoddyTech

Запуск модели

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

Тестовые пингвины ждали весь проект. Обучите настроенный конвейер на обучающих строках, затем один раз оцените его на тестовых пингвинах: это будет честный показатель.

Затем посмотри, где модель ошибается. Модель клиники определяет, здоров ли пациент, простужен или болен гриппом; строки показывают истинные значения, столбцы — предсказания модели:

Матрица ошибок 3 на 3 для модели клиники на 60 тестовых пациентах: здоровые, простуженные и больные гриппом; на диагонали указаны 20, 14 и 17 верных ответов, а 5 случаев простуды были классифицированы как грипп

Новый пингвин — это таблица из одной строки со столбцами, используемыми при обучении. predict определяет его класс, а predict_proba(new).max() показывает степень уверенности: долю победившего класса; для k-NN — долю соседей, которые согласны.

challenge icon

Задание

Средне

Финишная черта. model — это ваш настроенный конвейер; стартовый код считывает нового пингвина в new_penguin.

  1. Обучите модель на обучающих строках. Выведите точность на тестовой выборке (3 знака после запятой) и количество тестовых пингвинов, которых она определила правильно.
  2. Постройте матрицу ошибок для предсказаний на тестовой выборке на ax и покажите её.
  3. Определите вид нового пингвина и уверенность модели в процентах.

Для колонии на другой станции:

Test accuracy: 0.960 (72 of 75 penguins)
New penguin: Gentoo (86% sure)

и её матрица:

Матрица ошибок с заголовком Test Penguins для другой станции: 29 Adelie, 16 Chinstrap и 27 Gentoo определены правильно, 1 Adelie определён как Chinstrap и 2 Chinstrap определены как Adelie

Затем 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")

# Напишите свой код ниже
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

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

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