モデルの融合と予測の融合

モデルの融合と予測の融合




1. モデル融合改善技術

  • モデルの融合とは、最初に個々の学習者のグループを生成し、次にそれらを特定の戦略と組み合わせてモデルの効果を強化することです。
  • なぜモデルフュージョンなのか? 分析の結果、アンサンブル内の個々の分類器の数 T が増加すると、アンサンブル学習器の誤り率が指数関数的に減少し、最終的にはゼロになる傾向があることがわかりました。融合により「互いの強みを学び、弱みを補う」効果が得られ、個々の学習者の利点を組み合わせることで予測誤差を低減し、モデル全体のパフォーマンスを最適化することができます。と、个体学习器的准确性越高、多样性越大,模型融合的提升效果就越好。
  • 個々の学習者の関係に応じて、モデル融合手法は 2 つのカテゴリに分類できます。
    1. 個々の学習者間で不存在强依赖关系同時に生成できる手法で并行化Bagging 方法とで表されます随机森林
    2. 個々の学習者間で生成する存在强依赖关系必要がある串行シリアル化メソッド。Yes を表しますBoosting 方法

1.バギング法とランダムフォレスト

  • バギング法は、抽样得到以下の図に示すように、トレーニング セット内の各ベース モデルに必要なサブトレーニング セットから開始し、すべてのベース モデルの予測結果を合成し続けて、最終的な予測結果を生成します。バギング法では、セルフサービス サンプリング
    ここに画像の説明を挿入法 (ブートストラップ サンプリング) を使用します。つまり、m 個のサンプルの元のトレーニング セットに対して、毎回最初に随机采集一个样本放入采样集、次に サンプル を使用放回します。つまり、サンプルは次のサンプルでも収集される可能性があります。 m 個のサンプルが収集されるようにサンプリングし、最終的に m 個のサンプルを取得できます。ランダムサンプリングであるため、各サンプリング セットは元のトレーニング セットや他のサンプリング セットとは異なり、複数の異なる弱学習器を取得できます。( 注意,原始数据集 m 个样本,采集的新数据集也是 m 个样本)
    ※ランダムフォレストは Bagging 法を改良したものであり、その改良点は次の 2 点である; 基本学习器限定为决策树Bagging に加えて样本上加扰动属性上也加上扰动決定木の学習過程にランダムな属性選択を導入することに相当する。基本決定木の各ノードについて、ノードの属性セットから k 個の属性を含むサブセットがランダムに選択され、このサブセットから最適な属性が選択されて分割されます。

2. 昇圧方法

  • Boosting メソッドのトレーニング プロセスは段階的です。つまり、ベース モデルが 1 つずつ順番にトレーニングされ (実装は並列化できます)、ベース モデルのトレーニング セットは毎回特定の戦略に従って変換され、その後、すべての基本モデルの予測結果は線形に統合され、次の図に示すように最終的な予測結果が生成されます。
    ここに画像の説明を挿入
  • Boosting 法のよく知られたアルゴリズムには、AdaBoost アルゴリズムと Boosting Tree シリーズのアルゴリズムが含まれます。ブースティング ツリー シリーズのアルゴリズムの中で最も広く使用されているのは、以下で簡単に紹介する勾配ブースティング ツリー (Gradient Boosting Tree) です。
    1. AdaBoost アルゴリズム: 加算モデル、損失関数が指数関数、学習アルゴリズムが順分布アルゴリズムの場合の二値分類アルゴリズムです。
    2. ブースティングツリー: 加算モデルと学習アルゴリズムが順分配アルゴリズムで、基本学習器が決定木に限定された場合のアルゴリズムです。二項分類問題の場合、損失関数は指数関数です。これは、AdaBoost アルゴリズムの基本学習器が二項決定木に限定されることを意味します。回帰問題の場合、損失関数は二乗誤差であり、フィッティングは現在のモデルの残り。
    3. 勾配ブースティング ツリー: ブースティング ツリー アルゴリズムの改良版です。ブースティング ツリー アルゴリズムは、指数関数および二乗誤差としての誤差関数にのみ適しており、一般的な損失誤差の場合、勾配ブースティング アルゴリズムは、現在のモデルの損失関数の負の勾配の値を近似値として使用できます。残り物。

2. 予測結果融合戦略

1. 投票

  • 投票(投票の仕組み)にはソフト投票とハード投票があり、その原理は少数派が多数派に従うという考え方を採用しており、分類問題の解決に利用できます。
    1. ハード投票: 複数のモデルに直接投票し、最も多くの票を獲得したクラスが最終的に予測されたクラスになります。
    2. ソフト投票: ハード投票と同じ原理ですが、重みを設定する機能が追加されています。これにより、モデルごとに異なる重みを設定し、異なるモデルの重要性を区別できます。

