DecisionTreeClassifierのパラメータ調整
設定
- DecisionTreeClassifierの使い方はこちら
- 下記のデータの分類をDecisionTreeClassifierを使って行う
- 約10%ほどノイズが入っている。
- x0: (0.5, 1.5), x1:(0.5, 1.5)で分岐すれば精度90%で分類するごとができる。
- 何も制約を入れずに全データを使って学習させると、下記の通りオーバーフィッティングしている。
とりあえずパラメータを変えてみる
- クロスバリデーションを使ってモデルの評価を行う。
デフォルトパラメータの場合(ツリーへの制約がない状態)
- accuracy: 0.800
- std: 0.039
- 分類
- 分岐ツリー
- かなり複雑になっている。
- 90%くらいの精度になってほしいが、80%くらい。
max_depthを調整する。
max_depth=3
- accuracy: 0.777
- std: 0.035
- 分類
- 分岐ツリー
max_depth=4
- accuracy: 0.889
- std: 0.038
- 分類
分岐ツリー
max_depth=4でかなりいい感じの結果になった。
GridSearchを使って最適なパラメータを探す。
- accuracy: 0.882
- std: 0.044
- 分類
- 分岐ツリー
まとめ
- ツリーの大きさを制約するようなパラメータを上手く設定することで、汎化性能が上がることを確認。