项目实战-神经网络预测

项目实战-神经网络预测 一、环境配置与工具导入配置中文显示固定随机种子生成固定的随机数为了让代码每次运行的结果都一样因为模型初始化权重初始化时随机的如果不固定种子同一份代码跑两次会出现两个精度不一样的模型调参的时候就不知道数据的变动是因为参数的改变还是因为模型的随机导致归因困难固定了随机种子就相当于与有了一个对照组排除了随机因素的干扰确定模型的结果变动是因为参数的变动最终的目的是让模型的结果跟随参数的变动而变动而不是跟着模型的初始化随机权重变动而变动二、数据加载与初步观察1.读取数据按照业务需求进行筛选2.查看数据类型缺失值查看平均数最大数最小数四分位数快速了解数据是问么分布的有没有极端值整体的是销量水平怎么样对数据有一个初步的认识三、数据清洗与数据预处理1.查看维度2.类型转换提取年月日星期几是否周末因为销量往往与时间归路有关3.筛选数据4.筛选特征5.缺失值处理平均值填充众数填充6.查看最终清晰的数据查看维度7.根据业务需求进行变化四、时序数据构造构造14天的时间窗口把过去14天的特征作为输出x第十五条作为输出Y,生成模型能生成的时序训练数据五、数据标准化与拆分把特征缩放到统一范围避免特征过大影响模型学习# 初始化标准化器scaler StandardScaler() #这个就是标准化把数据在-3到3之间等到当特征数据的范围差异很大时损失函数的等高线会像一个极扁的椭圆。梯度下降时参数更新容易在椭圆上 “之” 字形来回震荡走很多弯路才能收敛。标准化后所有特征的尺度一致损失函数的等高线会更接近圆形。梯度下降就能更直接地朝着最小值的方向走收敛速度更快模型也更容易训练到最优状态。把数据按照时序窗口拆分成样本对。拆分测试集与训练集时序序列不能随机拆分六、transformer搭建与训练通过函数单间模型结构用多头注意力捕获时间依赖然后开始训练加入了早停和学习率衰减防止过拟合七、模型评估与未来预测用测试机计算 SMSE,MAE,R**2来评估模型的好坏最后用predict_future函数基于最后的14天真实数据滚动预测未来14天的销量