アンサンブル法の簡単な分析

アンサンブル法の簡単な分析

パーソナライズされた推奨システムは、金融、電子商取引、メディア、ライブ放送などの業界における Daguan Data の主力製品の 1 つです。 Daguan Data のパーソナライズされた推奨システム アーキテクチャは、5 層アーキテクチャに簡単に分けられ、各層は対応するデータを処理し、次の層に出力して使用します。

  • データ処理層

推奨システムの末端にあるデータ処理層として、その主な機能は、まず顧客がアップロードした一部の無駄なノイズデータをクリーンアップしてフィルタリングし、推奨システムに必要なデータをデータストレージ層にインポートすることです。

  • データストレージ層

アイテムデータは一般的に MySQL に保存されます。アイテムデータの量が増えると、スケーラビリティの点では MySQL よりも HBase と Hive の方が適しています。Hive を使用すると、オフライン分析操作が容易になります。リアルタイム モジュールや、リアルタイム要件が高いプロセス同期に関連する一部のモジュールでは、キャッシュとして Redis が役立ちます。プロデューサーは、コンシューマーが読み取れるようにデータを Redis に書き込みます。

  • 候補セットを生成する

協調フィルタリング、コンテンツベース、クリックフィードバック、ホットデータなどの一連の基本アルゴリズムを通じて、各ユーザー向けにパーソナライズされた候補セットを生成します。

  • 融合候補セット

各アルゴリズムによって生成された候補セットの項目は、一連のルールに従って融合され、フィルタリングされます。

  • 並べ替え

融合されフィルタリングされたアイテムセットは、特定のアルゴリズムを使用して再ソートされ、ソートされた結果がユーザーに出力されます。ここでは、LR や GBDT などの機械学習関連のモデルとアルゴリズムがよく使用されます。

この記事では、再ランキングに使用されるアンサンブル学習アルゴリズム (アンサンブル法) の簡単な分析に焦点を当てます。

アンサンブル学習の概要

アンサンブル学習アルゴリズム自体は、独立した機械学習アルゴリズムではなく、複数の機械学習マシンを構築して組み合わせることで学習タスクを完了します。各流派の長所を融合したものであり、機械学習アルゴリズムにおいてより高い精度率を実現できると言えます。欠点は、モデルのトレーニングプロセスがより複雑になる可能性があり、効率があまり高くないことです。現在、一般的なアンサンブル学習アルゴリズムには、バギングベースのアルゴリズムとブースティングベースのアルゴリズムの 2 つがあります。バギングベースの代表的なアルゴリズムにはランダム フォレストが含まれ、ブースティングベースの代表的なアルゴリズムには Adaboost、GBDT、XGBOOST などがあります。

バギングアルゴリズムに基づく

バギングアルゴリズムは、ブートストラップ集約の略です。主にサンプルトレーニングセットに対してランダムサンプリングを実行し、繰り返しサンプリングを通じて新しいモデルをトレーニングし、最終的にこれらのモデルに基づいて平均を取ります。

  • 基本的な考え方

1. 弱い学習アルゴリズムとトレーニング セットが与えられます。

2. 単一の弱い学習アルゴリズムの精度は高くありません。

3. 学習アルゴリズムを複数回使用して予測関数シーケンスを取得し、投票します。

4.***結果の精度が向上します。

ランダムフォレストを例に詳しく説明します

  • ランダムフォレストの基本原理

ランダムフォレストは、レオ・ブレイマン (2001) によって提案されました。元のトレーニングサンプルセット N から k 個のサンプルを繰り返しランダムに抽出して、新しいトレーニングサンプルセットを生成します。次に、ブートストラップサンプルセットに基づいて k 個の分類ツリーが生成され、ランダムフォレストが形成されます。新しいデータの分類結果は、分類ツリーの投票数によって形成されるスコアによって決定されます。その本質は、複数の決定木を結合する決定木アルゴリズムの改良です。各ツリーの確立は、独立して抽出されたサンプルに依存します。フォレスト内の各ツリーは同じ分布を持ち、分類エラーは各ツリーの分類能力とツリー間の相関関係に依存します。特徴選択では、ランダムな方法を使用して各ノードを分割し、さまざまな状況で生成されたエラーを比較します。選択される特徴の数は、固有の推定誤差、分類能力、および検出できる関連性によって決まります。単一のツリーの分類能力は非常に小さいかもしれませんが、多数の決定木をランダムに生成した後、テストサンプルは各ツリーの分類結果の統計に基づいて最も可能性の高い分類を選択できます。

  • ランダムフォレストアルゴリズムのプロセス

