Menu
CoddyTech

Обучающая и тестовая выборки

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

Модель может запомнить строки, на которых она обучалась, поэтому проверка на них ничего не доказывает. Вместо этого скрой часть строк: тестовая выборка представляет новые данные.

Двенадцать пронумерованных строк перемешивают и распределяют: девять синих ячеек, 10 2 8 1 7 9 3 0 5, с меткой train, и три оранжевые ячейки, 6 11 4, с меткой test

Первая модель в этом путешествии изучила 112 цветков ириса и назвала 38. Эта строка распределила их:

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split

iris = load_iris()
X = iris.data
y = iris.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)
print(X_train.shape, X_test.shape)

Это выводит (112, 4) (38, 4). Эти четыре части всегда идут в таком порядке, а random_state=0 обеспечивает повторяемость перемешивания.

Обучайся на обучающей выборке. Открой тестовую выборку один раз, в конце.

challenge icon

Задание

Легко

Ночная камера в лесу сняла 200 животных — лис или барсуков — в camera.csv. Будет ли разделение справедливой проверкой? Начальный код создает X и y и считывает test_size.

  1. Раздели данные с этим значением test_size и random_state=0.
  2. Выведи размеры, как показано ниже.
  3. Выведи долю лис в каждой части в целых процентах.

Для другого леса и значения 0.25:

Train: 90 snapshots
Test: 30 snapshots
Foxes: 52% of train, 47% of test

Попробуйте сами

import pandas as pd

# Одна строка на каждый снимок ночной камеры
camera = pd.read_csv("camera.csv")
X = camera[["minutes_after_sunset", "length_cm", "speed_kmh"]]
y = camera["animal"]
test_size = float(input())

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

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

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

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