微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

每个季节使用不同模型时的价格预测

如何解决每个季节使用不同模型时的价格预测

我有一个包含许多列的数据集:

有4个用于预测的变量: 季节(总和,aut,win,spr) -express_shipment(对,错) -shipping_distance(以KM为单位) -first_time_customer(true,false)

这4个变量用于按照以下规则计算运费_价格, 对于每个季节,都有一个单独的模型使用上述变量。

我使用了一种方法,其中将True转换为1,将False转换为0 对于2个布尔列 我也将季节转换为整数表示(1,2,3,4)

问题是我的预测非常不准确,这是我正在使用的代码

from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split 
modeling = data.loc[:,["shipping_distance","season_int","new_cust_int","express_shipment","shipping_charge"]]
x =modeling.iloc[:,:-1]
y =modeling.iloc[:,-1:]
X_train,X_test,y_train,y_test = train_test_split(x,y,random_state = 1)
model = LinearRegression()
model.fit(X_train,y_train)
model.predict(X_test)

有人能解释解决此问题的正确方法是什么,或如何解决吗?

解决方法

这里,您将标签编码器用于“ season_int”(1,2,3,4)和线性回归。这意味着您为此模型分配了“ season_int”一些固有顺序。您可以尝试对“ season_int”使用一种热门编码:

https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.OneHotEncoder.html

,

可能的答案:

  • 您正在使用分类变量进行线性回归,这可能是一个问题。 Here是可能的解决方案。
  • LinearRegression可能不是解决您问题的最佳模型,因为您的问题可能不是线性的。尝试使用非线性模型,例如sklearn.ensemble.RandomForestRegressor
  • 您的数据集可能不足以有价值解决您要解决的问题。这些变量可能不是确定价格等的最佳变量。
  • 您没有足够的数据来训练模型。
,

似乎您想要一个时间序列模型[对吗?] https://www.statsmodels.org/stable/examples/index.html#time-series-analysis

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。