1. トレーニング データから n 個のデータをトレーニング データ入力として選択します。通常、n はトレーニング データの合計 N よりもはるかに小さいため、一部のデータを取得できなくなります。この部分のデータはアウトオブバッグ データと呼ばれ、アウトオブバッグ データはエラー推定に使用できます。

2. 入力トレーニングデータを選択した後、決定木を構築する必要があります。具体的な方法は、各分割ノードが全体の特徴セット M から m 個の特徴を選択して構築することです。通常、m は M よりもはるかに小さくなります。

3. 各決定木を構築する過程で、最小のジニ指数に従って分割ノードを選択することによって決定木が構築されます。決定木の他のノードは、ノードのすべてのトレーニング例が同じクラスに属するか、ツリーの最大深度に達するまで、同じ分割ルールを使用して構築されます。

4. 手順 2 と 3 を複数回繰り返し、各入力データを決定木に対応させてランダ​​ム フォレストを取得し、予測データに基づいて決定を下すために使用します。

5. 入力トレーニングデータを選択し、複数の決定木を構築した後、予測対象データに対して予測を行います。例えば、予測対象データを入力し、複数の決定木が同時に決定を行い、多数決方式でカテゴリ決定を行います。

  • ランダムフォレストノート

1. 決定木を構築するプロセスでは剪定は必要ありません。

2. 森林全体の木の数と各木の特性を手動で設定する必要があります。

3. 決定木を構築する際、分割ノードの選択は最小のジニ係数に基づいて行われます。

ブースティングアルゴリズムに基づく

ブースティングは、一般的に使用されている効果的な統計学習アルゴリズムです。これは、弱い学習器を継続的に使用して、以前の弱い学習器の「不十分さ」を補うことで、より強い学習器を連続的に構築する反復アルゴリズムです。この強い学習器は、目的関数の値を十分に小さくすることができます。

  • 基本的な考え方

1. まず、各トレーニング サンプルに同じ確率を与えます。

2. 次に、T 回の反復を実行します。各反復の後に、誤分類されたサンプルの重み (再サンプル) を増やして、次の反復でこれらのサンプルにさらに注意が払われるようにします。

ブースティング シリーズのアルゴリズムの中で最も人気のあるアルゴリズムは、AdaBoost アルゴリズムとブースティング ツリー シリーズのアルゴリズムです。ブースティング ツリー シリーズで最も広く使用されているアルゴリズムは、勾配ブースティング ツリーです。

代表的なアルゴリズムとしてAdaBoostアルゴリズムを取り上げ、詳しく説明します。

  • 根拠

Adaboost(適応ブースティング:ブースティング+単層決定木)はブースティングにおける代表的なアルゴリズムです。基本的な考え方は、トレーニングデータの分布に基づいて分類器を構築し、エラー率を通じてこの弱い分類器の重みを求めることです。トレーニングデータの分布を更新し、反復回数に達するか損失関数が特定のしきい値未満になるまで反復します。

トレーニングデータセットが

  • アルゴリズムプロセス

バギングアルゴリズムとブースティングアルゴリズムの類似点と相違点

バギング アルゴリズムとブースティング アルゴリズムの両方の中核は、特定の組み合わせ戦略に従って、一連の弱い学習アルゴリズムを 1 つの強い学習アルゴリズムに結合するプロセスです。両者の違いは以下の点にあります。

1. サンプルの選択:

  • バギング: トレーニング セットは元のセットから置換によって選択され、元のセットから選択されたトレーニング セットの各ラウンドは独立しています。
  • ブースティング: 各ラウンドのトレーニング セットは変更されませんが、分類器内のトレーニング セット内の各サンプルの重みが変更されます。重みは、前のラウンドの分類結果に応じて調整されます。

2. サンプル重量:

  • バギング: 各例に等しい重みを持たせた均一なサンプリングを使用します。
  • ブースティング: エラー率に応じてサンプルの重みを継続的に調整します。エラー率が大きいほど、重みが大きくなります。

3. 予測機能:

  • バギング: すべての予測関数に等しい重みが与えられます。
  • ブースティング: 各弱い分類器には対応する重みがあり、分類エラーが小さい分類器には大きな重みが設定されます。

4. 並列コンピューティング:

  • バギング: 個々の予測関数を並列に生成できます。
  • ブースティング: 後続のモデルのパラメータには前のラウンドのモデルの結果が必要であるため、各予測関数は順番にしか生成できません。

