# 前回のプログラムの読込
%run 1.ipynb
# 線形回帰のトレーニングデータとテストデータの平均二乗誤差
float(score1), float(score2)
(0.165, 10.038)
SVR
# サポートベクターマシン回帰のとき
from sklearn.svm import SVR
model = SVR(gamma='auto')
score5, score6 = calc_score(model)
float(score5), float(score6) # トレーニングデータとテストデータの平均二乗誤差
(3.195, 5.675)
線形回帰のときは、(0.165, 10.038)です。
サポートベクターマシン回帰のときは、(3.195, 5.675)になり、汎化性能が高くなっています。
ランダムフォレスト
# ランダムフォレスト回帰のとき
from sklearn.ensemble import RandomForestRegressor
model = RandomForestRegressor(n_estimators=20, random_state=0)
score7, score8 = calc_score(model)
float(score7), float(score8) # トレーニングデータとテストデータの平均二乗誤差
(1.030, 5.907)
線形回帰のときは、(0.165, 10.038)
です。
ランダムフォレスト回帰のときは、(1.030, 5.907)
になり、汎化性能が高くなっています。
このように、回帰分析のモデルによって汎化性能の違いが見られます。
また、ここでは、平均二乗誤差を評価規準にしましたが、他の評価規準を選ぶことでも汎化性能が変わってきます。
コメント