当我使用以下代码与X
大小(952,144)的数据矩阵和y
大小(952)的输出向量时,mean_squared_error
度量返回负值,这是意外的.你有什么主意吗?
from sklearn.svm import SVR from sklearn import cross_validation as CV reg = SVR(C=1., epsilon=0.1, kernel='rbf') scores = CV.cross_val_score(reg, X, y, cv=10, scoring='mean_squared_error')
scores
然后所有的值都是负数.
试图关闭它,所以我提供了David和larsmans在评论部分雄辩地描述的答案:
是的,这应该发生.实际的MSE只是您获得的数字的正面版本.
统一评分API总是最大化分数,因此需要最小化的分数被否定,以便统一评分API正常工作.因此,如果得分应该被最小化并且如果它是应该被最大化的得分则保持为正,则返回的得分被否定.
在使用Pipeline的sklearn GridSearchCV中也描述了这一点.