Menu
CoddyTech

훈련 세트와 테스트 세트

Coddy Machine Learning 여정의 지도 학습 섹션에 포함된 레슨. 58개 중 2번째.

모델은 학습한 행을 외울 수 있으므로, 해당 행으로 테스트해도 아무것도 증명하지 못합니다. 대신 일부 행을 숨기세요. 테스트 세트는 새로운 데이터를 대신합니다.

순서대로 번호가 매겨진 열두 개의 행을 섞어 나눕니다. 파란색 셀 아홉 개 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

챌린지

쉬움

숲속의 야간 카메라가 camera.csv에 여우 또는 오소리 200마리를 촬영했습니다. 데이터를 나누면 공정한 테스트가 될까요? 시작 코드는 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 컴파일러