2023年泰迪杯数据挖掘挑战赛B题--产品订单数据分析与需求预测(3.模型训练与预测)

1.问题分析

本体要求利用根据问题一数据分析和特征分析来建立数学模型来预测未来三个月的订单需求量。并且考虑天,周,月等数据精度进行预测,根据问题一的数据分析结果已经可以确定,销售区域,订单类别,销售方式以及时间段等指标对于订单需求都有显著影响,具体的数据分析方法可以参考博主之前的博文。因此本文在建立预测模型的过程中要考虑多种要素,综合时间序列以及订单类别等影响因素进行综合建模。
不同时间粒度的预测,只是数据样本量有所变化,整体不影响具体模型的训练与预测

2.多种机器学习模型训练和预测

from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler,MinMaxScaler
from sklearn.ensemble import RandomForestRegressor, ExtraTreesRegressor, GradientBoostingRegressor
from sklearn import tree#决策树回归
from sklearn.linear_model import LinearRegression#线性回归
from sklearn import svm#SVM回归
from sklearn.metrics import r2_score, mean_squared_error, mean_absolute_error
import numpy as np
import pandas as pd          
import matplotlib.pyplot as plt
from datetime import datetime    
from pandas import Series 
from math import sqrt
from statsmodels.tsa.seasonal import seasonal_decompose
import statsmodels
import statsmodels.api as sm
from statsmodels.tsa.arima_model import ARIMA
import seaborn as sns
import matplotlib as mpl
import os
# sns.set(style="darkgrid") #这是seaborn默认的风格
mpl.style.use('seaborn')
plt.rcParams['font.sans-serif'] = ['SimHei']  # 中文字体设置-黑体
plt.rcParams['axes.unicode_minus'] = False  # 解决保存图像是负号'-'显示为方块的问题

sns.set(font='SimHei',font_scale=1.5)  # 解决Seaborn中文显示问题并调整字体大小

本文考虑利用多种机器学习回归模型进行模型训练和求解,具体包括Arima时间序列,综合考虑了季节因素,在结合支持向量机回归,决策树回归,随机森林回归,Xgboost等多种模型进行综合预测。

2023年泰迪杯数据挖掘挑战赛B题--产品订单数据分析与需求预测(3.模型训练与预测)_第1张图片

2023年泰迪杯数据挖掘挑战赛B题--产品订单数据分析与需求预测(3.模型训练与预测)_第2张图片

2023年泰迪杯数据挖掘挑战赛B题--产品订单数据分析与需求预测(3.模型训练与预测)_第3张图片

2023年泰迪杯数据挖掘挑战赛B题--产品订单数据分析与需求预测(3.模型训练与预测)_第4张图片

2023年泰迪杯数据挖掘挑战赛B题--产品订单数据分析与需求预测(3.模型训练与预测)_第5张图片
最终选用了效果较好的时间序列+回归预测进行组合预测,得到最终的预测结果,

文章待续。。。,后续全部数据公布之后,会利用上述模型再跑一次,并把结果进行公布

3.源码分享

附上2023年泰迪杯数据挖掘挑战赛B题全部源码(包括预测模型的训练)连接如下:

2023年泰迪杯b题全部源码

你可能感兴趣的:(数学建模竞赛,数据挖掘,数据分析,机器学习)