我现在有这样一个训练数据它提供了2015 年 9 月 1 日至 2018 年 12 月 20 日的数据,其存储在(order_train1.csv)文件中,包含以下信息(提供一个样例) order_date(订单日期):2015/9/1; sales_region_code(销 售区域编码):104; item_code(产品编码):22069; ord_qty (订单需求量):19; 现在要用python代码对未来三个月的数据进行预测。 可以给python代码吗? 然后,将结果保存在(predict_sku1.csv)文件中,其格式为: sales_region_co de:101; item_code:20002; 2019 年 1 月预 测需求量:1; 2019 年 2 月预 测需求量:3; 2019 年 3 月预 测需求量:2;
时间: 2023-06-05 21:05:54 浏览: 68
可以,你可以使用Python的pandas和sklearn库来完成数据读取和预测。
首先,使用pandas读取order_train1.csv文件,并对数据进行处理,使之符合sklearn模型的要求,代码如下:
```python
import pandas as pd
# 读取csv文件
data = pd.read_csv('order_train1.csv')
# 选取需要的列
data = data[['sales_region_code', 'item_code', 'ord_qty', 'order_date']]
# 转换时间格式
data['order_date'] = pd.to_datetime(data['order_date'])
# 提取年份和月份
data['year'] = data['order_date'].dt.year
data['month'] = data['order_date'].dt.month
# 将销售区域编码和产品编码转换为类别型数据
data['sales_region_code'] = data['sales_region_code'].astype('category')
data['item_code'] = data['item_code'].astype('category')
# 将数据按年份和月份升序排列
data.sort_values(['year', 'month'], inplace=True)
# 删除时间列
data.drop(['order_date'], axis=1, inplace=True)
# 对目标特征进行处理
y = data.pop('ord_qty')
```
接下来,使用sklearn库训练预测模型,并对未来三个月的需求量进行预测,代码如下:
```python
from sklearn.ensemble import RandomForestRegressor
# 训练模型
model = RandomForestRegressor(n_estimators=100, random_state=42)
model.fit(data, y)
# 构建需要预测的DataFrame
predictions = pd.DataFrame({
'sales_region_code': [101],
'item_code': [20002],
'year': [2019],
'month': [1, 2, 3]
})
# 进行预测
results = model.predict(predictions)
# 将预测结果保存到csv文件
results_df = pd.DataFrame(results, columns=['2019年1月预测需求量', '2019年2月预测需求量', '2019年3月预测需求量'])
results_df.to_csv('predict_sku1.csv')
```
上述代码中,我们使用了随机森林回归模型进行预测,预测结果保存到predict_sku1.csv文件中。