Menu
CoddyTech

데이터 준비하기

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

모델은 숫자로 된 완전한 행만 읽습니다. 펭귄 데이터에는 결측값과 텍스트 열 두 개가 있으므로, 각 열은 각자의 처리 경로를 따라갑니다:

훈련용 펭귄 한 마리를 보여 주는 다이어그램입니다. 네 가지 측정값은 파란색 경로를 따라가 중앙값으로 채운 다음 스케일링되어 -0.79, 0.00, -0.05, -0.90으로 나옵니다. 서식지인 Biscoe와 결측된 성별은 주황색 경로를 따라가 unknown으로 채운 다음 원-핫 인코딩되어 0 또는 1로 된 열 여섯 개로 나옵니다

텍스트의 결측값에는 "unknown"이라는 단어가 들어갑니다. 성별이 기록되지 않은 펭귄은 추측하는 대신 별도의 열을 갖게 됩니다.

text_steps = make_pipeline(
    SimpleImputer(strategy="constant", fill_value="unknown"),
    OneHotEncoder())

처리 경로는 학습 행에 대해서만 적합시키세요. 테스트 펭귄을 포함해 계산한 중앙값은 테스트 데이터의 정보가 학습 데이터로 유출되게 합니다.

challenge icon

챌린지

중급

펭귄에게는 그림에 나온 레인이 필요합니다. 시작 코드에서는 데이터를 나누고 행 번호를 읽습니다.

  1. numbers를 숫자 레인으로, text를 텍스트 레인으로 보내는 ColumnTransformer인 prep를 만드세요.
  2. 훈련 행에 맞춰 학습하고 한 번의 호출로 변환하세요.
  3. 변환 전 크기와 결측값 수, 변환 후 크기, 그리고 해당 행의 준비된 결과를 소수점 이하 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())

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

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

지도 학습의 모든 레슨

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