RでRuleFitを実行できるパッケージpr
アンサンブル学習は便利だ。
randomForestなりLigthGBMなりXGBoostなり、適当にデータを突っ込んでもそれなりの予測モデルが得られる。
feature importanceという形でどの特徴量が予測に効いているかもわかる。
しかし、どこのセグメントが最も効果的かまでは答えてくれない。
アンサンブル学習に対してそういう問題意識をもっている人は10年前からいるわけで、以下の論文を読んだ(日本語・PDFがダウンロードされるので注意)。
https://ismrepo.ism.ac.jp/?action=repository_uri&item_id=31008&file_id=17&file_no=1
上記論文のイントロにはこうある。
アンサンブル学習法の多くが基本学習器に樹木構造接近法を利用している.その理由は,(1) 比較的簡単に基 本学習器の構成が可能であることと,(2) 説明変数の応答に対する影響を変数重要度という要約統計量で解釈で きること,(3) 計算速度が比較的高速なこと,にある (Friedman & Poescu, 2003).ただし,アンサンブル学習法では,モデルが「ブラックボックス化」されるため,元来,樹木構造接近法がもつ解釈の平易さを犠牲にしてい る.Friedman & Popescu(2008) は,樹木をそのままアンサンブルさせるのではなく,樹木によって構成されるふ し (ルール) をアンサンブルさせることで解釈が平易で,かつ予測力に優れた RuleFit 法を提案している.
RuleFit、便利そうである。
詳しい説明は上の論文に書いてあるのでそちらを参考にしてほしい(日本語)。
機械学習のinterpretabilityについてまとめた以下のサイトにおいても4章で紹介されている。
https://christophm.github.io/interpretable-ml-book/rulefit.html
また、ポチポチ機械学習システムでおなじみのDataRobotでも2番目(トップはXGBoost)によく使われているアルゴリズムらしい。
ということでRで使ってみたい。
RにはRulefitを実行できるパッケージとしてpreがある。
早速exampleを動かしてみよう。
と、ここまで書いて気づいたんだけど、githubの開発レポジトリにグラフィカルな解説があるからそっち読めばいいですよね。
https://github.com/marjoleinF/pre
以上、原著を読め。