CCF农产品价格预测-复赛rank2代码公布
向AI转型的程序员都关注了这个号????????????
人工智能大数据与深度学习 公众号:datayx
项目背景
农产品价格受市场影响的程度特别大,特别是受农产品的供求关系影响较大,同时价格本身又受自然条件、社会和经济条件的影响,特别是国际市场的影响。从价格本身来看,受供求、季节等发生波动,受外界各种影响比较多,这就造成了价格预测的困难。但从长期看,农产品价格随着时间的推移仍然呈现一定规律性。
赛者只需分析提供的价格历史数据,对要求预测的农产品接下来固定时间的价格进行预测。 复赛中,要求参赛者尽可能多的使用与价格有影响的其他数据以提高预测的准确率,例如:天气数据。
获取《统计学习方法》全套资源
关注微信公众号 datayx 然后回复 价格预测 即可获取。
模型算法
-
训练集
选择了2016年6月1日往后30天+2016年5月25日往后一个月的全部数据作为训练集
-
测试集
线上测试集为2016年7月
-
特征
6月1日(5月25日)距离该农产品第一次有价格记录过去了x天
6月1日(5月25日)距离该农产品最后一次有价格记录过去了x天
所有数据中该农产品最后一次出现的价格
一个月的第x天
一周的第x天
一年的第x天
6月1日(5月25日)的前x天农产品价格的平均值
6月1日(5月25日)的前x天农产品价格的最小值
6月1日(5月25日)的前x天农产品价格的标准差
考虑有部分数据缺失,对每个农产品,我们将数据先按照时间排序,然后加上了
6月1日(5月25日)的前x个非缺失的价格的平均值
6月1日(5月25日)的前x个非缺失的价格的最小值
6月1日(5月25日)的前x个非缺失的价格的标准差
6月1日(5月25日)的前x天有几天价格有缺失(缺失率)
窗口统计特征(前1,2,3,4,7,14,21,30,60天)
日期特征 (没怎么用)
-
农产品的特征
-
算法说明
有部分农产品的价格非常稳定(波动非常小),我们就直接选取其最后一次非缺失的平均价格作为7月每一天的价格作为预测结果
同样也有一些提升(0.045)
我们将LinearRegression、Xgboost、RandomForest的结果进行加权融合
有一定的提升(0.047)
于是我们对训练样本设置了权重,$weight_i = \frac{1.0}{y^_iy^*_i}$,线上效果明显提升(0.05)
但是效果提升不大
如提交最后一次的价格线上评分就能达到 0.06088
一些简单的规则
直接使用模型的训练效果仅为0.12左右还不如简单的规则
考虑到评价标准是MPSE,我们首先对label进行 log transformation 即$y\prime = log(x+1)$,预测后再使用$y^{predict} = exp(y\prime) - 1$变换回来
考虑大部分回归模型的目标函数都是MSE的,label较大的对于误差的影响显然更大一些;而本题的评价函数是MPSE,label较小的更容易带来误差
-
模型融合
我们将LinearRegression、Xgboost、RandomForest的结果进行加权融合有一定的提升(0.047)
简单的规则
有部分农产品的价格非常稳定(波动非常小),我们就直接选取其最后一次非缺失的平均价格作为7月每一天的价格作为预测结果,同样也有一些提升(0.045)
阅读过本文的人还看了以下:
不断更新资源
深度学习、机器学习、数据分析、python
搜索公众号添加: datayx
长按图片,识别二维码,点关注
AI项目体验
https://loveai.tech