予測ツリー(CVなど)のパフォーマンスが向上した分類ツリーの代替手段


23

私はより良い予測力をもたらすかもしれない分類木に代わるものを探しています。

私が扱っているデータには、説明変数と説明変数の両方の要因があります。

このコンテキストでランダムフォレストとニューラルネットワークに出くわしたことを覚えていますが、以前に試したことはありませんが、このようなモデリングタスクの別の良い候補はありますか(明らかにRで)?


5
ニューラルネットワークを気にしないでください。これは時代遅れの技術です。

1
@mbqあなたはまだこの声明を支持していますか?
菱形十二

@rhombidodecahedron確かに、2010年からNNで遊んでみてください。それに、どのDLモデルでも(おそらく)このような小さなサイズのデータ​​を持つテーブルに何かをもたらすとは思いません。

回答:


25

ランダムフォレスト(randomForest)を試してみる価値があると思います。関連する質問への回答として、いくつかの参照が提供されました。機械学習で相互検証を実行する際の「最終」モデルの機能選択CARTモデルを堅牢にすることはできますか?。ブースト/バギングは、小さな摂動に非常に敏感であることが知られている単一のCARTよりも安定します。一部の著者は、ペナルティのあるSVMまたは勾配ブースティングマシンと同様に機能すると主張しました(たとえば、Cutler et al。、2009を参照)。確かにNNよりも優れていると思います。

BoulesteixとStroblは、最適な分類子の選択におけるいくつかの分類子とエラー率推定における負のバイアスの素晴らしい概要を提供しています:高次元予測に関する実証的研究(BMC MRM 2009 9:85)。IV EAMミーティングで別の良い研究を聞いたことがあります。これは、Statistics in Medicineでレビューされるべきです。

JoãoMaroco、Dina Silva、Manuela Guerreiro、Alexandre deMendonça。ランダムフォレストはニューラルネットワーク、サポートベクターマシン、判別分析分類器よりも優れていますか?認知complaint訴のある高齢患者における認知症への進化の事例研究

キャレットパッケージも気に入っています。十分に文書化されており、同じデータセットのさまざまな分類子の予測精度を比較できます。いくつかのユーザーフレンドリーな機能で、トレーニング/テストサンプル、計算精度などを管理します。

Friedman and coll。のglmnetパッケージはペナルティ付きGLMを実装しているため(Journal of Statistical Softwareのレビューを参照)、よく知られたモデリングフレームワークのままです。

それ以外の場合は、関連付けルールに基づいた分類子を探すこともできます(それらの一部については、機械学習の CRANタスクビューまたはデータマイニングのトップ10アルゴリズムを参照してください)。

エルベ・アブディの判別コレスポンデンス分析であるR(実際にはMatlabコード)で再実装する予定の別の興味深いアプローチに言及したいと思います。当初は多くの説明変数(最終的にコヒーレントブロックにグループ化される)を使用した小標本研究に対処するために開発されましたが、従来のDAとデータ削減手法を効率的に組み合わせるようです。

参照資料

  1. カトラー、A。、カトラー、DR、スティーブンス、JR(2009)。ツリーベースの方法がん研究における高次元データ分析、Li、X。およびXu、R。(編)、pp。83-101、Springer。
  2. Saeys、Y.、Inza、I。、およびLarrañaga、P.(2007)。バイオインフォマティクスにおける特徴選択技術のレビュー。バイオインフォマティクス、23(19):2507-2517。

2
+1すばらしい回答。キャレットの推奨にも同意します。
シェーン

12

常に他のアルゴリズムよりも優れているアルゴリズムは存在しないことに留意することが重要です。WolpertとMacreadyが述べたように、「考えられるすべての問題のパフォーマンスを平均すると、どの2つのアルゴリズムも同等です。」(詳細については、ウィキペディアを参照してください。)

特定のアプリケーションにとって、「最適な」アプリケーションとは、一般的に、アプリケーションが行う仮定、処理できるデータの種類、表現できる仮説などに関してアプリケーションに最も近いものです。

そのため、次のような基準に従ってデータを特徴付けることをお勧めします。

  • 非常に大きなデータセットまたは控えめなデータセットがありますか?
  • 次元は高いですか?
  • 変数は数値(連続/離散)またはシンボリック、またはミックス、および/または必要に応じて変換できますか?
  • 変数は大部分が独立しているか、非常に依存している可能性がありますか?
  • 冗長、ノイズ、または無関係な変数がある可能性がありますか?
  • 生成されたモデルを検査し、それを理解しようとすることができますか?

これらに答えることで、一部のアルゴリズムを削除し、他のアルゴリズムを潜在的に関連があるものとして特定し、最終的には有用であるとインテリジェントに選択した候補メソッドの小さなセットになります。

簡単な答えを与えないで申し訳ありませんが、それでもなお助けになることを願っています!


2
+1引用が大好きです。(「考えられるすべての問題のパフォーマンスを平均すると、どの2つのアルゴリズムも同等になります。」)
アサドエブラヒム

8

マルチクラス分類の場合、サポートベクターマシンも適切な選択です。通常、このためにR kernlabパッケージを使用します。

適切な議論については、次のJSSペーパーを参照してください。http//www.jstatsoft.org/v15/i09/


@Talこれは、SVM RFの公平な(またはそうだと思う)レビューです:ランダムフォレストとマイクロアレイベースのがん分類j.mp/ab7U8Vのサポートベクターマシンの包括的な比較。また、私は好むkernlabe1071
chl

2
@chlこの論文は、SVMの学習の観点から作成されたものは好きではありません。また、付録2は、SVMワークフローをRFに適用することがいかに悪いかを示しています。しかし、カーネルトリック(一般的なRFにはないが、一般的にはできないことを意味するわけではありません)のために、SVMをほぼ常にRFを上回るように調整できることに同意しますが、指数関数的に最適化の努力が増えています。

@mbq実際、これは良い点です。
chl

3

既に述べたように、ランダムフォレストは自然な「アップグレード」であり、最近では、SVMを使用することが推奨されています。

SVMに切り替えると非常に残念な結果が得られるよりも頻繁に追加したいと思います。事柄は、ランダムツリーのような手法は使用するのはほとんど簡単ですが、SVMは少し複雑です。

SVMを初めて使用したときに、このペーパーは非常に貴重であることがわかりました(サポートベクタークラシック化の実践ガイド)http://www.csie.ntu.edu.tw/~cjlin/papers/guide/guide.pdf

Rでは、SVMにe1071パッケージを使用できます。これは、事実上の標準(少なくともフリーソフトウェアでは!)libSVMライブラリにリンクします。


2
kernlabは最適化にもlibsvmを使用しているため、その意味で大きな違いはありません(ただし、柔軟性ははるかに高いです)。
シェーン

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.