为什么当Fit_Intercept=FALSE时,SkLearning R平方不同于
本文介绍了为什么当Fit_Intercept=FALSE时,SkLearning R平方不同于statsModel?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用SkLearning和statsModel执行线性回归。
我知道SkLearning和statsModel产生的结果是一样的。如下图所示,SkLearning和statsModels得出的结果是相同的,但在SkLearning中使用fit_intercept=False
截距为零时,即使系数相同,结果也不同。
你能解释一下原因吗?或者当我在SkLearning中使用fit_intercept=False
时给我任何方法。
推荐答案
不一致是因为statsmodels
使用不同的公式来计算R平方,具体取决于模型是否包括截取。如果包括截距,statsmodels
将残差平方和除以居中的平方和,而如果不包括截距,statsmodels
将残差平方和除以未输入的平方总和。这意味着statsmodels
使用以下公式来计算R平方,可以在documentation中找到:
sklearn
始终使用分母的居中平方和,而不管截取是否实际包含在模型中(即,无论fit_intercept=True
还是fit_intercept=False
)。另请参阅this answer。
这篇关于为什么当Fit_Intercept=FALSE时,SkLearning R平方不同于statsModel?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!