모델 배포하기
Coddy Machine Learning 여정의 지도 학습 섹션에 포함된 레슨. 58개 중 54번째.
테스트 펭귄들은 프로젝트 내내 기다려 왔습니다. 조정된 파이프라인을 학습 행에 맞춘 다음, 테스트 펭귄에 대해 한 번 점수를 계산하세요. 그것이 정직한 수치입니다.
그다음 어디서 틀리는지 살펴보세요. 병원의 모델은 건강, 감기 또는 독감으로 분류합니다. 행은 실제 정답이고, 열은 모델의 예측입니다:
새로운 펭귄은 학습 열로 이루어진 한 행짜리 표입니다. predict가 이를 이름으로 지정하고, predict_proba(new).max()는 확신의 정도입니다. 즉, 가장 높은 점수를 받은 클래스의 비율이며, k-NN에서는 동의하는 이웃의 비율입니다.
챌린지
중급결승선입니다. model은 튜닝된 파이프라인이고, 시작 코드는 새 펭귄을 new_penguin에 읽어들입니다.
- 학습 행으로 모델을 학습시키세요. 테스트 정확도(소수점 3자리)와 테스트 펭귄 중 몇 마리를 맞게 분류했는지 출력하세요.
- 테스트 예측의 혼동 행렬을
ax에 그린 다음 표시하세요. - 새 펭귄의 이름과 모델의 확신도를 백분율로 출력하세요.
다른 관측소의 군집에서는 다음과 같습니다.
Test accuracy: 0.960 (72 of 75 penguins)
New penguin: Gentoo (86% sure)혼동 행렬은 다음과 같습니다.
그런 다음 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")
# 아래에 코드를 작성하세요
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
지도 학습의 모든 레슨
직접 연습해 보세요: 온라인 Python 컴파일러