使用单词袋模型,我计算每个文档的单词出现次数(这些文档是来自公告板的帖子),并为每个帖子创建向量。示例:
X = [[0,0,0,1,0,3,0,0]
[0,0,1,0,0,0,1,0]
[1,0,1,0,2,0,0,0]]
y = [22,35,87]
在y中是X中每个向量的标签/目标(y=作者的年龄)。
在训练回归模型(线性回归、逻辑回归等)后,我使用MAE(平均绝对误差)它将预测的年龄与真实年龄进行了比较,得到了令人满意的结果。
然而,我不太明白如何使用r²:
输入
我必须使用预测标签和真实标签,这正确吗(在我的情况下,年龄在14-65岁之间)
r2_score(y_true, y_pred)
这不是MAE的作用吗?
低r²
在这个例子中,预测是很好的:
y_predicted = [49, 30, 31, 46, 28, 30]
y_true = [46, 28, 30, 49, 30, 57]
除一项预测外,所有预测都接近真实年龄。MAE是6.3年,但scikit了解到r²得分手显示-0.008
为什么这么糟糕?仅仅因为一个错误的预测?
皮尔逊r
此外,还有皮尔逊相关性"r":皮尔逊r平方等于r²吗?
决定系数R²描述了回归模型解释的因变量的方差比例。MAE只是给出了所有测试数据的平均误差。因此,它们是衡量模型性能的两种不同方法,因为每种方法都有自己的陷阱。
R平方并不表示回归模型是否足够。对于好的模型,可以使用低R平方值,对于不符合数据的模型,也可以使用高R平方值。
另一个可疑的问题是,您的值低于0,因为通常输出在0和1之间,这取决于它的实现。
也许你可以自己实现这个功能,这是一个非常简单的功能(例如wiki)
是的,您应该使用测试数据的预测标签和真实标签。