アンサンブルメソッドの実装方法を学習するためのリソース


13

私はそれらがどのように機能するか(理論的に)は理解していますが、アンサンブル法(投票、加重混合など)を実際に使用する方法はわかりません。

  • アンサンブルメソッドを実装するための優れたリソースは何ですか?
  • Pythonでの実装に関する特定のリソースはありますか?

編集:

コメントに関する議論に基づいていくつかを整理するために、randomForestなどのアンサンブルアルゴリズムを探していません。代わりに、異なるアルゴリズムの異なる分類をどのように組み合わせることができるのか疑問に思っています。

たとえば、誰かがロジスティック回帰、SVM、およびその他の方法を使用して、特定の観測のクラスを予測するとします。これらの予測に基づいてクラスの最適な推定値を取得するための最善の方法は何ですか?

回答:


12

始めるのに適した場所は、アンサンブル学習の概要を知ることです。特にブースティングバギングを見たいでしょう。別の方法は、Netflix Prizeの「The Ensemble」チームが使用する方法で、「ブレンド」または機能スタッキングと呼ばれます。

次に、それらを実装し、そこから機能するライブラリを見つけます。クイックグーグルでscikitorangeが表示されましたが、どちらもバギングとブーストが必要です(両方ともPythonです)。

アンサンブルメソッドを使用するだけでなく、少し理論を学びたい場合は、このペーパーが出発点として適していると思います(関心のある部分のリファレンスに従ってください)。

乾杯。


(+1)ワオ、ここに素晴らしい参考文献:O!
ステフェン

ありがとう。私が知っている数少ないトピックの1つについて何かを投稿しようとしています。
スタンピージョーピート

4

「データマイニングのアンサンブル手法:予測の組み合わせによる精度の向上」、SeniとElder-実用的なアンサンブルの理論と実装に関する優れたリファレンスですが、付随するコードはRベースです。

「Machine Learning:An Algorithmic Perspective」S.Marsland-優れたPythonベースの実用的なテキストですが、最初のリファレンスほど純粋なアンサンブルコンセプトに専念しているわけではありません。


2

Stumpy Joe Peteの応答は完璧でしたが、Pythonの実装について言及したので、ペルナンブコ連邦大学の醸造プロジェクトについて言及したいと思いました。

https://github.com/viisar/brew

from brew.base import Ensemble
from brew.base import EnsembleClassifier
from brew.combination import import Combiner

# create your Ensemble
clfs = your_list_of_classifiers # [clf1, clf2]
ens = Ensemble(classifiers = clfs)

# create your Combiner
# the rules can be 'majority_vote', 'max', 'min', 'mean' or 'median'
comb = Combiner(rule='majority_vote')

# now create your ensemble classifier
ensemble_clf = EnsembleClassifier(ensemble=ens, combiner=comb)
ensemble_clf.predict(X)

この時点で、それらにはアンサンブルの生成、組み合わせ、プルーニング、および動的選択があります。

制限:分類のみ。現在の公開バージョンではスタックなし。多くのドキュメント。


0

Salford Systemsには、分類および回帰ツリーアンサンブル用にこれを実装するRandom Forestsというソフトウェアパッケージがあります。提供する無料のRパッケージはありません。実装について説明するユーザーマニュアルがあると思います。類推すると、おそらく他のアンサンブルメソッドでそれを行う方法を理解できます。


2
ツリーのアンサンブル用の優れたRパッケージが多数あります。たとえば、randomForest(クラシックアルゴリズム)、party :: cforest(条件付き推論ツリーを使用したランダムフォレスト)、gbm(ツリーの勾配ブースティング)などです。私は、分類器/回帰に依存しないアンサンブルを実装したいとOPを読みました。もちろん最も簡単な手順は、予測を平均化することです。
B_Miner

@B_Miner Rには利用可能な実装があることを知ってうれしいです。誰かがPythonの特定の実装が望ましい理由を説明できるかもしれません(Rについての私の無知を許してください)。アンサンブルメソッドを実装する方法を説明するソースを知りたいOPを読みます。Salfordパッケージは、ドキュメントが含まれている可能性があることを認識していました。
マイケルR.チャーニック

フロイントとシャピレの論文に基づいていますが、ツリー分類器を使用して最良の結果が得られたことを知っている限り、ブースティングは一般的に機能します。
マイケルR.チャーニック

個人的には、確率の単純な平均化によって本当に良い結果が得られますが、私のドメインはクラスラベルを選ぶよりも確率に興味があります。
B_Miner

@MichaelChernick本当に集中的な予測作業(Kaggleコンテストなど)を行っている場合、ブーストフォレストまたはランダムフォレストを選択することはありません。役立つモデルをできるだけ多く集めたいと思うでしょう(通常は複数あります)。したがって、そのコンテキストでは、ランダムフォレストが他の何よりも優れている場合でも、他のアンサンブルメソッドが重要になります。
スタンピージョーピート


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