決定木
この演習では、scikit-learn に同梱されている breast cancer データセットに対して、scikit-learn の DecisionTreeClassifier を用いてシンプルな決定木を作成します。
このデータセットには、乳房生検から得られた各腫瘍のさまざまな寸法(周長やテクスチャなど)の数値測定値と、単一の目的変数(腫瘍が悪性か良性か)が含まれます。
サンプル(測定値)のデータセットは X に、腫瘍ごとの目的値は y にあらかじめ読み込んであります。ここでは、まず完全なデータセットを学習用とテスト用に分割し、その後 DecisionTreeClassifier を学習させます。max_depth というパラメータを指定してください。このモデルでは他にも多くのパラメータを変更できます。すべての一覧は こちら を参照してください。
この演習はコースの一部です
XGBoost で学ぶ極限の勾配ブースティング
演習の手順
- 次をインポートします:
sklearn.model_selectionからtrain_test_split。sklearn.treeからDecisionTreeClassifier。
- データの 20% をテスト用に使うように学習用・テスト用集合を作成します。
random_stateは123を使用してください。 max_depthを4として、dt_clf_4という名前のDecisionTreeClassifierをインスタンス化します。このパラメータは、葉ノードに到達するまでに許される連続した分割の最大回数を指定します。- 分類器を学習用データに当てはめ、テストセットのラベルを予測します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# 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)