【发布时间】:2021-02-04 22:53:22
【问题描述】:
我希望了解为什么我会得到两个不同的线性回归模型预测结果。我使用相同的数据集,并要求相同的预测值。我在下面粘贴了一些示例代码,以及一个指向打开的 Google Colab 的链接,available here。
import pandas as pd
from sklearn import linear_model, metrics
import statsmodels.api as sm
temp = [73,65,81,90,75,77,82,93,86,79]
gallons = [110,95,135,160,97,105,120,175,140,121]
merged = list(zip(temp, gallons))
df = pd.DataFrame(merged, columns = ['temp', 'gallons'])
X = df[['temp']]
Y = df['gallons']
regr = linear_model.LinearRegression().fit(X,Y)
print("Using sklearn package, 80 temp predicts rent of:", regr.predict([[80]]))
model = sm.OLS(Y,X).fit()
print("Using statsmodel.api package, 80 temp predicts rent of:", model.predict([80]))
使用上面的代码,我收到以下结果:
使用 sklearn 包,80 temp 预测租金:[125.5013734]
使用 statsmodel.api 包,80 temp 预测租金为:[126.72501891]
有人可以解释为什么结果不一样吗?我的理解是它们都是线性回归模型。
谢谢!
【问题讨论】:
标签: python scikit-learn linear-regression statsmodels