2. ソフト投票のコード例:

ソフト投票コード例のリンク

3. 和ランキングの平均化

  • 平均化の原理は、モデル結果の平均を最終予測値として使用することであり、加重平均法も使用できます。しかし、問題もあります。異なる回帰手法の予測結果の変動幅が比較的大きい場合、変動が小さい回帰結果は融合において比較的小さな役割を果たすことになります。
  • ランキングの考え方は平均化の考え方と一致しています。上記の平均方法には問題があるため、ここではランキングを平均する方法を採用しています。重みがある場合は、n 個のモデルの重み比ランキングの合計が計算され、それが最終結果となります。

4. ブレンド

  • ブレンディングとは、元のトレーニング セットを 2 つの部分に分割することです。たとえば、データの 70% を新しいトレーニング セットとして、残りの 30% をテスト セットとして使用します。
  • 最初の層では、データの 70% を使用して複数のモデルをトレーニングし、残りの 30% のデータのラベルを予測します。2 番目の層では、最初の層のデータの 30% の結果を新しい特徴として直接使用し、トレーニングを続けます。
  • Blending 的优点:Blending 比 Stacking 简单(不用进行 k 次交叉验证来获得 stacker feature),避开了一些信息泄露问题,因为 generlizers 和 stacker 使用了不一样的数据集。
  • Blending 的缺点:
    1. 使用了很少的数据(第二阶段的 blender 只是用了训练集10%的数据量)。
    2. blender 可能会过拟合。

    说明:对于实践中的结果而言,Stacking 和 Blending 的效果差不多。

5. Stacking

  • Stacking 的基本原理是用训练好的所有基模型对训练集进行预测,将第 j 个基模型对第 i 个训练样本的预测值作为新的训练集中第 i 个样本的第 j 个特征值,最后基于新的训练集进行训练。同理,预测的过程也要先经过所有基模型的预测形成新的测试集,最后对测试集进行预测,如下图所示:
    ここに画像の説明を挿入
  • Stacking 是一种分层模型集成框架。以两层为例:第一层由多个基学习器组成,其输入为原始的训练集;第二层的模型则是以第一层学习器的输出作为训练集进行训练,从而得到完整的 Stacking 模型。Stacking 两层模型都使用了全部的训练集数据。
  • 下面举例进一步说明:
    1. 有训练集和测试集两组数据,并将训练集分成5份:train1, train2, train3, train4, train5。
    2. 选定基模型。这里假定我们选择了 xgboost,lightgbm,randomforest 作为基模型。比如 xgboost 模型部分,依次用 train1, train2, train3, train4, train5 作为验证集,其余4份作为训练集,然后5折交叉验证进行模型训练,再在测试集上进行预测。这样会在得到在练集上由 xgboost 模型训练出来的5份 predictions 和测试集上的1份预测值 B1,然后将5份 predictions 纵向重叠合并起来得到 A1。lightgbm 和 randomforest 模型部分同理,如下图所示:
      ここに画像の説明を挿入
  1. 3 つの基本モデルのトレーニングが完了した後、トレーニング セット上の 3 つのモデルの予測値がそれぞれ 3 つの「特徴」A1、A2、および A3 として使用され、LR モデルがトレーニングに使用され、 LRモデルが確立されました。
  2. トレーニングされた LR モデルを使用して、3 つのベース モデルのテスト セットで予測された「特徴」値 (B1、B2、B3) に基づいて予測を行い、最終的に予測されたカテゴリまたは確率を取得します。

説明: スタッキングの過程で、第 1 層モデルの予測値と元の特徴を組み合わせて第 2 層モデルの学習を行うと、モデルの効果が向上し、モデルの過学習も防止できます。 。

3. その他の改善方法

  • 重みまたは特徴の重要性の分析を通じて、重要なデータ、フィールド、および関連する特徴の方向を正確に見つけることができ、この方向での改良を続けることができます。同時に、この方向でより多くのデータを見つけることができ、また、関連する機能を組み合わせて実行すると、モデルのパフォーマンスが向上します。
  • Bad-Case 分析を通じて、不正確な予測を含むサンプル ポイントを効果的に見つけ、データを逆分析して関連する理由を見つけ、モデルの精度を向上させる方法を見つけることができます。

おすすめ

転載: blog.csdn.net/weixin_51524504/article/details/130103545