回归模型的score得分为负_Sklearn模型中预测值的R2_score为负数的问题探讨
Sklearn.metrics下面的r2_score函數(shù)用于計(jì)算R2(確定系數(shù):coefficient of determination)。它用來(lái)度量未來(lái)的樣本是否可能通過(guò)模型被很好地預(yù)測(cè)。分值為1表示最好,但我們?cè)谑褂眠^(guò)程中,經(jīng)常發(fā)現(xiàn)它變成了負(fù)數(shù),多次手動(dòng)調(diào)參只能改變負(fù)值的大小,卻始終不能讓該值變成正數(shù)。
本文將這一問(wèn)題進(jìn)行一些初步探討,希望能起到夠拋磚引玉的作用。
R2的定義如下:![Alt]在這里插入圖片描述從公式來(lái)看,即使我們不使用任何模型,僅僅用目標(biāo)集標(biāo)簽的平均值,就能讓R2_score為0,如果值為負(fù)數(shù),則表示我們預(yù)測(cè)的結(jié)果還不如測(cè)試集中的y_label的平均值準(zhǔn)確。下面我們最簡(jiǎn)單的模型去測(cè)試一下R2_score到底跟什么有關(guān)系。
首先,我們先在三維空間里構(gòu)建兩個(gè)數(shù)據(jù)集。一個(gè)是z=y的一次平面,數(shù)據(jù)集在這個(gè)平面上。另外一個(gè)是z=xx+yy的二次拋物曲面,數(shù)據(jù)來(lái)自這個(gè)平面上。廢話不多說(shuō),上代碼:
import sklearn
from sklearn import preprocessing
from sklearn import linear_model
from sklearn.metrics import r2_score#R square
from sklearn.svm import SVR
構(gòu)建z=y平面
X1_train = [[0,0],[0,1],[1,0],[1,1],[2,0],[-2,0],[1,-3],[-1,-1]]
y1_train = [0,1,0,1,0,0,-3,-1]
X1_test = [[2,-1],[0,2],[-1,-2],[1.5,1.5],[-1.5,-1.5]]
總結(jié)
以上是生活随笔為你收集整理的回归模型的score得分为负_Sklearn模型中预测值的R2_score为负数的问题探讨的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: delphi语言转为汇编语言_每天5分钟
- 下一篇: oracle 表关联索引优化,Oracl