【发布时间】:2021-05-17 01:31:36
【问题描述】:
我必须在 python 中创建一个回归模型
能源评级与。价格,看看能源等级是否取决于价格。
这里,是下面的数据集和代码,
import statsmodels.formula.api as smf
# Initialise and fit linear regression model using `statsmodels`
model = smf.ols('price ~ energyrating', data=df)
model = model.fit()
我得到的参数是一个负数,这可能是图表不好的原因,但不知道如何改进。
model.params
#price=2.004943e+06 + (-.913381e+05)*energyrating
Intercept 2.004943e+06
energyrating -3.913381e+05
dtype: float64
并创建不成功的最终模型,
# 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的频率图
这就是能量等级的变化方式。
【问题讨论】:
-
energyrating列的值是否都等于3.9?如果是这种情况,您将找不到eneryrating和price之间的关系。 -
不,所有值都不是。我会显示它的频率图请检查上面的答案
标签: python machine-learning regression