python-3.x - r2_score 是-18.709,为什么?
问题描述
我在 Python,ML 中进行多元线性回归。据我所知,r2_score 应该在 -1 到 1 的范围内。但是,我得到了 -18.709。
获得此答案有什么问题,我该如何纠正?其编码和结果如下所示:
计算 R
from SK-learn.meterics import r2_score
score = r2_score(y_test, y_pred)
print(score)
输出:
-18.7097
其预测结果如下:
y_pred = model.predict(X_test)
print(y_pred)
结果:
[ 25000. 123000. 73000. 103000.]
解决方案
决定系数 r-square 定义为
Nash-Sutcliffe 模型效率系数(解释如下)
在某些情况下,R2 的计算定义可能会产生负值,具体取决于所使用的定义。当与相应结果进行比较的预测没有从使用这些数据的模型拟合过程中得出时,就会出现这种情况。
即使使用了模型拟合程序,R2 仍可能为负值,例如当进行线性回归而不包括截距时,或使用非线性函数拟合数据时。根据这一特定标准,在出现负值的情况下,数据的平均值比拟合函数值更适合结果。由于决定系数的最一般定义也称为 Nash-Sutcliffe 模型效率系数,因此最后一种表示法在许多领域中是首选,因为它表示可以从 -∞ 到 1 变化的拟合优度指标(即,它可以产生负值)与平方字母混淆。
来源:维基百科
推荐阅读
- react-native - 如何减小模块 react-native-svg-charts 中 PieChart 的宽度
- android - 用一个字符过滤 hashmap 列表
- elasticsearch - 如何以最小延迟从弹性搜索更新 neo4j 图形数据库?
- javascript - 带有实体视图的 Thingsboard 仪表板实体表
- c# - 反序列化没有根的 JSON 数组。你如何读取数组值?
- git - 用于压缩功能分支提交的 Git 别名
- json - 外部表的雪花外部阶段文件推荐
- abp - GetListAsync 正在返回记录,包括 IsDeleted 为 true
- flutter - 更新 Firestore 中的字段时如何在按钮中显示“保存”文本?
- sql - Oracle中的递归查询,直到层次结构中的父级满足条件?