데이터 준비하기
Coddy Machine Learning 여정의 지도 학습 섹션에 포함된 레슨. 58개 중 51번째.
모델은 숫자로 된 완전한 행만 읽습니다. 펭귄 데이터에는 결측값과 텍스트 열 두 개가 있으므로, 각 열은 각자의 처리 경로를 따라갑니다:
텍스트의 결측값에는 "unknown"이라는 단어가 들어갑니다. 성별이 기록되지 않은 펭귄은 추측하는 대신 별도의 열을 갖게 됩니다.
text_steps = make_pipeline(
SimpleImputer(strategy="constant", fill_value="unknown"),
OneHotEncoder())처리 경로는 학습 행에 대해서만 적합시키세요. 테스트 펭귄을 포함해 계산한 중앙값은 테스트 데이터의 정보가 학습 데이터로 유출되게 합니다.
챌린지
중급펭귄에게는 그림에 나온 레인이 필요합니다. 시작 코드에서는 데이터를 나누고 행 번호를 읽습니다.
numbers를 숫자 레인으로,text를 텍스트 레인으로 보내는ColumnTransformer인prep를 만드세요.- 훈련 행에 맞춰 학습하고 한 번의 호출로 변환하세요.
- 변환 전 크기와 결측값 수, 변환 후 크기, 그리고 해당 행의 준비된 결과를 소수점 이하 2자리까지 출력하세요.
다른 무리에서 행 3의 경우:
Before: 180 penguins, 6 columns, 9 gaps
After: 180 penguins, 10 columns
Penguin 3: [-1.12 0.47 -0.83 -0.6 0. 1. 0. 0. 1. 0. ]행 14는 아무도 측정할 수 없었던 펭귄입니다. 어떻게 변할까요?
직접 해보기
import numpy as np
import pandas as pd
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
# 펭귄 만나보기에서 가져온 펭귄 군집, 특성 및 레이블
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)
row = int(input())
# 아래에 코드를 작성하세요
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
지도 학습의 모든 레슨
직접 연습해 보세요: 온라인 Python 컴파일러