首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >回归模型不成功-python

回归模型不成功-python
EN

Stack Overflow用户
提问于 2021-05-17 09:31:37
回答 1查看 42关注 0票数 1

我必须用python创建一个回归模型。

能源额定值与。价格,看看能源评级是否取决于价格。

这里是下面的数据集和代码,

代码语言:javascript
复制
import statsmodels.formula.api as smf

# Initialise and fit linear regression model using `statsmodels`
model = smf.ols('price ~ energyrating', data=df)

model = model.fit()

我得到的参数是一个负的,也许这可能是糟糕的图形的原因,但不确定如何改善这一点。

代码语言:javascript
复制
model.params
#price=2.004943e+06 + (-.913381e+05)*energyrating

Intercept       2.004943e+06
energyrating   -3.913381e+05
dtype: float64

并创建最终的模型,但没有成功,

代码语言:javascript
复制
# Predict values
pred = model.predict()

# Plot regression against actual data
plt.figure(figsize=(12, 6))
plt.plot(df['energyrating'], df['price'], 'o')           # scatter plot showing actual data
plt.plot(df['energyrating'], pred, 'r', linewidth=2)   # regression line
plt.xlabel('Energy ratings')
plt.ylabel('Price')
plt.title('Energy ratings Vs. Price')

plt.show()

我该如何改进这一点?是数据不稳定还是我遗漏了什么逻辑错误?

提前感谢

编辑:

energy rating的频率图

这就是能源额定值的变化方式。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-17 10:48:18

我猜一个简单的linear regression不能从您给出的图中捕捉到priceenergyrating之间的关系,因为price不会随着energyrating的增加而单调地减少或增加。我建议您包括energyrating的二次项,即添加一个新的energyrating * energyrating列,或者其他您认为合理的高阶转换。

如果你被允许使用除linear regression之外的其他模型,我建议你只需对每个energyrating(它与你的曲线图是离散的) price求平均,然后绘制曲线,我认为这样会更好。

例如在熊猫中:

代码语言:javascript
复制
avg = df.groupby("energyrating")['price'].mean()
avg.plot()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67563010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档