2016-05-25_21h52_31

データ解析の手順』 における「5.回帰モデルもしくはクラス分類モデルを作る」についてです。 なお実行するためのプログラムについてはこちらをご覧ください。

公開中のプログラム・コード一覧(実用的かつ実践的なデータ解析・機械学習・データマイニング) : 大学教授のブログ

決定木(Decision Tree, DT)により回帰モデルやクラス分類モデルを構築することができます。

[New] 決定木による回帰分析のプログラムを簡単に入手できるようになりました!

それぞれのURLからお求めください!

MATLAB: https://spike.cc/shop/univprof/products/ygVCcxnd

R: https://spike.cc/shop/univprof/products/NEnnX8HV

Python: https://spike.cc/shop/univprof/products/kwmq3jKB

[New] 決定木によるクラス分類のプログラムを簡単に入手できるようになりました!

それぞれのURLからお求めください!

MATLAB: https://spike.cc/shop/univprof/products/71QsnUrS

R: https://spike.cc/shop/univprof/products/9RsDi5f9

Python: https://spike.cc/shop/univprof/products/9RsDi5f9

決定木(Decision Tree, DT)

DTをたくさん作るランダムフォレスト(Random Forests, RF)のほうが、実は予測性能は高くなります。しかし、DTのメリットの一つに『なぜその予測値になったか?』といったルールが得られることもあり、DTを使う機会もあります。

なので、RFで重要な変数を選択してからDTによりルールを抽出するのも面白いです。

DTは以下の手順で行います。

  1. 決定木を作る
    決定木にはあらかじめ決めておくパラメータは特にありません。
  2. 枝刈りをする
    決定木の深さ(いくつ直列して分岐があるか、決定木のレベル) が大きくなりすぎると、決定木が複雑になりすぎてしまいます。これにより新しいデータに対する予測性能が悪くなってしまうわけです。
    そこで適切に決定木の深さを決めます。たとえばクロスバリデーション後の誤差が最小になるように決めます。
    R言語のrpartというライブラリでは、クロスバリデーション後の誤差より標準偏差の1倍だけ大きい値より小さくなったときの深さをオススメしています。ただ、基本的にクロスバリデーションの結果が良くなるように深さを決めています。
  3. 目的変数の計算値と実測値との間で、回帰問題であれば決定係数・RMSE (r2C・ RMSEC)を、クラス分類問題であれば混同行列を計算する
    r2Cは目的変数の持つ情報の何割を説明できるモデルかを表します。
    RMSECはモデルのもつ平均的な誤差を表します。
  4. 回帰問題であれば目的変数の実測値と計算値とのプロットを確認する
  5. 決定木のルールを確認する
    構築した決定木を確認してどのようなルールで割り振りが行われているか確認する
  6. [新しいデータの推定をするとき] 上の1.2.で学習された決定木により目的変数の推定値を計算する