의사결정나무
이번 연습 문제에서는 scikit-learn에 기본으로 포함된 breast cancer 데이터셋에 대해 scikit-learn의 DecisionTreeClassifier를 사용해 간단한 의사결정나무를 만들어 보세요.
이 데이터셋에는 유방 생검에서 측정한 개별 종양의 다양한 수치형 특징(예: 둘레, 질감 등)과 단일 결과 값(종양이 악성인지 양성인지)이 포함되어 있어요.
샘플(측정값) 데이터는 X에, 종양별 타깃 값은 y에 미리 로드해 두었습니다. 이제 전체 데이터를 학습용과 테스트용 세트로 나눈 뒤, DecisionTreeClassifier를 학습시키세요. 여기서는 max_depth라는 매개변수를 지정합니다. 이 모델에서 수정할 수 있는 다른 매개변수도 많으며, 모두 여기에서 확인할 수 있어요.
이 연습은 강의의 일부입니다
XGBoost로 익히는 Extreme Gradient Boosting
연습 안내
- 다음을 임포트하세요:
sklearn.model_selection에서train_test_split.sklearn.tree에서DecisionTreeClassifier.
- 데이터의 20%를 테스트에 사용하도록 학습용/테스트용 세트를 만드세요.
random_state는123을 사용합니다. max_depth가4인DecisionTreeClassifier를dt_clf_4라는 이름으로 인스턴스화하세요. 이 매개변수는 리프 노드에 도달하기 전까지 가능한 연속 분할의 최대 횟수를 지정합니다.- 분류기를 학습 세트에 적합시키고, 테스트 세트의 레이블을 예측하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Import the necessary modules
____
____
# Create the training and test sets
X_train, X_test, y_train, y_test = ____(____, ____, test_size=____, random_state=____)
# Instantiate the classifier: dt_clf_4
dt_clf_4 = ____
# Fit the classifier to the training set
____
# Predict the labels of the test set: y_pred_4
y_pred_4 = ____
# Compute the accuracy of the predictions: accuracy
accuracy = float(np.sum(y_pred_4==y_test))/y_test.shape[0]
print("accuracy:", accuracy)