SSブログ

アップリフトモデルを作るコツと注意点6 機械学習のモデル(決定木)を使う失敗例 [データサイエンス、統計モデル]

アップリフトモデルを作るコツと注意点をまとめたいと思います。
複数回にわたり機械学習モデルを見ていきます。
今回は、決定木を使い予測モデルを構築していきたいと思います。

決定木といってもそのアルゴリズムを使うか、また、親枝葉や小枝葉の最小レコード数をどう設定するか?で分岐の様子が異なってきます。

まずは、デフォルトで木の停止規則を設定した場合は下記となります。


一本の線に見えますが、クーポンを配布した予測値とクーポンを配布しない予測値が同じ予測値となっています。

正しい集計結果は、こうでした。


何が起こっているかといえば、予測変数の重要度を見ると、xの方がクーポンの特徴量より重要度が高いです。
そのため、まずは、xを使い木を成長していきます。
次に、クーポンの特徴量を使うかどうかです。

親枝葉や小枝葉の最小レコード数が大きい設定だったため、クーポンの変数を使うことができずに、木の成長が停止してしまいました。

それなら、親枝葉や小枝葉の最小レコード数を小さい値に設定してみてはどうだろうか?



今度は、クーポンを配布した予測値とクーポンを配布しない予測値が別々に出てきました。
しかし、細かい分岐になってしまっており、x=4, 5, 6となるにつれ、予測値も微妙に変化しています。
また、x=5の方がx=6よりも大きな値になっています。

決定木は、xが増えるとyの値が単調に増えるとか減るといった制約を入れることができません。

感覚的には、決定木は細かいパラメータの設定は必要なものの、SVMほど変な予測値を出してこないイメージがあります。
使い方として、まず最初に決定木を使い、何が起こっているかを大枠で把握する。
その後で、もう少し精度の高い予測モデルを使用する、というアプローチが良い気がします。


~その他の記事~
アップリフトモデルを作るコツと注意点
1. アップリフトモデルとは
https://skellington.blog.ss-blog.jp/2019-11-12

2. アップリフトモデルを作るコツと注意点2 単純なロジスティック回帰を使う失敗例
https://skellington.blog.ss-blog.jp/2019-11-13

3. アップリフトモデルを作るコツと注意点3 2つの予測モデルを使う失敗例
https://skellington.blog.ss-blog.jp/2019-11-14

4. アップリフトモデルを作るコツと注意点4 交互作用ありのモデルを使う失敗例
https://skellington.blog.ss-blog.jp/2019-11-15

5. アップリフトモデルを作るコツと注意点5 機械学習のモデル(SVM)を使う失敗例
https://skellington.blog.ss-blog.jp/2019-11-16

6. アップリフトモデルを作るコツと注意点6 機械学習のモデル(決定木)を使う失敗例
https://skellington.blog.ss-blog.jp/2019-11-17

7. アップリフトモデルを作るコツと注意点7 機械学習のモデル(ニューラルネットワーク)を使う失敗例
https://skellington.blog.ss-blog.jp/2019-11-18

8. アップリフトモデルを作るコツと注意点8 階層ベイズロジットモデル
https://skellington.blog.ss-blog.jp/2019-11-19

nice!(0)  コメント(0) 
共通テーマ:学問