当每个季节有不同的模型时预测价格

Posted

技术标签:

【中文标题】当每个季节有不同的模型时预测价格【英文标题】:predicting price when each season has different model 【发布时间】:2021-01-29 12:27:31 【问题描述】:

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

有 4 个变量用于预测: -season(总和,aut,win,spr) -express_shipment(真,假) -shipping_distance(公里) -first_time_customer (true, false)

这 4 个变量用于计算 shipping_price,规则如下: 对于每个季节,都有一个使用上述变量的单独模型。

我使用了一种方法,将 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)

有没有人能解释一下解决这个问题的正确方法是什么,以及如何解决?

【问题讨论】:

r2_score 的结果有多糟糕? 【参考方案1】:

可能的答案:

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

【讨论】:

【参考方案2】:

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

【讨论】:

【参考方案3】:

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

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

【讨论】:

以上是关于当每个季节有不同的模型时预测价格的主要内容,如果未能解决你的问题,请参考以下文章

价格预测方法

时间序列预测之差分指数平滑法及有季节性特点的序列预测

RNNs在股票价格预测的应用

时间序列预测之ARMAARIMA序列及季节性序列matlab实现

使用线性回归和神经网络模型预测比特币收盘价

股票预测:GRU 模型预测相同的给定值而不是未来的股票价格