|
前提知識
・pythonとは
決定木(Decision Tree)の使い方を実例を踏まえて説明します。題材は、ある昆虫の身長と体重からその個体がオスかメスかを分類します。

■決定木の考え方
決定木は一言でいうと条件分岐のフローチャートです。例えば以下の様に分布している2種類のデータをうまく分類したいと思います。

これは以下の様に複数の条件分けによって分類する事ができます。

■pythonによるシミュレーション
scikit-learnというデータ分析に特化したライブラリの中にDecision treeがありますので、それを使います。
・pythonバージョン:Ver3.8で確認
・必要ライブラリ:numpy,matplotlib,scikit-learn (インストール方法はこちら)
・必要ファイル:tree.zip(プログラムファイル, 訓練データ)
結果は以下のとおり。一応分類はできましたが形はいびつで、オーバーフィッティング(過学習)している状態であると言えます。

■決定木適合パラメータ
過学習を防ぐ等、より最適に分類するためのパラメータを設定する事ができます。また、決定木を可視化できるようにもプログラムを修正しました。
・必要ライブラリ:pydotplus , graphviz (pipでインストールしてもエラーが発生する場合はこちら)
・プログラムファイル:tree2.zip(プログラムファイル)
・パラメータ
criterion='entropy' 分割手法をエントロピーに設定
max_depth=4 決定木の深さの最大値を4
結果は以下のとおり。過学習を減らした形になりましたが正しく分類できないデータもうまれました。

また、決定木を可視化した結果は以下のとおり。

サブチャンネルあります。⇒ 何かのお役に立てればと
|
|