Ensemble regressor(回帰分析)【Pythonとscikit-learnで機械学習:第20回】

アンサンブル回帰によって、連続データを線形回帰分析する手法を、実装・解説します。

本記事ではアンサンブル回帰のBaggingRegressorを適用した回帰手法を紹介します。

BaggingRegressorを使用することで、非線形な回帰分析が可能になります。

SVR rbf回帰分析は以下のscikit-learnマップの黒矢印に対応します。

[scikit-learnのマップ]

目的変数の量を求める→サンプル数10万以下→説明変数xの特徴量のすべてが重要→通常の回帰分析がうまくいかない→[Ensemble Regressors]

です。

Ensemble Regressors

直線でうまく回帰分析できない例として、sin波からデータを生成し、BaggingRegressorを適用します。

実装コードは以下の通りです。

結果は次の通りになります。

水色がSVR rbfの結果です。

直線ではなく、カクカクの線でフィッティングされていることが分かります。

また元のsin波とも近い結果です。

実装コードを解説します。

# 解説3:BaggingRegressorを適用する——————————–
reg = ensemble.BaggingRegressor(tree.DecisionTreeRegressor(), n_estimators=100, max_samples=0.3)

ここで決定木を指定しています。

データ数(50個)から30%を使用して、決定木で回帰直線を作成します。

これを100本作成して、全決定木から多数決で予測値を決定します。

それでは「結局、アンサンブル回帰って何をやっていたの?」を説明します。

アンサンブル回帰の心

正確な情報は以下をご覧ください。

scikit-learnのアンサンブルの解説ページ

scikit-learnのBagging Regressorの解説ページ

アンサンブル手法については、クラス分類と同じになります。

今回はただ回帰になっているだけです。

ランダムフォレスト(クラス分類)Ensemble Classification【Pythonとscikit-learnで機械学習:第6回】
クラス分類問題において、非線形な識別を可能にするランダムフォレストを用いた手法について、実装・解説します。 ...

 

以上、Pythonとscikit-learnで学ぶ機械学習入門|第20回:アンサンブル回帰での回帰分析でした。

次回はPCAによる次元圧縮について説明します。

【目次】Python scikit-learnの機械学習アルゴリズムチートシートを全実装・解説
scikit-learnのアルゴリズムチートマップで紹介されている手法を、全て実装・解説してみました。 ...