#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
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))
from sklearn.model_selection import cross_validate scores = cross_validate(dt, train_input, train_target) print(scores) print(np.mean(scores['test_score']))
from sklearn.model_selection import StratifiedKFold
scores = cross_validate(dt, train_input, train_target, cv=StratifiedKFold()) print(np.mean(scores['test_score']))
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']))