前回の続きです。
Pythonのscikit-learnによる分類をまとめました。
今回は、アンサンブル学習(勾配ブースティング、ランダムフォレスト、バギング、投票、スタッキング、アダブースト)を用いた分類を行います。
勾配ブースティング
GradientBoostingClassifier
https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.GradientBoostingClassifier.html
from sklearn.datasets import load_iris
from sklearn.ensemble import GradientBoostingClassifier # GradientBoostingClassifierのインポート
X, y = load_iris(return_X_y=True)
model = GradientBoostingClassifier().fit(X, y)
model.score(X, y)
スコアは1.0でした。
HistGradientBoostingClassifier
https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.HistGradientBoostingClassifier.html
from sklearn.datasets import load_iris
from sklearn.ensemble import HistGradientBoostingClassifier # HistGradientBoostingClassifierのインポート
X, y = load_iris(return_X_y=True)
model = HistGradientBoostingClassifier().fit(X, y)
model.score(X, y)
スコアは1.0でした。
ランダムフォレスト
RandomForestClassifier
https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html
from sklearn.datasets import load_iris
from sklearn.ensemble import RandomForestClassifier # RandomForestClassifierのインポート
X, y = load_iris(return_X_y=True)
model = RandomForestClassifier().fit(X, y)
model.score(X, y)
スコアは1.0でした。
ExtraTreesClassifier
https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.ExtraTreesClassifier.html
from sklearn.datasets import load_iris
from sklearn.ensemble import ExtraTreesClassifier # ExtraTreesClassifierのインポート
X, y = load_iris(return_X_y=True)
model = ExtraTreesClassifier().fit(X, y)
model.score(X, y)
スコアは1.0でした。
バギング
BaggingClassifier
https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.BaggingClassifier.html
from sklearn.datasets import load_iris
from sklearn.ensemble import BaggingClassifier # BaggingClassifierのインポート
X, y = load_iris(return_X_y=True)
model = BaggingClassifier().fit(X, y)
model.score(X, y)
スコアは0.9866666666666667でした。
投票
VotingClassifier
https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.VotingClassifier.html
from sklearn.datasets import load_iris
from sklearn.ensemble import GradientBoostingClassifier # GradientBoostingClassifierのインポート
from sklearn.ensemble import RandomForestClassifier # RandomForestClassifierのインポート
from sklearn.ensemble import BaggingClassifier # BaggingClassifierのインポート
from sklearn.ensemble import VotingClassifier # VotingClassifierのインポート
X, y = load_iris(return_X_y=True)
gb = GradientBoostingClassifier()
rf = RandomForestClassifier()
bc = BaggingClassifier()
model = VotingClassifier(estimators=[('gb', gb), ('rf', rf), ('bc', bc)]).fit(X, y)
model.score(X, y)
スコアは1.0でした。
スタッキング
StackingClassifier
https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.StackingClassifier.html
from sklearn.datasets import load_iris
from sklearn.ensemble import GradientBoostingClassifier # GradientBoostingClassifierのインポート
from sklearn.ensemble import RandomForestClassifier # RandomForestClassifierのインポート
from sklearn.ensemble import BaggingClassifier # BaggingClassifierのインポート
from sklearn.ensemble import StackingClassifier # StackingClassifierのインポート
X, y = load_iris(return_X_y=True)
gb = GradientBoostingClassifier()
rf = RandomForestClassifier()
bc = BaggingClassifier()
model = StackingClassifier(estimators=[('gb', gb), ('rf', rf), ('bc', bc)]).fit(X, y)
model.score(X, y)
スコアは1.0でした。
アダブースト
AdaBoostClassifier
https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html
from sklearn.datasets import load_iris
from sklearn.ensemble import AdaBoostClassifier # AdaBoostClassifierのインポート
X, y = load_iris(return_X_y=True)
model = AdaBoostClassifier().fit(X, y)
model.score(X, y)
スコアは0.96でした。
これらの分類モデルについてさらに勉強し、適切に使い分けられるようになりたいです。