Menu
CoddyTech

학습시키고 예측하기

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

모든 scikit-learn 모델은 두 번의 호출로 작동합니다. fit은 훈련 데이터의 행과 그 레이블을 학습하고, predict는 모델이 한 번도 본 적 없는 행에 레이블을 지정합니다:

도표: 몸무게와 귀 길이가 X_train에, 고양이 세 마리와 개 세 마리의 레이블이 y_train에 표시된 반려동물 여섯 마리가 fit을 거쳐 모델에 입력됩니다. 새로운 반려동물 두 마리 X_new가 모델을 사용해 predict를 거쳐 고양이와 개로 출력됩니다

이 여정의 첫 번째 수업에서 다룬 모델은 k-최근접 이웃입니다. 가장 가까운 훈련 데이터 행과 같은 방식으로 행에 레이블을 지정합니다. 반려동물의 체중(kg)과 귀 길이(cm):

from sklearn.neighbors import KNeighborsClassifier

X_train = np.array([[4, 6], [5, 7], [3, 5], [30, 10], [25, 12], [35, 11]])
y_train = np.array(["cat", "cat", "cat", "dog", "dog", "dog"])
model = KNeighborsClassifier()
model.fit(X_train, y_train)
print(model.predict([[6, 6], [28, 11]]))

이렇게 하면 ['cat' 'dog']가 출력됩니다. 새 행은 표 형식으로 입력되며, 반려동물마다 한 행씩입니다.

만들기, 학습시키기, 예측하기: 이 절의 모든 모델은 이 세 단계를 따릅니다.

challenge icon

챌린지

쉬움

조류 관찰 동호회의 앱은 날개폭과 무게를 바탕으로 새의 이름을 알아냅니다. 시작 코드는 동호회의 birds.csv를 분할하고 오늘 밤의 새들을 spotted 테이블로 읽어 옵니다.

  1. k-최근접 이웃 모델을 만들고 훈련용 새 데이터로 학습시키세요.
  2. 관찰된 모든 새를 한 번의 호출로 예측하세요.
  3. 아래와 같이 새마다 한 줄씩 출력하세요.

다른 산책에서 새 세 마리를 관찰한 경우:

Bird 1: sparrow
Bird 2: blackbird
Bird 3: robin

직접 해보기

import pandas as pd
from sklearn.model_selection import train_test_split

# 동아리가 이름을 붙인 새 한 마리당 한 행: 날개 길이는 cm, 무게는 그램 단위
birds = pd.read_csv("birds.csv")
X = birds[["wingspan_cm", "weight_g"]]
y = birds["species"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)

# 오늘 밤 산책: 새의 수를 먼저 입력하고, 각 새의 날개 길이와 무게를 입력
count = int(input())
spans = []
weights = []
for i in range(count):
    spans.append(float(input()))
    weights.append(float(input()))
spotted = pd.DataFrame({"wingspan_cm": spans, "weight_g": weights})

# 아래에 코드를 작성하세요
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

지도 학습의 모든 레슨

직접 연습해 보세요: 온라인 Python 컴파일러