簡體   English   中英

Python sci-kit學習(度量):r2_score和explained_variance_score之間的區別?

[英]Python sci-kit learn (metrics): difference between r2_score and explained_variance_score?

我注意到,該r2_scoreexplained_variance_score都內建sklearn.metrics回歸問題的方法。

我一直認為r2_score是模型解釋的百分比方差。 它與explained_variance_score有何不同?

你什么時候會選擇一個?

謝謝!

我發現的大多數答案(包括此處)都強調R 2Explained Variance Score之間的區別,即:平均殘差(即誤差均值)。

然而,留下了一個重要的問題,那就是:我到底為什么要考慮誤差均值?


復習:

R 2 :是決定系數,它測量由(最小二乘法)線性回歸解釋的變異量。

為了評估y預測值,您可以從不同的角度查看它,如下所示:

方差實際_y × R 2實際_y =方差預測_y

所以直觀地,更多的R 2為更接近1 ,越actual_y和predicted_y將具有相同方差(即相同的擴展


如前所述,主要區別在於均值誤差 如果我們查看公式,我們會發現這是真的:

R2 = 1 - [(Sum of Squared Residuals / n) / Variancey_actual]

Explained Variance Score = 1 - [Variance(Ypredicted - Yactual) / Variancey_actual]

其中:

Variance(Ypredicted - Yactual) = (Sum of Squared Residuals - Mean Error) / n 

所以,顯然唯一的區別是我們從第一個公式中減去了平均誤差 ......但是為什么?


當我們將R 2 ScoreExplained Variance Score 進行比較時,我們基本上是在檢查平均誤差 所以如果 R 2 = 解釋方差分數,那意味着:平均誤差 =

平均誤差反映了我們的估計量的趨勢,即:有偏估計與無偏估計


總之:

如果您想擁有無偏估計量,以便我們的模型不會低估或高估,您可以考慮考慮均值誤差

好的,看這個例子:

In [123]:
#data
y_true = [3, -0.5, 2, 7]
y_pred = [2.5, 0.0, 2, 8]
print metrics.explained_variance_score(y_true, y_pred)
print metrics.r2_score(y_true, y_pred)
0.957173447537
0.948608137045
In [124]:
#what explained_variance_score really is
1-np.cov(np.array(y_true)-np.array(y_pred))/np.cov(y_true)
Out[124]:
0.95717344753747324
In [125]:
#what r^2 really is
1-((np.array(y_true)-np.array(y_pred))**2).sum()/(4*np.array(y_true).std()**2)
Out[125]:
0.94860813704496794
In [126]:
#Notice that the mean residue is not 0
(np.array(y_true)-np.array(y_pred)).mean()
Out[126]:
-0.25
In [127]:
#if the predicted values are different, such that the mean residue IS 0:
y_pred=[2.5, 0.0, 2, 7]
(np.array(y_true)-np.array(y_pred)).mean()
Out[127]:
0.0
In [128]:
#They become the same stuff
print metrics.explained_variance_score(y_true, y_pred)
print metrics.r2_score(y_true, y_pred)
0.982869379015
0.982869379015

因此,當平均殘差為 0 時,它們是相同的。 選擇哪一個取決於您的需要,即平均殘差假設為0?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM