最近在用python处理数据,在进行精度评价的时候需要计算决定系数(R2),结果python的计算结果大大超出了我的预料。一般我们计算R2认为它是相关系数(r)的平方。
当你去网上查python如何计算R2,都是这么告诉你的,通过如下公式计算:
这当然能算,但是这中计算R2不一定等于r*r。这有限定条件,就是你这两组数据线性相关很强的时候R2=r*r,假如你的数据很发散,你的结果就会相差很大。
网上资料显示,R^2=1-SSR/SST,此公式的计算条件是,回归类别是有常数项回归,必须满足SST=SSE+SSR。我到现在还不明白什么叫有常数项回归,但是,不管怎么说这种方法算出来是有区别的。但是具体的区别,我到现在也不是很理解。
所以,我只能采用另外的方法,我先算r, 然后平方。
计算公式更简单了,假如pandas的两列数据“A”,"B",一行命令算r:
r = df['A'].corr(df['B'])
这种结果就和Matlab和Excel计算的R2相同。
r的计算公式:
各位如果有相关详细描述,Python计算R2的相关计算公式和内容,能否贴个链接,以供学习。多谢。
欢迎交流,祝好!
2020.07.21