私はより良い予測力をもたらすかもしれない分類木に代わるものを探しています。
私が扱っているデータには、説明変数と説明変数の両方の要因があります。
このコンテキストでランダムフォレストとニューラルネットワークに出くわしたことを覚えていますが、以前に試したことはありませんが、このようなモデリングタスクの別の良い候補はありますか(明らかにRで)?
私はより良い予測力をもたらすかもしれない分類木に代わるものを探しています。
私が扱っているデータには、説明変数と説明変数の両方の要因があります。
このコンテキストでランダムフォレストとニューラルネットワークに出くわしたことを覚えていますが、以前に試したことはありませんが、このようなモデリングタスクの別の良い候補はありますか(明らかにRで)?
回答:
ランダムフォレスト(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とデータ削減手法を効率的に組み合わせるようです。
参照資料
常に他のアルゴリズムよりも優れているアルゴリズムは存在しないことに留意することが重要です。WolpertとMacreadyが述べたように、「考えられるすべての問題のパフォーマンスを平均すると、どの2つのアルゴリズムも同等です。」(詳細については、ウィキペディアを参照してください。)
特定のアプリケーションにとって、「最適な」アプリケーションとは、一般的に、アプリケーションが行う仮定、処理できるデータの種類、表現できる仮説などに関してアプリケーションに最も近いものです。
そのため、次のような基準に従ってデータを特徴付けることをお勧めします。
これらに答えることで、一部のアルゴリズムを削除し、他のアルゴリズムを潜在的に関連があるものとして特定し、最終的には有用であるとインテリジェントに選択した候補メソッドの小さなセットになります。
簡単な答えを与えないで申し訳ありませんが、それでもなお助けになることを願っています!
マルチクラス分類の場合、サポートベクターマシンも適切な選択です。通常、このためにR kernlabパッケージを使用します。
適切な議論については、次のJSSペーパーを参照してください。http://www.jstatsoft.org/v15/i09/
kernlab
へe1071
。
既に述べたように、ランダムフォレストは自然な「アップグレード」であり、最近では、SVMを使用することが推奨されています。
SVMに切り替えると非常に残念な結果が得られるよりも頻繁に追加したいと思います。事柄は、ランダムツリーのような手法は使用するのはほとんど簡単ですが、SVMは少し複雑です。
SVMを初めて使用したときに、このペーパーは非常に貴重であることがわかりました(サポートベクタークラシック化の実践ガイド)http://www.csie.ntu.edu.tw/~cjlin/papers/guide/guide.pdf
Rでは、SVMにe1071パッケージを使用できます。これは、事実上の標準(少なくともフリーソフトウェアでは!)libSVMライブラリにリンクします。
Naive Bayes分類器を見てみる価値があります。Rでは、パッケージe1071およびklaRで単純ベイズ分類を実行できます。