Menu
CoddyTech

모델 배포하기

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

테스트 펭귄들은 프로젝트 내내 기다려 왔습니다. 조정된 파이프라인을 학습 행에 맞춘 다음, 테스트 펭귄에 대해 한 번 점수를 계산하세요. 그것이 정직한 수치입니다.

그다음 어디서 틀리는지 살펴보세요. 병원의 모델은 건강, 감기 또는 독감으로 분류합니다. 행은 실제 정답이고, 열은 모델의 예측입니다:

60명의 테스트 환자에 대한 병원 모델의 3×3 혼동 행렬로, 건강, 감기, 독감을 나타냅니다. 대각선에는 정답 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라는 제목의 혼동 행렬: Adelie 29마리, Chinstrap 16마리, Gentoo 27마리를 맞게 분류했고, Adelie 1마리를 Chinstrap으로, Chinstrap 2마리를 Adelie로 분류함

그런 다음 Coddy가 당신의 결과를 알려줍니다. Meet the Penguins에 나오는 스타는 Dream에서 암컷으로, 47.2, 18.0, 194, 3650을 측정했습니다. 그 펭귄으로 프로그램을 실행해 보세요. 이 펭귄은 누구일까요?

직접 해보기

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 = 7인 k-NN
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 컴파일러