回帰評価指標
1.回帰アルゴリズム評価
どのモデルが良いモデルであるかをどのように評価しますか?
目標の達成度を評価する必要があります
実際の値とモデル予測値の差に基づく評価方法=>Loss関数を使用します.
例)RSS、MSE、MAE、MAPE、R^2
2.RSS-単純誤差
実績値と予測値の単純誤差二乗和
損失に類似
値が小さいほど、モデルのパフォーマンスが向上します.
すべてのデータの実績値と予測値の誤差二乗の合計.
2番と3番に続くフィーチャー->データの元の値自体が大きい場合、RSS値も大きくなり、予測されたデータが非常に近い場合でも大きくなります.どちらのモデルがいいかはあいまいです.
3.MSE、MAE-絶対寸法指標
Mean Squared Error
平均二乗誤差、RSSでデータ数で割った値
小さいほど、モデルのパフォーマンスが向上します.
習ったLoss関数と同じ数式...
=>Lossはモデルで減らさなければならない値(それだけ)であり,その形状は必ずしもそうではない.計算のためで、特定の指標ではありません!
MSEは指標であり、Lossはそのモデルで減少した値と目標でなければならない.
我々が学んだモデルは,回帰モデルでは通常MSEをLossとして用いているが,他の場所ではLossとして他のものを用いてもよい.(分類ではEntropyと呼ぶ)
MAE Mean Absolute Error
平均絶対値誤差、実績値および予測値誤差の絶対値の平均.
小さいほど、モデルのパフォーマンスが向上します.
特長
4.R^2 R square(決定係数)
回帰モデル記述能力を表す指標
1に近い場合は、よりパフォーマンスの高いモデルとして解釈できます.
!絶対値は比較できます!
1-予測値との差二乗和(RSS)/平均値との差二乗和(TSS)
予測が良ければ良いほどRSS値は小さくなるので、1に近いほど予測レベルが単純平均値に相当する場合は0に近く、予測結果が単純平均値に及ばない場合はRSSがTSSより大きくなるため、決定係数値は負になる可能性がある.
特長
5.実習
販売予測モデルの性能を評価するために,複数の回帰アルゴリズム評価指標を用いて比較する.
本実験では,学習と評価のためのデータのMSEとMAEを計算する.
MSEとMAEはsklearningライブラリ関数で簡単に入手できます.
MSE、MAE評価指標を計算する側運転関数/ライブラリ
mean squared error(y true,y pred):MSE値の計算
mean absolute error(y true,y pred):MAE値の計算
説明
train XデータのMSE、MAE値を計算し、MSE trainおよびMAE trainに格納します.
test XデータのMSE、MAE値を計算し、MSE testおよびMAE testに格納します.
import numpy as np
import pandas as pd
from sklearn.linear_model import LinearRegression
from sklearn.metrics import r2_score
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_absolute_error
from sklearn.metrics import mean_squared_error
# 데이터를 읽고 전 처리합니다
df = pd.read_csv("data/Advertising.csv")
df = df.drop(columns=['Unnamed: 0'])
X = df.drop(columns=['Sales'])
Y = df['Sales']
train_X, test_X, train_Y, test_Y = train_test_split(X, Y, test_size=0.2, random_state=42)
# 다중 선형 회귀 모델을 초기화 하고 학습합니다
lrmodel = LinearRegression()
lrmodel.fit(train_X, train_Y)
# train_X 의 예측값을 계산합니다
pred_train = lrmodel.predict(train_X)
"""
1. train_X 의 MSE, MAE 값을 계산합니다
"""
MSE_train = mean_squared_error(train_Y, pred_train)
MAE_train = mean_absolute_error(train_Y, pred_train)
print('MSE_train : %f' % MSE_train)
print('MAE_train : %f' % MAE_train)
# test_X 의 예측값을 계산합니다
pred_test = lrmodel.predict(test_X)
"""
2. test_X 의 MSE, MAE 값을 계산합니다
"""
MSE_test = mean_squared_error(test_Y,pred_test)
MAE_test = mean_absolute_error(test_Y,pred_test)
print('MSE_test : %f' % MSE_test)
print('MAE_test : %f' % MAE_test)
販売予測モデルの性能を評価するために,複数の回帰アルゴリズム評価指標を用いて比較する.本実験では,学習と評価のためのデータのR 2 scoreを計算する.
R 2 scoreは以下のように定義でき、sklearningライブラリ関数で簡単に入手できます.
R 2評価指標を計算するための中間実行関数/ライブラリ
r2_score(y_true, y_pred)
:R 2 score値計算説明
train XデータのR 2値を算出し、R 2 trainに格納する.
test XデータのR 2値を計算し、R 2 testに保存します.
import numpy as np
import pandas as pd
from sklearn.linear_model import LinearRegression
from sklearn.metrics import r2_score
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_absolute_error
from sklearn.metrics import mean_squared_error
# 데이터를 읽고 전 처리합니다
df = pd.read_csv("data/Advertising.csv")
df = df.drop(columns=['Unnamed: 0'])
X = df.drop(columns=['Sales'])
Y = df['Sales']
train_X, test_X, train_Y, test_Y = train_test_split(X, Y, test_size=0.2, random_state=42)
# 다중 선형 회귀 모델을 초기화 하고 학습합니다
lrmodel = LinearRegression()
lrmodel.fit(train_X, train_Y)
# train_X 의 예측값을 계산합니다
pred_train = lrmodel.predict(train_X)
"""
1. train_X 의 R2 값을 계산합니다
"""
R2_train = r2_score(train_Y,pred_train)
print('R2_train : %f' % R2_train)
# test_X 의 예측값을 계산합니다
pred_test = lrmodel.predict(test_X)
"""
2. test_X 의 R2 값을 계산합니다
"""
R2_test = r2_score(test_Y,pred_test)
print('R2_test : %f' % R2_test)
Reference
この問題について(回帰評価指標), 我々は、より多くの情報をここで見つけました https://velog.io/@danceintherain/회귀-평가-지표テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol