파이프라인 조정하기
Coddy Machine Learning 여정의 지도 학습 섹션에 포함된 레슨. 58개 중 48번째.
파이프라인은 정리 단계를 포함하여 어떤 모델처럼 튜닝할 수 있습니다. 각 설정은 단계 이름, 밑줄 두 개, 매개변수 순으로 이름이 지정됩니다.
pipe = make_pipeline(SimpleImputer(), DecisionTreeClassifier(random_state=0))
grid = {"simpleimputer__strategy": ["mean", "median", "most_frequent"],
"decisiontreeclassifier__max_depth": [2, 4, 6, 8]}
search = GridSearchCV(pipe, grid, cv=5)
search.fit(X_train, y_train)make_pipeline은 각 단계를 클래스 이름의 소문자 형태로 명명합니다. 모형 로켓 200회 발사에서 300 m에 도달했는지 여부를 기준으로 한 12가지 설정의 점수는 다음과 같습니다.
각 폴드마다 대치기를 포함한 전체 파이프라인을 다시 적합하므로, 어떤 폴드도 자신을 테스트하는 행을 미리 보지 않습니다.
챌린지
중급음악 학교는 어떤 바이올린 학생들이 학년 시험에 합격할지 알고 싶어 합니다. 시작 코드는 k 값 3개를 읽고, 파이프라인에 대한 그리드 검색은 오류로 중단됩니다.
- 검색이 대치기의 전략과 k-NN의 이웃 수를 조정하도록 그리드의 두 키를 수정하세요.
- 아래와 같이 최적 설정, 교차 검증 정확도와 테스트 정확도를 출력하세요.
2, 4, 6을 입력한 다른 학교의 경우:
Best: mean fills, 6 neighbors
Cross-validated accuracy: 0.720
Test accuracy: 0.820직접 해보기
import pandas as pd
from sklearn.model_selection import train_test_split, GridSearchCV
from sklearn.impute import SimpleImputer
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
from sklearn.pipeline import make_pipeline
# 바이올린 학생들: 급수 시험에 합격했는지 (1) 불합격했는지 (0); 일부 연습
# 기록과 초견 연주 점수가 누락되어 있습니다
students = pd.read_csv("violins.csv")
X = students.drop(columns="passed")
y = students["passed"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)
ks = [int(input()), int(input()), int(input())]
# 이 탐색은 오류로 중단됩니다: 그리드를 수정하세요
pipe = make_pipeline(SimpleImputer(), StandardScaler(), KNeighborsClassifier())
grid = {
"strategy": ["mean", "median"],
"n_neighbors": ks,
}
search = GridSearchCV(pipe, grid, cv=5)
search.fit(X_train, y_train)
# 아래에 코드를 작성하세요
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
지도 학습의 모든 레슨
직접 연습해 보세요: 온라인 Python 컴파일러