我想检查使用Scikit-Learn和Statsmodels.api解决多元线性回归问题是否产生相同的输出。我在3个部分(按照他们提到的顺序)做了:Statsmodels(没有拦截),Statsmodels(带拦截)和SKL。正如预期的那样,我的SKL系数和R(平方)与Statsmodels(带截距)相同,但我的SKL均方误差等于Statsmodels(没有截距)。
我要分享我的笔记本代码;它是一个相当基本的代码,因为我刚开始使用机器学习应用程序。请仔细检查并告诉我它为什么会发生。此外,如果您可以分享您对任何低效代码的见解,我将非常感激。这是代码:
答案 0 :(得分:0)
你犯了一个错误,这解释了奇怪的结果。当您使用scikit-learn从线性模型进行预测时,您可以写:
predictions2 = lm.predict(xtest2)
请注意,您使用的是lm
模型,这是第一个statsmodels回归产生的模型。相反,你应该写:
predictions2 = lm2.predict(xtest2)
执行此操作时,结果与预期一致。