深度研究:回歸模型評價指標R2_score

2021-02-20 機器學習算法與Python實戰

回歸模型的性能的評價指標主要有:RMSE(平方根誤差)、MAE(平均絕對誤差)、MSE(平均平方誤差)、R2_score。但是當量綱不同時,RMSE、MAE、MSE難以衡量模型效果好壞。這就需要用到R2_score,實際使用時,會遇到許多問題,今天我們深度研究一下。

預備知識

搞清楚R2_score計算之前,我們還需要了解幾個統計學概念。

若用表示真實的觀測值,用表示真實觀測值的平均值,用表示預測值,則:

回歸平方和:SSR

即估計值與平均值的誤差,反映自變量與因變量之間的相關程度的偏差平方和

殘差平方和:SSE

即估計值與真實值的誤差,反映模型擬合程度

總離差平方和:SST

即平均值與真實值的誤差,反映與數學期望的偏離程度

R2_score計算公式

R^2 score,即決定係數,反映因變量的全部變異能通過回歸關係被自變量解釋的比例。計算公式:

進一步化簡

分子就變成了常用的評價指標均方誤差MSE,分母就變成了方差。

對於可以通俗地理解為使用均值作為誤差基準,看預測誤差是否大於或者小於均值基準誤差。

R2_score = 1,樣本中預測值和真實值完全相等,沒有任何誤差,表示回歸分析中自變量對因變量的解釋越好。

R2_score = 0。此時分子等於分母,樣本的每項預測值都等於均值。

R2_score不是r的平方,也可能為負數(分子>分母),模型等於盲猜,還不如直接計算目標變量的平均值。

r2_score使用方法

根據公式,我們可以寫出r2_score實現代碼

1- mean_squared_error(y_test,y_preditc)/ np.var(y_test)

也可以直接調用sklearn.metrics中的r2_score

sklearn.metrics.r2_score(y_true, y_pred, sample_weight=None, multioutput='uniform_average')
#y_true:觀測值
#y_pred:預測值
#sample_weight:樣本權重,默認None
#multioutput:多維輸入輸出,可選『raw_values』, 『uniform_average』, 『variance_weighted』或None。默認為』uniform_average』;
raw_values:分別返回各維度得分
uniform_average:各輸出維度得分的平均
variance_weighted:對所有輸出的分數進行平均,並根據每個輸出的方差進行加權。

sklearn.metrics.r2_score使用方法

import matplotlib.pyplot as plt
import numpy as np
from sklearn import datasets, linear_model
from sklearn.metrics import r2_score
#導入數據
diabetes_X, diabetes_y = datasets.load_diabetes(return_X_y=True)
diabetes_X = diabetes_X[:, np.newaxis, 2]
#劃分測試集驗證集
diabetes_X_train = diabetes_X[:-20]
diabetes_X_test = diabetes_X[-20:]
diabetes_y_train = diabetes_y[:-20]
diabetes_y_test = diabetes_y[-20:]
# 創建線性回歸模型
regr = linear_model.LinearRegression()
# 訓練模型
regr.fit(diabetes_X_train, diabetes_y_train)
# 預測
diabetes_y_pred = regr.predict(diabetes_X_test)
# 模型評價
print('r2_score: %.2f'
% r2_score(diabetes_y_test, diabetes_y_pred))
# 繪製預測效果圖
plt.scatter(diabetes_X_test, diabetes_y_test, color='black')
plt.plot(diabetes_X_test, diabetes_y_pred, color='blue', linewidth=3)
plt.xticks(())
plt.yticks(())
plt.show()

r2_score: 0.47

r2_score偏小,預測效果一般。

注意事項

1、 一般用在線性模型中(非線性模型也可以用)

2、不能完全反映模型預測能力的高低,某個實際觀測的自變量取值範圍很窄,但此時所建模型的R2 很大,但這並不代表模型在外推應用時的效果肯定會很好。

3、數據集的樣本越大,R²越大,因此,不同數據集的模型結果比較會有一定的誤差,此時可以使用Adjusted R-Square (校正決定係數),能對添加的非顯著變量給出懲罰:

n是樣本的個數,p是變量的個數

Reference

https://zhuanlan.zhihu.com/p/36305931https://blog.csdn.net/Dear_D/article/details/86144696 

