skullfang 關注
0.32018.01.19 15:18
字數 913
閱讀 39599
喜歡 13
分類問題的評價指標是準確率,那麼回歸演算法的評價指標就是mse,rmse,mae、r-squared。下面一一介紹
mse (mean squared error)叫做均方誤差。看公式
這裡的y是測試集上的。
用 真實值-**值 然後平方之後求和平均。
rmse(root mean squard error)均方根誤差。
這不就是mse開個根號麼。有意義麼?其實實質是一樣的。只不過用於資料更好的描述。
例如:要做房價**,每平方是萬元(真貴),我們**結果也是萬元。那麼差值的平方單位應該是 千萬級別的。那我們不太好描述自己做的模型效果。怎麼說呢?我們的模型誤差是 多少千萬?。。。。。。於是乾脆就開個根號就好了。我們誤差的結果就跟我們資料是乙個級別的可,在描述模型的時候就說,我們模型的誤差是多少萬元。
mae(平均絕對誤差)
不用解釋了吧。
上面的幾種衡量標準針對不同的模型會有不同的值。比如說**房價 那麼誤差單位就是萬元。數子可能是3,4,5之類的。那麼**身高就可能是0.1,0.6之類的。沒有什麼可讀性,到底多少才算好呢?不知道,那要根據模型的應用場景來。
看看分類演算法的衡量標準就是正確率,而正確率又在0~1之間,最高百分之百。最低0。很直觀,而且不同模型一樣的。那麼線性回歸有沒有這樣的衡量標準呢?答案是有的。
那就是r squared也就r方
光看這些東西很懵逼,其中分子是residual sum of squares 分母是 total sum of squares
那就看公式吧
懵逼(x2)
慢慢解釋。其實這個很簡單。
上面分子就是我們訓練出的模型**的所有誤差。
下面分母就是不管什麼我們猜的結果就是y的平均數。(瞎猜的誤差)
那結果就來了。
如果結果是0,就說明我們的模型跟瞎猜差不多。
如果結果是1。就說明我們模型無錯誤。
如果結果是0-1之間的數,就是我們模型的好壞程度。
如果結果是負數。說明我們的模型還不如瞎猜。(其實導致這種情況說明我們的資料其實沒有啥線性關係)
化簡上面的公式
分子分母同時除以m
那麼分子就變成了我們的均方誤差mse,下面分母就變成了方差。
具體模型**就不給了。只說這個幾種衡量標準的原始**。
y_preditc=reg.predict(x_test) #reg是訓練好的模型
mse_test=np.sum((y_preditc-y_test)**2)/len(y_test) #跟數學公式一樣的
rmse_test=mse_test ** 0.5
mae_test=np.sum(np.absolute(y_preditc-y_test))/len(y_test)
1- mean_squared_error(y_test,y_preditc)/ np.var(y_test)
from sklearn.metrics import mean_squared_error #均方誤差
from sklearn.metrics import mean_absolute_error #平方絕對誤差
from sklearn.metrics import r2_score#r square
#呼叫mean_squared_error(y_test,y_predict)
mean_absolute_error(y_test,y_predict)
r2_score(y_test,y_predict)
回歸模型評價指標
回歸模型應用場景 趨勢分析 投資風險分析等 1 mae mean absolute error 平均絕對差值 2 mse mean square error 均方誤差,是回歸任務最常用的效能度量,最小二乘估計也是使用均方誤差 3 log對數損失函式 邏輯回歸 交叉熵損失,其實是由最大似然估計推導而來...
線性回歸模型評價指標
線性回歸不難,可是它裡面涉及到的一些指標卻很繁雜,關於評價回歸模型的指標在模型評價裡面有介紹,這裡主要介紹一些沒有涉及到的一些其他指標公式之類的東西。rss y1 0 1 x1 2 y2 0 1 x2 2 yn 0 1 xn 2 rss y 1 hat beta 0 hat beta 1 x 1 2...
Python 線性回歸分析以及評價指標
利用 diabetes資料集來學習線性回歸 diabetes 是乙個關於糖尿病的資料集,該資料集包括442個病人的生理資料及一年以後的病情發展情況。資料集中的特徵值總共10項,如下 年齡 性別 體質指數 血壓 s1,s2,s3,s4,s4,s6 六種血清的化驗資料 但請注意,以上的資料是經過特殊處理...