どうもニコイチです。いよいよモデルの操作に移っていきます。その前に毎処理について解説いたします。
目次
必要なライブラリのインポート
from sklearn.tree import DecisionTreeClassifier as DT
モデルの初期化
基本的な初期化
model = DT() # 最もシンプルな初期化
パラメータを指定した初期化
model = DT(
max_depth=3, # 木の深さの制限
random_state=42 # 結果の再現性のための設定
)
重要なパラメータの解説
max_depth(木の深さ)
木の深さは料理の「火加減」のようなものです:
- 弱すぎる(浅すぎる)→ 料理が生焼け(モデルが単純すぎて予測精度が低い)
- 強すぎる(深すぎる)→ 料理が焦げる(過学習により汎用性が失われる)
推奨設定値:
- 小規模データ(〜1000件): 3-5
- 中規模データ(〜10000件): 5-10
- 大規模データ: データの複雑さに応じて調整
random_state(再現性)
- レシピの再現性を確保するための設定
- 同じ値を設定すれば、何度実行しても同じ結果が得られる
- 任意の整数値(例:42)を指定
注意点
- モデルの複雑さ調整
- 単純すぎるモデル → データのパターンを捉えられない
- 複雑すぎるモデル → データを「丸暗記」してしまう
- 可視化の限界
- 深さが増えるほど、人間には理解しづらくなる
- max_depth=3〜5程度が可視化に適している
コード例
# 基本的なモデル(深さ制限あり)
model_basic = DT(max_depth=3, random_state=42)
# より複雑なモデル
model_complex = DT(
max_depth=5,
random_state=42,
min_samples_leaf=10 # 葉ノードの最小サンプル数
)
コメント