相關焦點

  • 在機器學習回歸問題中,你應該使用哪種評估指標?
    如果你像我一樣,你可能會在你的回歸問題中使用R平方(R平方)、均方根誤差(RMSE)和均方根誤差(MAE)評估指標,而不用考慮太多。儘管它們都是通用的度量標準,但在什麼時候使用哪一個並不明顯。R方(R)R代表模型所解釋的方差所佔的比例。R是一個相對度量,所以您可以使用它來與在相同數據上訓練的其他模型進行比較。
  • 回歸問題的3個評估深坑!
    但是,回歸問題評估的實現存在深坑,請一定小心正文 回歸問題的擬合比較簡單,所用到的衡量指標也相對直觀。假設 yi 是第 i 個樣本的真實值,ŷi 是對第 i 個樣本的預測值。在模型評估中,你可以用平方和誤差,通過預測值和真實值之間的平方和大小當做擬合的誤差,模型的目的就是儘可能的降低全部樣本的預測值和真實值之間的誤差。同樣的,在回歸問題中,我們一般通過如下方式計算模型擬合的誤差:▶1.
  • 線性回歸與最小二乘法
    線性回歸模型是使用最廣泛的模型之一,也最經典的回歸模型,如下所示x軸表示自變量x的值,y軸表示因變量y的值,圖中的藍色線條就代表它們之間的回歸模型
  • 從這篇22分+文章入手,帶你深度探討臨床預測模型研究思路
    實際上,研究的先行者們早已經考慮到並構建了方法學來解決這個問題——臨床預測模型。在臨床工作中,我們也時常會用到預測模型來評價患者的風險,如經典預測10年心血管事件風險的Framingham risk score和指導房顫患者抗凝的CHA2DS2-VASc評分。
  • 基於微信公眾號的健康傳播效果評價指標體系研究
    最後,運用統計學方法,分別從傳播廣度和傳播深度兩方面,建立各項指標的多元回歸模型,從而對各指標之間的影響關係進行預測,並修正模型。七健康傳播微信公眾號傳播效果分析(一)總體狀況分析以下以健康傳播公眾號為分析單位,對196個公眾號在一個月時間(31天)內的基本信息和發布情況進行分析。1.
  • 移動新聞客戶端個性化推薦系統的用戶評價指標研究
    因此,本研究以用戶心理體驗為導向,在文獻回顧和深度訪談的基礎上,編制出適用於新聞客戶端推薦系統評價的初始量表,通過預調查和正式調查,並採用探索性因素分析、驗證性因素分析等統計方法對調查結果進行檢驗分析,最終獲取由「內容評價」、「系統評價」、「算法評價」、「交互評價」和「風險與控制評價」等五個一階指標構成的新聞客戶端推薦系統用戶評價量表。
  • 專題研究:基於Carhart四因素模型的基金業績評價
    基於Carhart四因素模型的偏股型基金超額收益指標與其海通綜合評級呈顯著正相關。近三年在380隻偏股型基金中有72.89%能夠通過主動投資管理獲取超額收益,且380隻基金的超額收益能力指標α與基金的海通綜合評級呈現出顯著的正相關性,表明該模型對於基金業績評價具有較高的參考價值。
  • 普林、DeepMind新研究:結合深度學習和符號回歸,從深度模型中看見...
    符號模型緊湊,具備可解釋性和良好的泛化能力,但很難處理高維機器學習問題;深度模型擅長在高維空間中學習,但泛化性和可解釋性卻很差。那麼有沒有什麼辦法可以取二者之所長呢?這項研究做到了。如何將深度模型轉換為符號方程?來自普林斯頓、DeepMind 等機構的研究人員提出了一種解決方案:結合深度學習和符號回歸實現這一目標。
  • 逐步回歸分析調整後r2和模型的顯著性f值_多元線性回歸方程的顯著...
    在實際工作中,一般先進行相關分析,計算相關係數,然後建立回歸模型,最後用回歸模型進行推算或預測。相關分析與回歸分析的區別是:(1)相關分析研究的都是隨機變量,並且不分因變量和自變量;回歸分析研究的變量要定義出自變量和因變量,並且自變量是確定的普通變量,因變量是隨機變量。
  • 普林,DeepMind新研究:結合深度學習符號回歸,深度模型中看見宇宙
    符號模型緊湊,具備可解釋性和良好的泛化能力,但很難處理高維機器學習問題;深度模型擅長在高維空間中學習,但泛化性和可解釋性卻很差。那麼有沒有什麼辦法可以取二者之所長呢?這項研究做到了。如何將深度模型轉換為符號方程?來自普林斯頓、DeepMind 等機構的研究人員提出了一種解決方案:結合深度學習和符號回歸實現這一目標。符號模型是自然科學的語言。
  • 機器學習模型評估指標Python代碼示例
    通常,我們在實際的數據科學工作流中兩次使用機器學習模型驗證指標:模型比較:為您的任務選擇最佳機器學習(ML)模型模型改進:調整超參數為了更清楚地了解這兩者之間的區別,讓我通過機器學習(ML)實現的工作流程來解釋。
  • 多元線性回歸與模型診斷
    回歸方程的模型擬合度在進行回歸模型之前,我們可以計算總的波動誤差如下:    在運用回歸模型後,總誤差可以分解為以下兩種自變量選擇偏差的權衡(1)丟失重要變量(2)加入無關變量變量係數的估計偏差(大樣本,無關變量會收斂於0)增加了模型參數估計的不確定性增加了R方的值,但是使得調整的R方減小(3)兩種合理估計線性回歸係數的方法①一般情況模型變量的選擇方法a.
  • 謝國彤:疾病預測的機器學習、深度學習和經典回歸方法
    基於經典回歸方法的疾病預測傳統的疾病風險預測主要基於 Cox 比例風險回歸模型(簡稱 Cox 模型)及邏輯回歸模型。例如,[Wang et al. 2003] 發表於 JAMA 的文章利用 Cox 模型,基於弗雷明漢(Framingham)心臟研究來建立房顫患者發生腦卒中及死亡的風險預測模型,方法流程見圖 1。
  • 「大咖來解惑」機器學習、深度學習算法防止過擬合的方法?
    @z_zeee:#我要提問段立新老師#機器學習、深度學習算法防止過擬合的方法?段立新老師:機器學習和深度學習都會採用不同的方法來防止模型的過擬合問題。就傳統機器學習而言,常用的方法是在損失函數中加入正則項。通過引入L1或L2正則,控制模型中參數值的大小。根據龍格現象,模型中參數的數值越小,理解為模型的複雜度越小,在預測時效果更穩定。
  • 一文讀懂二元分類模型評估指標
    推薦閱讀時間:10min~12min文章內容:解讀二元分類模型各種評估指標在分類模型中,有很多關於模型性能的評估指標(evaluation metric),比如 accuracy、precision、recall、f1-score、roc、auc、prc 等等。這裡慢慢梳理下這些指標的含義以及用途。
  • 回歸方程的顯著性檢驗 - CSDN
    一、σ2 的估計  因為假設檢驗以及構造與回歸模型有關的區間估計都需要σ2的估計量,所以先對σ2作估計。因為σ2取決於殘差平方和, 所以任何對模型誤差假設的違背或對模型形式的誤設都可能嚴重破壞σ2的估計值的實用性。因為由回歸模型殘差算得,稱σ2的估計值是模型依賴的。
  • r語言一元回歸模型專題及常見問題 - CSDN
    一元線性回歸分析首先介紹回歸分析中最基礎的情況:一元線性回歸分析。它規定模型f函數只能是y=k*x+b的形式,即只使用一個變量x(故稱為一元)的線性形式來預測目標變量y。6.1.1引例利用某網站歷次促銷活動中促銷讓利費用和銷售金額的數據(單位是十萬元),將使用該數據集來說明線性回歸分析的應用。
  • 回歸or分類?線性or邏輯?一文掌握模型的不同之處
    一旦決定了要使用的方法,接下來就要選擇模型進行預測。視覺化呈現:回歸模型 vs. 分類模型回歸模型回歸模型中使用最普遍的是線性回歸和邏輯回歸。視覺化呈現:線性回歸 vs. 邏輯回歸兩種標準模型均可被調整,以更好擬合數據。主要方法是包含懲罰參數。線性和邏輯回歸模型對應的等式均包含全部輸入的變量,而這很可能會導致過度擬合。如果數據擬合過度,模型得出預測的可靠性會降低,並局限於訓練樣本。
  • 回歸係數顯著性t檢驗 - CSDN
    一、σ2 的估計  因為假設檢驗以及構造與回歸模型有關的區間估計都需要σ2的估計量,所以先對σ2作估計。因為σ2取決於殘差平方和, 所以任何對模型誤差假設的違背或對模型形式的誤設都可能嚴重破壞σ2的估計值的實用性。因為由回歸模型殘差算得,稱σ2的估計值是模型依賴的。
  • 淺談keras中的metrics作用-神經網絡評價指標
    #科技新星創作營# #機器學習# #深度學習# #神經網絡#背景介紹最近在用keras寫模型的時候,參考別人代碼時,經常能看到各種不同的metrics,因此會產生這麼幾個問題:metrics評價都對哪些指標進行評價?