単独では精度の低い単純なモデル(弱学習器)を多数組み合わせて使い、精度を高める手法。
・手っ取り早くそれなりのモデルが欲しい場合→ランダムフォレストなどのバギングを使う。
・精度の高いモデルが欲しい場合→LightGBMなどのブースティングを使う。


●バギング(Bagging)
アンサンブル学習を代表するアルゴリズム。
学習データの中から決められた回数分のデータを抽出して、データセットを作る。
データセットから、少しずつ異なる弱学習器をたくさん作り、並列に学習させた後、すべての結果を統合する。
一つひとつの弱学習器の偏りを相殺するため、バリアンスを抑える効果がある
代表的な手法はランダムフォレスト

決められた回数分のデータを抽出する方法をブートストラップ法という。
抽出したデータのばらつきが小さいと、精度が上がらないおそれもある。
最終的な予測は、各結果の平均値である。


●ブースティング(Boosting)
代表的なアンサンブル学習の手法。
データから、決められた回数分、一部を抽出して弱学習器を作成する。
弱学習器を1つずつ順番に構築する。
次に作る弱学習器は、最初の弱学習器で誤判別したデータに重みを増やして、次の新しい弱学習器を構築する際に利用し、その部分を重点的に学習するため、バギングより精度が高いが、バリアンスが高くなりやすい。
バイアスは下がりやすいが、過学習は起きやすい。
アダブースト、勾配ブースティング回帰木、XGboost、LightGBMが有名。
最終的な予測は、各結果の重量の平均である。


●スタッキング(Stacking)
複数の学習器を使うアンサンブル学習の手法。
ランダムフォレストや勾配ブースティングなどを使って、複数のモデルを用意する。
(できるだけ多くの種類の計算方法を用いてモデルを作成する方が精度が向上する。)
モデルから予測値を出力したら、予測値をまとめたメタモデルを作成する(計算法に決まりはない)。
メタモデルから、最終的な予測(モデルを線形結合)を導き出す。

ランダムフォレストだけ、などすべて同じアルゴリズムで作成することもできるが、様々なアルゴリズムを使った方が精度が上がりやすいとされているが、必ずしもそうとは限らない。
モデルが複雑になりやすく、手間のかかる手法。


●Max Voting
複数の異なる分類器を組み合わせて、多数決や予測の平均投票を使用し、結果を予測する。

●Weighted Average Voting(重量平均投票)
複数の異なる分類器を組み合わせて、多数決や予測の重量平均投票を使用し、結果を予測する、