SVR Regressor rbf(回帰分析)【Pythonとscikit-learnで機械学習:第19回】

SVR(rbf)回帰によって、連続データを線形回帰分析する手法を、実装・解説します。

本記事ではrbfカーネルを適用した回帰手法を紹介します。

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

直線ではフィッティングできないデータに対して、SVR rbfを使用することが推奨されています。

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

[scikit-learnのマップ]

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

です。

SVR rbfの実装

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

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

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

赤色がSVR rbfの結果です。

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

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

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

# 解説3:SVR rbfを適用する——————————–
clf_svr = svm.SVR(kernel=’rbf’, C=1e3, gamma=0.1, epsilon=0.1)

ここでSVR回帰を指定しています。

カーネルはrbfを指定しています。

Cはペナルティ項の係数です。

gammaはrbfカーネルの形を決めています。

epsilonは回帰直線からどれだけ離れたらペナルティをかけるかを指定します。

それでは「結局、SVR rbfって何をやっていたの?」を説明します。

SVRの心

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

scikit-learnのSVRの解説ページ

scikit-learnのSVRの解説ページ2

SVRについては前回記事と同じです。

今回はただカーネルの形が違うだけとなります。

SVR Regressor Linear(回帰分析)【Pythonとscikit-learnで機械学習:第18回】
SVR(Linear)回帰によって、連続データを線形回帰分析する手法を、実装・解説します。本...

 

以上、Pythonとscikit-learnで学ぶ機械学習入門|第19回:SVR rbf回帰での回帰分析でした。

次回はensemble手法による非線形回帰について説明します。

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