- バギング (Bagging): バギングは、複数の予測モデルを独立に学習し、それぞれの予測結果を組み合わせる手法です。たとえば、ランダムフォレストはバギングの一種です。異なる特徴量の組み合わせやサンプリング手法を使用して複数の予測モデルを作成し、最終的な予測結果を得ることができます。
from sklearn.ensemble import RandomForestClassifier
# ランダムフォレストのモデルを作成
model = RandomForestClassifier(n_estimators=10)
# モデルの学習
model.fit(X_train, y_train)
# 予測結果の取得
predictions = model.predict(X_test)
- ブースティング (Boosting): ブースティングは、複数の予測モデルを順番に学習し、前のモデルの予測結果に基づいて次のモデルを学習する手法です。有名なブースティングアルゴリズムには、勾配ブースティング (Gradient Boosting) や AdaBoost があります。
from sklearn.ensemble import GradientBoostingClassifier
# 勾配ブースティングのモデルを作成
model = GradientBoostingClassifier(n_estimators=100)
# モデルの学習
model.fit(X_train, y_train)
# 予測結果の取得
predictions = model.predict(X_test)
- スタッキング (Stacking): スタッキングは、複数の予測モデルを組み合わせて新しいモデルを作成する手法です。個々のモデルの予測結果を特徴量として使用し、最終的な予測を行います。スタッキングは、異なるタイプのモデルを組み合わせることができるため、予測の多様性を高めることができます。
from sklearn.ensemble import StackingClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.tree import DecisionTreeClassifier
from sklearn.svm import SVC
# 個々のベースモデルを作成
estimators = [
('lr', LogisticRegression()),
('dt', DecisionTreeClassifier()),
('svc', SVC())
]
# スタッキングモデルを作成
model = StackingClassifier(estimators=estimators, final_estimator=LogisticRegression())
# モデルの学習
model.fit(X_train, y_train)
# 予測結果の取得
predictions = model.predict(X_test)
これらはアンサンブルモデルの一部の例です。他にも様々な手法やモデルがありますので、問題やデータに応じて適切な手法を選択してください。アンサンブルモデルは、予測の精度を向上させるために強力な手法です。