アンサンブル学習のための組み合わせ戦略

上の部分では、主に学習者自体に焦点を当てており、学習者間の組み合わせ戦略については触れていません。このセクションでは、平均化法、投票法、学習法など、一般的な組み合わせ戦略を主に紹介します。

  • 平均法

数値回帰予測問題の場合、一般的に使用される組み合わせ戦略は平均化法です。つまり、複数の強学習器と弱学習器の出力を平均して、最終的な予測出力を取得します。最も単純な平均化は算術平均であり、最終的な予測は

  • 投票法

  • 学習方法

前の 2 つのセクションの方法は、弱い学習器の結果を平均化または投票するものであり、比較的単純ですが、学習誤差が大きくなる可能性があるため、学習方法があります。学習方法としては、スタッキングが代表的な方法です。スタッキングの組み合わせ戦略を使用する場合、弱い学習器の結果に対して単純な論理処理を実行するのではなく、別の層の学習器を追加します。つまり、トレーニング セット内の弱い学習器の学習結果を入力として使用し、トレーニング セットの出力を出力として使用して、学習器を再トレーニングして最終結果を取得します。

この場合、弱い学習者を一次学習者、組み合わせに使用される学習者を二次学習者と呼びます。テスト セットでは、最初にプライマリ学習器を使用して 1 回予測し、セカンダリ学習器の入力サンプルを取得し、次にセカンダリ学習器を使用してもう一度予測し、最終的な予測結果を取得します。

要約する

バギングとブースティングはどちらも、複数の分類器を 1 つの分類器に統合するアンサンブル学習手法ですが、統合方法が異なり、最終結果も異なります。以下は、決定木とこれらのアルゴリズム フレームワークを組み合わせた新しいアルゴリズムです。

1. バギング + 決定木 = ランダムフォレスト

2. AdaBoost + 決定木 = ブースト木

3. 勾配ブースティング + 決定木 = GBDT

その中で、GBDT は Daguan データのパーソナライズされた推奨再ランキング層にうまく適用されています。

著者: 陳翔龍

Daguan Dataのデータマイニングエンジニア。復旦大学でコンピューターサイエンスとテクノロジーの学位を取得し、現在は主に大規模な民営化推奨プロジェクトの展開を担当しています。

[この記事は51CTOコラムニスト「Daguan Data」によるオリジナル記事です。転載については51CTOコラムまでご連絡ください]

この著者の他の記事を読むにはここをクリックしてください

<<:  2018 年に人工知能があなたの生活、仕事、遊びに革命を起こす 8 つの方法

>>:  Splunk は 2018 年の人工知能と機械学習の 3 つのトレンドを予測しています

ブログ    
ブログ    

推薦する

...

アルゴリズム図: スタック内の最小値を見つけるにはどうすればよいでしょうか?

[[345846]]この記事はWeChatの公開アカウント「Java Chinese Commun...

...

優れたプレーンテキストモデル? GPT-4は準備完了

2020年5月、GPT-3はGPT-2のリリースから1年後に正式にリリースされました。GPT-2も...

TensorFlow を使用した LSTM モデルの構築に関する詳細なチュートリアル

[[242005]]ターゲットこの記事の目的は、基本的な LSTM モデルを構築するために使用できる...

...

OpenAIの謎の新モデルQ*が暴露された。取締役会に警告するにはあまりにも強力だったため、ウルトラマン解任の導火線になるかもしれない

OpenAI 宮殿ドラマが終わったばかりですが、すぐにまた別の騒動が勃発しました。ロイター通信は、ア...

LinkedIn は、すべてのユーザーに公開される生成 AI 支援投稿作成機能を開始しました。

職場向けソーシャルプラットフォーム「LinkedIn」は6月26日、広告主が生成AIを通じてマーケテ...

最終的にAIによってモザイクが見破られたとき、私たちのプライバシーはどこに隠されるのでしょうか?

[[239842]]モザイクといえば、多くのオタクがそれに腹を立てていると思います。1、2時間かけ...

COVID-19パンデミックは顔認識技術の導入を促進している

COVID-19は顔認識技術の使用にどのような影響を与えるでしょうか? [[374366]] #p#...

スキルマップは、自動運転技術の開発経路が非常にシンプルであることを示しています

2015年8月から現在までに、人工知能、フロントエンド開発、モバイル開発、クラウドコンピューティング...

...

...

...

...