web-dev-qa-db-ja.com

決定木とニューラルネットワーク

私は機械学習構造を実装して、銀行などの金融システムの不正を試して予測しています...これは、モデルのトレーニングに使用できるさまざまなデータがたくさんあることを意味します。カード番号、カード名義人、金額、国など...

この問題に最適な構造を決定するのに苦労しています。決定木についてはある程度の経験がありますが、現在、この種の問題に対してニューラルネットワークの方が適しているかどうかを疑問視し始めています。また、他の方法が最善の場合は、遠慮なく教えてください。

各構造の長所と短所はどれですか。また、この問題に最適な構造はどれですか。

また、このことについてはよくわかりませんが、実行速度の点で、ディシジョンツリーはニューラルネットワークよりも優れていると思います。このプロジェクトでは速度も重要な要素であるため、これは重要です。

21
Topo

これら2つには多くの違いがありますが、実際には、速度、解釈可能性、および精度という3つの主要な考慮事項があります。

決定木

  • トレーニング後は、より高速になるはずです(ただし、両方のアルゴリズムは、正確なアルゴリズムとデータの量/次元に応じて、ゆっくりとトレーニングできます)。これは、決定木は本質的に有用ではない入力特徴を「捨てる」のに対し、ニューラルネットは前処理ステップとして特徴選択を行わない限り、それらすべてを使用するためです。
  • モデルが何をしているかを理解することが重要である場合、ツリーは非常に解釈可能です。
  • データの軸に平行な分割であるモデル関数のみがこれに該当しない場合があります。
  • あなたはおそらく Prune ツリーを過剰適合を避けるために確実にしたいでしょう。

ニューラルネット

  • 遅くなり(トレーニングと分類の両方)、解釈が難しくなります。
  • データがストリームに到着した場合、(本質的にバッチ学習アルゴリズムを使用する決定木とは異なり)確率的勾配降下法で増分更新を行うことができます。
  • より多くの任意の関数(非線形相互作用など)をモデル化できるため、十分なトレーニングデータがあれば、より正確になる可能性があります。しかし、それは同様に過剰適合する傾向があります。

両方を実装して、データに対していくつかの実験を実行して、どちらが良いかを確認し、実行時間をベンチマークすることをお勧めします。または、 Weka GUIのようなものを使用して、データの代表的なサンプルを使用して両方の方法をテストしてみることもできます。

また、意思決定ツリーで「バギング」または「ブースト」アルゴリズムを使用すると、ある程度の単純さと速度を維持しながら精度が向上する可能性もあります。しかし、要するに、速度と解釈可能性が本当に重要である場合、ツリーはおそらく開始点です。それ以外の場合は、状況に応じて、経験的な調査を行う必要があります。

26
burr