https://theonegis.blog.csdn.net/article/details/85991138
循着这篇博客翻墙找了很多博客看;受益匪浅,说一下自己的理解。
首先,决定系数R2是对于线性模型来说的。
由于我是在预测数据集上进行计算,所以产生了R2是用在训练数据集还是预测数据集上的困惑。
首先,在训练数据集上,R2应该是(我的理解,可能不太对,望指正)用来衡量线性模型在训练数据集上的拟合程度,这时候SST=SSE+SSR(具体可到可知乎或者其他博客查看),所以0 其次,在预测数据集上,R2在线性模型上还是遵从0 所以在非线性模型上,同时在预测数据集上, 1、SSR/SST>0,但是由于SST=SSR+SSE不成立,范围无法确定,且SST中也没有意义了。此时预测集确定,SST确定,实际上起作用的只有SSR,而SSR表示的预测值与平均值的差距,这个在非线性模型中好像没有任任何意义吧,在线性模型中确实平均值可以作为衡量线性模型的拟合程度 2、1-SSE/SST,同样,SST=SSR+SSE不成立,那么R2可能小于0.同样的,这里面有含义且起作用的只有SSE,这不就是MSE*n吗,既然此时SST没有含义了,R2范围也不再是0 所以,不论是R2,还是SST,SSR,他们有一点,公式中含有平均值这一个选项,而只有在线性模型下,SST=SSE+SSR,这个选项才有意义,对于非线性模型,意义不大。 那么还有可能发现,我是用R2和非线性模型,在测试集上,确实预测的越好R2越大,因为1-SSE/SST中,SST不变,起作用的就只有SSE,当模型还可以的时候,R2接近0.9,这样模型越好,SSE/MSE越小,当然R2越好(越接近1),但是那又怎么样,没有任何意义,既然R2范围都不固定了,那也就没有任何意义了,那只选择里面起作用的一项SSE/MSE不就可以了吗? 同时在不同领域,R2取多少合适也是不确定的,有的领域可能0.4就好,再大说明你错了。 如有不当之处,欢迎指正! 放两个链接 https://statisticsbyjim.com/regression/difference-between-linear-nonlinear-regression-models/ https://blog.minitab.com/blog/adventures-in-statistics-2/regression-analysis-how-do-i-interpret-r-squared-and-assess-the-goodness-of-fit 可以去这两个博文下面,里面还有很多讨论,多翻几个,对你会很有帮助