sklearn.metrics.r2_score?

sklearn.metrics.r2_score(y_true, y_pred, *, sample_weight=None, multioutput='uniform_average')

R^2(確定系數)回歸得分函數。

最佳可能得分為1.0,并且可能為負(因為該模型可能會更差)。 不管輸入特征如何,始終預測y的期望值的常數模型將獲得0.0的R^2分數。

用戶指南中閱讀更多內容。

參數 說明
y_true array-like of shape (n_samples,) or (n_samples, n_outputs)
真實目標值。
y_pred array-like of shape (n_samples,) or (n_samples, n_outputs)
預測目標值。
sample_weight array-like of shape (n_samples,), optional
樣本權重。
multioutput string in [‘raw_values’, ‘uniform_average’, ‘variance_weighted’] or None or array-like of shape (n_outputs)
定義多個輸出分數的匯總。類數組值定義用于平均分數的權重。 默認值為“ uniform_average”。

- ‘raw_values’:
如果是多輸出格式的輸入,則返回完整的分數集。
- ‘uniform_average’:
所有產出的分數均以統一權重平均。
- ‘variance_weighted’:

將所有輸出的分數平均,并按每個單獨輸出的方差加權。

在版本0.19中更改:多輸出的默認值為“ uniform_average”。
返回值 說明
z float or ndarray of floats
如果‘multioutput’為‘raw_values’,則為R^2分數或分數的ndarray。

這不是對稱函數。

與大多數其他分數不同,R^2分數可能為負(實際上不必為數量R的平方)。

這個度量標準沒有為單個樣本定義,如果n_samples小于2,則將返回NaN值。

參考

1 Wikipedia entry on the Coefficient of determination

示例

>>> from sklearn.metrics import r2_score
>>> y_true = [3-0.527]
>>> y_pred = [2.50.028]
>>> r2_score(y_true, y_pred)
0.948...
>>> y_true = [[0.51], [-11], [7-6]]
>>> y_pred = [[02], [-12], [8-5]]
>>> r2_score(y_true, y_pred,
...          multioutput='variance_weighted')
0.938...
>>> y_true = [123]
>>> y_pred = [123]
>>> r2_score(y_true, y_pred)
1.0
>>> y_true = [123]
>>> y_pred = [222]
>>> r2_score(y_true, y_pred)
0.0
>>> y_true = [123]
>>> y_pred = [321]
>>> r2_score(y_true, y_pred)
-3.0