Wekaでのアンサンブル機械学習アルゴリズムの使用

アンサンブルアルゴリズムは、複数のモデルからの予測を組み合わせた強力なクラスの機械学習アルゴリズムです。機械学習にWekaを使用する利点は、非常に多くの異なるアンサンブル機械学習アルゴリズムを利用できることです。

アンサンブルアルゴリズムの概要

上位5つのツアーに参加します。 Wekaのアンサンブル機械学習アルゴリズム。カバーされる各アルゴリズムは、それがどのように機能するかについて簡単に説明され、主要なアルゴリズムパラメータが強調表示され、アルゴリズム自体がWekaExplorerインターフェイスで示されます。

5つのアルゴリズム見ていきます:

  1. バギング
  2. ランダムフォレスト
  3. AdaBoost
  4. 投票
  5. スタッキング

標準の機械学習分類問題を使用して、各アルゴリズムを示します。具体的には、電離層の二項分類問題です。入力変数は数値であり、すべて同じスケールであるため、これは分類アルゴリズムを示すのに適したデータセットです。問題には2つのクラスしか区別できません。

各インスタンスは、大気からのレーダーリターンのプロパティとタスクは、電離層に構造があるかどうかを予測することです。ほぼ同じスケールの34個の数値入力変数があります。このデータセットの詳細については、 UCI機械学習リポジトリをご覧ください。上位の結果は98%程度の精度です。

WekaExplorerを起動します:

  1. WekaGUIチューザーを開きます。
  2. 「Explorer」をクリックします。 」ボタンをクリックしてWekaExplorerを開きます。
  3. data / ionosphere.arff ファイルからIonosphereデータセットをロードします
  4. 「Classify」をクリックして、「Classify」タブを開きます。 。

1。バギング

ブートストラップ集約または略してバギングは、分類または回帰に使用できるアンサンブルアルゴリズムです。ブートストラップは、平均のような統計量がデータの複数のランダムサンプルから推定される統計的推定手法です(置換あり)。これは、データ量が限られていて、統計量のより堅牢な推定に関心がある場合に便利な手法です。

このサンプルの原則は、機械学習モデルで使用できます。トレーニングデータの複数のランダムサンプルが置換されて抽出され、複数の異なる機械学習モデルをトレーニングするために使用されます。次に、各モデルを使用して予測を行い、結果を平均してよりロバストな予測を行います。

バイアスが低く分散が大きいモデルで使用するのが最適です。つまり、予測が行われます。トレーニングの元となった特定のデータに大きく依存しています。この高分散の要件に適合するバギングに最もよく使用されるアルゴリズムは、決定ツリーです。

バギングアルゴリズムを選択します。

  1. [選択]ボタンをクリックして、[バギング]を選択します。 「メタ」グループの下。
  2. アルゴリズムの名前をクリックして、アルゴリズムの構成を確認します。
バギングアルゴリズムのWeka構成

バギングの重要な構成パラメーターは、バギングされるモデルのタイプです。 。デフォルトはREPTreeです。これは、標準の決定木(Classification and Regression Treeまたは略してCARTとも呼ばれます)のWeka実装です。これは分類パラメータで指定されます。

各ランダムサンプルのサイズは、生のトレーニングデータセットのパーセンテージとしてのサイズである「bagSizePercent」で指定されます。デフォルトは100%で、トレーニングデータセットと同じサイズの新しいランダムサンプルが作成されますが、構成が異なります。

これは、ランダムサンプルが置換されて描画されるためです。つまり、毎回インスタンスはトレーニングデータセットからランダムに抽出されてサンプルに追加されます。また、インスタンスはトレーニングデータセットに追加されます。つまり、インスタンスを再度選択して、サンプルに2回以上追加できます。

最後に、バッグの数(および分類子の数)は、「numIterations」パラメーターで指定できます。デフォルトは10ですが、数百または数千の値を使用するのが一般的です。モデルに改善が見られなくなるか、メモリが不足するまで、「numIterations」の値を増やし続けます。

  1. 「OK」をクリックしてアルゴリズム構成を閉じます。
  2. [開始]ボタンをクリックして、Ionosphereデータセットでアルゴリズムを実行します。

デフォルト構成では、バギングが91%の精度を達成していることがわかります。

バギングアルゴリズムのWeka分類結果

2。ランダムフォレスト

ランダムフォレストは、分類または回帰に使用できる決定木のバギングの拡張です。袋詰めされた決定木の欠点は、決定木が、ツリー構築プロセスの各ステップで最適な分割点を選択する欲張りアルゴリズムを使用して構築されることです。そのため、結果として得られるツリーは非常によく似たものになり、すべてのバッグからの予測の分散が減少し、予測の堅牢性が損なわれます。

ランダムフォレストは、袋に入れられた決定木を改善したものです。ツリーの作成中に貪欲な分割アルゴリズムを中断して、入力属性のランダムなサブセットからのみ分割点を選択できるようにします。この単純な変更は、袋に入れられたツリー間の類似性を低下させ、結果として得られる予測に大きな影響を与える可能性があります。

ランダムフォレストアルゴリズムを選択します。

  1. [選択]をクリックします。ボタンをクリックし、「trees」グループの下の「RandomForest」を選択します。
  2. アルゴリズムの名前をクリックして、アルゴリズムの構成を確認します。
ランダムフォレストアルゴリズムのWeka構成

リストされているパラメーターに加えて上記のバギングの場合、ランダムフォレストの重要なパラメータは、各分割ポイントで考慮する属性の数です。 Wekaでは、これは「numFeatures」属性で制御できます。この属性はデフォルトで0に設定されており、経験則に基づいて値が自動的に選択されます。

  1. 「OK」をクリックして、アルゴリズム構成。
  2. [開始]ボタンをクリックして、Ionosphereデータセットでアルゴリズムを実行します。

デフォルト構成では、ランダムフォレストが精度を達成していることがわかります。 92%の割合:

ランダムフォレストアルゴリズムのWeka分類結果

3。 AdaBoost

AdaBoostは、分類問題のためのアンサンブル機械学習アルゴリズムです。これは、ブースティングと呼ばれるアンサンブル手法のグループの一部であり、後続のモデルが前のモデルによって作成された予測エラーを修正しようとする一連の新しい機械学習モデルを追加します。 AdaBoostは、このタイプのモデルの最初の成功した実装でした。

Adaboostは、それぞれが単一の決定点を持つ短い決定木モデルを使用するように設計されました。このような短い木は、しばしば決定断端と呼ばれます。

最初のモデルは、通常どおりに構築されます。トレーニングデータセット内の各インスタンスに重みが付けられ、モデルの全体的な精度と、インスタンスが正しく分類されたかどうかに基づいて重みが更新されます。後続のモデルは、最小の精度が達成されるか、それ以上の改善が不可能になるまでトレーニングおよび追加されます。各モデルはそのスキルに基づいて重み付けされ、これらの重み付けは、新しいデータですべてのモデルからの予測を組み合わせるときに使用されます。

AdaBoostアルゴリズムを選択します。

  1. [選択]ボタンをクリックし、[メタ]グループの下の[AdaBoostM1]を選択します。
  2. アルゴリズムの名前をクリックして、アルゴリズムの構成を確認します。
AdaBoostアルゴリズムのWeka構成

内の弱い学習者AdaBoostモデルは、分類子パラメーターで指定できます。デフォルトは決定切り株アルゴリズムですが、他のアルゴリズムを使用することもできます。弱い学習者に加えて重要なパラメーターは、作成して連続して追加するモデルの数です。これは「numIterations」パラメーターで指定でき、デフォルトは10です。

  1. 「OK」をクリックしてアルゴリズム構成を閉じます。
  2. 「開始」ボタンをクリックして実行します。 Ionosphereデータセットのアルゴリズム。

デフォルト構成では、AdaBoostが90%の精度を達成していることがわかります。

AdaBoostアルゴリズムのWeka分類結果

4。投票

投票はおそらく最も単純なアンサンブルアルゴリズムであり、多くの場合非常に効果的です。分類または回帰の問題に使用できます。投票は、2つ以上のサブモデルを作成することによって機能します。各サブモデルは、予測の平均やモードを取得するなど、何らかの方法で組み合わされた予測を行い、各サブモデルが結果をどうするかについて投票できるようにします。

投票を選択します。アルゴリズム:

  1. [選択]ボタンをクリックし、[メタ]グループの下の[投票]を選択します。
  2. アルゴリズムの名前をクリックして、アルゴリズムの構成を確認します。
投票アンサンブルアルゴリズムのWeka構成

投票アンサンブルの重要なパラメーターは、サブモデルの選択です。モデルは、Wekaの「classifiers」パラメーターで指定できます。このパラメーターをクリックすると、いくつかの分類子を追加できます。

投票アンサンブルアルゴリズムのWekaアルゴリズムの選択

分類子を選択した状態で[編集]ボタンをクリックすると、その分類子の詳細を構成できます。サブモデルを選択する目的は、まったく異なる予測(無相関予測)を行うモデルを選択することです。そのため、ツリー、インスタンスベースのメソッド、関数など、非常に異なるモデルタイプを選択することをお勧めします。

投票用に構成するもう1つの重要なパラメータは、サブモデルが組み合わされます。これは、デフォルトで確率の平均を取るように設定されている「combinationRule」パラメーターによって制御されます。

  1. 「OK」をクリックしてアルゴリズム構成を閉じます。
  2. Ionosphereデータセットでアルゴリズムを実行するための[開始]ボタン。

デフォルトの構成では、Voteが64%の精度を達成していることがわかります。明らかに、ZeroRサブモデルのみが選択されたため、この手法では不十分な結果が得られました。

5。スタッキング

スタッキング一般化または略してスタッキングは、分類と回帰の問題に使用できる投票アンサンブルの単純な拡張です。

複数のサブモデルを選択することに加えて、スタッキングを使用すると、別のモデルを指定して、サブモデルからの予測を最適に組み合わせる方法を学習します。メタモデルはサブモデルの予測を最適に組み合わせるために使用されるため、この手法は、予測をブレンドする場合のように、ブレンドと呼ばれることもあります。

スタッキングアルゴリズムを選択します:

  1. [選択]ボタンをクリックし、[メタ]グループの下の[スタッキング]を選択します。
  2. アルゴリズムの名前をクリックして、アルゴリズムの構成を確認します。
スタッキングアンサンブルアルゴリズムのWeka構成

投票分類器と同様に、分類器パラメーターでサブモデルを指定できます。サブモデルからの予測を最適に組み合わせる方法を学習するためにトレーニングされるモデルは、デフォルトでZeroRに設定されている「metaClassifier」パラメーターで指定できます。回帰および分類タイプの問題には、それぞれ線形回帰またはロジスティック回帰のような線形アルゴリズムを使用するのが一般的です。これは、サブモデルの予測の単純な線形結合である出力を実現するためです。

  1. 「OK」をクリックしてアルゴリズム構成を閉じます。
  2. をクリックします。 「開始」ボタンをクリックして、Ionosphereデータセットでアルゴリズムを実行します。

デフォルト構成では、スタッキングが64%の精度を達成していることがわかります。

スタッキングアンサンブルアルゴリズムのWeka分類結果

もう一度、投票と同じように、ZeroRサブモデルのみが選択されたため、スタッキングの結果は良くありませんでした。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です