回答:
デシジョンツリースタイルのモデルのアンサンブルのロバスト性の多くは、常に、見た範囲の定数値を予測するという事実から来ているというのは、それほど一般的ではないと思います。
データの外れ値は通常、最後のリーフのデータの最高値/最低値と一緒に集中するだけで、奇妙な予測を引き起こしたり、係数を捨てたりすることはありません。
また、線形モデルと同じくらい多重共線形性の問題もありません。
実装でこれらの問題に対処することができますが、必要なスムーズさが得られるまで、ブーストまたはバギングを使用してアンサンブルにツリーを追加する方がおそらく簡単で堅牢です。
Ciampiの先駆的な取り組みから始まり、LohのGUIDEが続き、さらにGamaの機能ツリーまたはモデルベースの再帰的なパーティション分割アプローチも、この数十年にわたってかなりの数の研究がありました。この質問に対する@Momoの回答に、すばらしい概要が記載されています。回帰ツリーのターミナルノードでのGLMの利点は何ですか。
観察すると、対応するソフトウェアは、単純な定数適合ツリーほど広く使用されていません。これの理由の一部は、おそらく書くのがより困難であるが、使用するのもより困難であると考えられます。単純なCARTモデルよりも多くの仕様が必要です。しかし、ソフトウェアは利用可能です(以前にここで@marqramまたは@Momoが指摘したように、各リーフに線形回帰モデルを使用した回帰ツリーアルゴリズム)。著名なソフトウェアパッケージは次のとおりです。
WekaスイートにはM5P
、連続応答の(M5 ' LMT
)、バイナリ応答の(ロジスティックモデルFT
ツリー)、カテゴリカル応答の(機能ツリー)があります。詳細については、http://www.cs.waikato.ac.nz/~ml/weka/を参照してください。前者の2つの機能は、Rパッケージを介して簡単にインターフェースすることもできますRWeka
。
LohのGUIDE実装は、http://www.stat.wisc.edu/~loh/guide.htmlからバイナリ形式で無料で(ただしソースコードなしで)入手できます。幅広い制御オプションにより、メソッドの詳細を変更できます。
私たちのMOB(MOdelベースの再帰的パーティショニング)アルゴリズムは、Rパッケージpartykit
(party
実装の後継)で利用できます。このmob()
関数は一般的なフレームワークを提供し、ツリーのノード/リーフに簡単にフィットできる新しいモデルを指定できるようにします。便利なインターフェースlmtree()
とglmtree()
組み合わせるmob()
とlm()
とglm()
直接利用可能とに示されていますvignette("mob", package = "partykit")
。ただし、他のプラグインも定義できます。たとえば、https://stackoverflow.com/questions/37037445/using-mob-trees-partykit-package-with-nls-model mob()
はと組み合わされていnls()
ます。ただし、さまざまな心理測定モデル(psychotree
)とベータ回帰()の「暴徒」もいbetareg
ます。
私はこれだけを行う方法を見つけました(葉に平均値の代わりに線形回帰が含まれている決定木)。それらはモデルツリー[1]と呼ばれ、例はwekaのM5P [2]アルゴリズムです。M5Pでは、線形回帰は各リーフにあります。
編集:私は同じようなことをする別のパッケージ/モデルを見つけました、そして私のデータセットに非常に良い結果を与えるようです:cubist。Rでの実装は、cubistパッケージ[3]によって提供されます。キュビストは、M5Pとそれが「インスタンスベースの修正」と呼ぶものにブーストエンセンブルを追加します。
[1]:Torgo、L.回帰ツリーの葉の機能モデル。第14回機械学習に関する国際会議の議事録、pp。385–393。モーガンカウフマン、1997年。
[2]:M5P http://weka.sourceforge.net/doc.dev/weka/classifiers/trees/M5P.html
[3]:CubistモデルCubist:ルールベースおよびインスタンスベースの回帰モデリングhttps://cran.r-project.org/web/packages/Cubist/index.html