#2번_다음 코드는 교차검증 코드이다. 요구 조건에 따라 코드를 완성하라. (주석은 지우지마시오.)

import pandas as pd import numpy as np

wine = pd.read_csv('https://bit.ly/wine_csv_data') data = wine[['alcohol', 'sugar', 'pH']].to_numpy() target = wine['class'].to_numpy()

from sklearn.model_selection import train_test_split

2-1 아래 코드를 알맞게 채워넣으시오.

train_input, test_input, train_target, test_target = train_test_split(data, target, test_size=0.2, random_state=42) sub_input, val_input, sub_target, val_target = train_test_split(data, target, test_size=0.2, random_state=42) print(sub_input.shape, val_input.shape)

#2-2 빈칸을 채우시오. from sklearn.tree import DecisionTreeClassifier

dt = DecisionTreeClassifier(random_state=42) dt.fit(sub_input, sub_target)

print(dt.score(sub_input, sub_target)) print(dt.score(val_input, val_target))

2-3 아래 코드에서 틀린 것을 고치시오.

from sklearn.model_selection import cross_validate scores = cross_validate(dt, train_input, train_target) print(scores) print(np.mean(scores['test_score']))

2-4 반드시 필요한 코드를 추가하시오.

from sklearn.model_selection import StratifiedKFold

scores = cross_validate(dt, train_input, train_target, cv=StratifiedKFold()) print(np.mean(scores['test_score']))

2-5 StratifiedKFold를 사용하여 데이터를 분할하고, 교차 검증을 수행하여 모델의 성능을 평가하는 것 코드를 작성하시오.

splitter = StratifiedKFold(n_splits=10, shuffle=True, random_state=42) scores = cross_validate(dt, train_input, train_target, cv=splitter) print(np.mean(scores['test_score']))