機械学習とデータサイエンスの作業は、単にデータを Python ライブラリに渡して処理し、処理された結果を使用するだけではありません。この記事では、ブートストラップを使用してモデルの堅牢性を向上させるいくつかの方法について簡単に紹介します。 データ サイエンティストは、成功するシステムを実装するために、データとその処理方法を真に理解する必要があります。 重要なアプローチは、モデルがブートストラップからどのようなメリットを得られるかを理解することです。これがアンサンブルモデルです。アンサンブル モデルの例としては、AdaBoost や Stochastic Gradient Boosting などがあります。 アンサンブルモデルを使用する理由は何ですか? アルゴリズムの精度やモデルの堅牢性を向上させるのに役立ちますか?アンサンブル学習は実証済みの方法ですか?ブースティングとバギングは、データ サイエンティストと機械学習エンジニアが知っておく必要があるトピックです。特に、データサイエンス/機械学習の面接に参加する予定がある場合。 本質的に、アンサンブル学習は「統合」されています。アンサンブル学習では、同じアルゴリズムを使用する数百または数千のモデルを使用して、正しい分類を見つけます。 アンサンブル学習を理解する別の方法は、「盲人と象」です。それぞれの盲人は象の特徴を一つ発見し、その象は別のものだと考えます。しかし、集まって話し合うことで、象が本当はどのような姿をしているのかがわかるかもしれません。 ブースティングやバギングなどの手法を使用すると、統計モデルの堅牢性が向上し、分散が低減されます。 それで、質問は、B で始まるこれらの単語 (Bootstrapping/Bagging/Boosting) の違いは何でしょうか? ブートストラップ まず、非常に重要な概念であるブートストラップについてお話ししましょう。多くのデータ サイエンティストがブースティングとバギングを直接説明するとき、ブースティングとバギングの両方が必要であるため、ブートストラップを思い出すことがあります。 図1 ブートストラップ 機械学習において、ブートストラップ法とは、復元抽出法によるランダムサンプリングを指します。これは、モデルまたはアルゴリズムが、その中に存在するバイアス、分散、特性をよりよく理解できるようにする再サンプリングです。データをサンプリングすると、再サンプルに全体に含まれるバイアスとは異なるバイアスを含めることができます。図 1 に示すように、各サンプル グループには異なる部分があり、互いに異なります。これは、データセットの全体的な平均、標準偏差、およびその他の記述指標に影響します。その結果、より堅牢なモデルの開発につながります。 ブートストラップは、過剰適合する傾向がある小さなデータセットにも役立ちます。実際、私たちは、データセットが「ビッグデータ」とは程遠い、ある興味深い企業にこれを推奨しました。この場合、ブートストラップが解決策となります。ブートストラップを使用するアルゴリズムはより堅牢であり、選択した方法論 (ブースティングまたはバギング) に従って新しいデータセットを処理できるためです。 Bootstrap を使用する理由は、ソリューションの安定性をテストできるためです。複数のサンプル データセットを使用して複数のモデルをテストすると、堅牢性が向上します。おそらく、1 つのサンプル データ セットの平均値が他のものよりも大きいか、標準偏差が異なっている可能性があります。このアプローチでは、過剰適合したモデルや、異なる分散のデータセットでテストされていないモデルを識別できます。 ブートストラッピングがますます普及している理由の 1 つは、コンピューティング能力の向上です。以前よりも再編曲やリサンプリングが増えています。 Bagging と Boosting はどちらも Bootstrapping を使用します。これについては以下で詳しく説明します。 袋詰め Bagging は実際には Bootstrap Aggregator を指します。バギング アルゴリズムの使用について言及しているほとんどの論文や記事では、かつて「バギング予測子」(1996 年) という論文を執筆した Leo Breiman が引用されています。 レオはバギングについて次のように説明しています。 「バギング予測子は、予測子の複数のバージョンを生成し、集約された予測子を生成する方法です。」 バギングの目的は、トレーニング データに対してのみ正確なモデルの分散 (オーバーフィッティングとも呼ばれる状況) を減らすことです。 関数がデータに適合しすぎると、過剰適合が発生します。通常、これは実際の数式が複雑すぎて、すべてのデータ ポイントと外れ値を考慮することができないためです。 図2. 過剰適合 過剰適合が発生しやすい別のアルゴリズムは、決定木です。決定木を使用して構築されたモデルには、非常に単純なヒューリスティックが必要です。決定木は、特定の順序で並べられた一連の if-else ステートメントで構成されます。したがって、あるデータセットが新しいデータセットに変更されると、新しいデータセットでは、以前のデータセットの基本的な機能に多少の偏差や違いが生じる可能性があります。モデルが正確であるはずがありません。その理由は、データをうまく適合させることができないためです (前方アサーション)。 バギングは、サンプリングと置換を使用してデータに独自の分散を作成し、同時に複数の仮説 (モデル) をテストすることで、この問題を回避します。ノイズは、おそらく異なる属性を持つデータで構成される複数のサンプルを使用することで低減されます。 各モデルが仮説を提案するまで。これらのモデルでは、分類には投票を使用し、回帰には平均化を使用します。ここで、「集約」と「ブートストラップ集約」が役立ちます。各仮説の重みは同等です。これは、バギング手法とブースティング手法の違いの 1 つです。 図3. 袋詰め 基本的に、これらのモデルはすべて同時に実行され、どの仮説が最も正確であるかを投票で決定します。 これにより、分散が低減され、過剰適合が軽減されます。 ブースト ブースティングとは、加重平均を使用して弱い学習者を強化するアルゴリズムのグループを指します。バギングとは異なり、各モデルは個別に実行され、出力はどのモデルも優先せずに集計されます。ブースティングは「チームの努力」です。各モデルは、次のモデルがどの機能に重点を置くかを決定します。 ブースティングにはブートストラップも必要です。しかし、ここにはもう一つの違いがあります。バギングとは異なり、ブースティングは各データ サンプルに重みを追加します。これは、一部のサンプルが他のサンプルよりも頻繁に実行されることを意味します。 図4. ブースティング モデルでブースティングを実行すると、どのデータ サンプルが成功し、どのデータ サンプルが失敗したかが追跡されます。誤分類された出力が最も多いデータセットには、より高い重みが与えられます。つまり、データはより複雑になり、モデルを適切にトレーニングするにはより多くの反復が必要になります。 実際の分類フェーズでブースティングがモデルを処理する方法にも違いがあります。ブースティングは、より優れたモデルにはより優れた重み付けが与えられるため、モデルのエラー率を追跡します。 そうすれば、「投票」が行われるときに、より良い結果をもたらすモデルが最終的に出力を支配する可能性が高くなります。 要約する ブースティングとバギングは分散を効果的に減らすことができます。アンサンブル法は、多くの場合、単一モデルよりも優れたパフォーマンスを発揮します。これが、多くの Kaggle 受賞者がアンサンブル手法を使用する理由です。 ただし、これらはすべての問題に適しているわけではなく、それぞれに欠点があります。バギングは、モデルが過剰適合しているときに分散を効果的に減らすことができますが、2 つのうちではブースティングの方がより良い選択肢となる可能性があります。ブースティングはパフォーマンスの問題を引き起こす可能性が高くなりますが、モデルの適合度が低い場合にバイアスを減らすのにも効果的です。 これには経験と専門知識が必要です。最初のモデルを正常に動作させることは簡単かもしれませんが、アルゴリズムとそれが選択するすべての機能を分析することが非常に重要です。たとえば、決定木に特定の葉が設定されている場合、その設定の理由は何でしょうか?他のデータ ポイントやグラフでサポートできない場合は、おそらく実装しない方がよいでしょう。 これは、さまざまなデータセットで AdaBoost または Random Forest を試すだけではありません。アルゴリズムの傾向と受けたサポートに基づいて、どのアルゴリズムを使用するかを決定する必要があります。 |
>>: TensorFlow を使用して Android デバイスでディープラーニング推論を実装する方法
人工知能(AI)は私たちが住む世界を急速に変えています。医療から金融まで、人工知能は産業を変革し、私...
この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...
この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...
[[384196]]今日は、ビッグデータ、人工知能、認知問題の解決の関係ロジックについて話す記事を書...
10月17日、老舗テクノロジー大手の百度が「文心大モデル4.0」を発表し、すでに激動していた百機種...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
実際、すべてのプログラミング言語の中で、Python は新しいお気に入りではありません。最初のバージ...
[[422257]]この記事はLeiphone.comから転載したものです。転載する場合は、Leip...
ロボットは、高齢の両親を助けたり、子供を教育したり、料理をしたりすることができます。ロボット産業は創...
[51CTO.com クイック翻訳] データサイエンスに対する人々の関心は過去 5 年間で大幅に高ま...
[[416531]]この記事はLeiphone.comから転載したものです。転載する場合は、Lei...
ジェフ・ディーン氏は数万語に及ぶ長文の記事を公開し、過去1年間のGoogleのさまざまな分野での成果...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...