explained_variance_score#
- sklearn.metrics.explained_variance_score(y_true, y_pred, *, sample_weight=None, multioutput='uniform_average', force_finite=True)[原始碼]#
解釋變異數迴歸評分函數。
最佳可能分數為 1.0,較低的值表示較差。
在
y_true
為常數的特殊情況下,解釋變異數分數不是有限的:它是NaN
(完美預測)或-Inf
(不完美預測)。為了防止此類非有限數字污染更高層次的實驗,例如網格搜尋交叉驗證,預設情況下,這些情況會分別替換為 1.0(完美預測)或 0.0(不完美預測)。如果force_finite
設定為False
,則此分數會回退到原始的 \(R^2\) 定義。在使用者指南中閱讀更多內容。
- 參數:
- y_true類陣列,形狀為 (n_samples,) 或 (n_samples, n_outputs)
真實(正確)的目標值。
- y_pred類陣列,形狀為 (n_samples,) 或 (n_samples, n_outputs)
估計的目標值。
- sample_weight類陣列,形狀為 (n_samples,),預設為 None
樣本權重。
- multioutput{‘raw_values’、‘uniform_average’、‘variance_weighted’} 或類陣列,形狀為 (n_outputs,),預設為 ‘uniform_average’
定義多個輸出分數的聚合方式。類陣列值定義用於平均分數的權重。
- ‘raw_values’
在多輸出輸入的情況下,返回完整的分數集。
- ‘uniform_average’
所有輸出的分數以均勻權重平均。
- ‘variance_weighted’
所有輸出的分數會被平均,並根據每個個別輸出的變異數加權。
- force_finitebool,預設為 True
指示是否應將恆定資料導致的
NaN
和-Inf
分數替換為實數的旗標(如果預測完美,則為1.0
,否則為0.0
)。預設值為True
,這是一個方便的超參數搜尋程序(例如,網格搜尋交叉驗證)設定。在 1.1 版中新增。
- 返回:
- score浮點數或浮點數的 ndarray
解釋變異數,如果 ‘multioutput’ 為 ‘raw_values’,則為 ndarray。
另請參閱
r2_score
相似的指標,但會考慮預測中的系統性偏移。
注意
這不是一個對稱函數。
範例
>>> from sklearn.metrics import explained_variance_score >>> y_true = [3, -0.5, 2, 7] >>> y_pred = [2.5, 0.0, 2, 8] >>> explained_variance_score(y_true, y_pred) 0.957... >>> y_true = [[0.5, 1], [-1, 1], [7, -6]] >>> y_pred = [[0, 2], [-1, 2], [8, -5]] >>> explained_variance_score(y_true, y_pred, multioutput='uniform_average') 0.983... >>> y_true = [-2, -2, -2] >>> y_pred = [-2, -2, -2] >>> explained_variance_score(y_true, y_pred) 1.0 >>> explained_variance_score(y_true, y_pred, force_finite=False) nan >>> y_true = [-2, -2, -2] >>> y_pred = [-2, -2, -2 + 1e-8] >>> explained_variance_score(y_true, y_pred) 0.0 >>> explained_variance_score(y_true, y_pred, force_finite=False) -inf