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.5, 2, 7]
>>> y_pred = [2.5, 0.0, 2, 8]
>>> r2_score(y_true, y_pred)
0.948...
>>> y_true = [[0.5, 1], [-1, 1], [7, -6]]
>>> y_pred = [[0, 2], [-1, 2], [8, -5]]
>>> r2_score(y_true, y_pred,
... multioutput='variance_weighted')
0.938...
>>> y_true = [1, 2, 3]
>>> y_pred = [1, 2, 3]
>>> r2_score(y_true, y_pred)
1.0
>>> y_true = [1, 2, 3]
>>> y_pred = [2, 2, 2]
>>> r2_score(y_true, y_pred)
0.0
>>> y_true = [1, 2, 3]
>>> y_pred = [3, 2, 1]
>>> r2_score(y_true, y_pred)
-3.0