京东赛告一段落。作为一个菜菜鸟,虽然无缘前十,但是也算是有一点小感悟和一些对数据挖掘的认知。毕竟这是第一次接触比较接近实际工程中的数据,而且是时间序列相关的数据。
一. 数据集的划分
在做京东赛的时候,第一眼看到数据集就是懵的,感觉和房屋预测的咋一点都不一样·········训练集也没有,测试集也没有,而且还有好多个表,咋往一块拼呢·········后来看了wepon在天池优惠券核销预测的代码后,才渐渐有了一点思路,在这里感谢wepon大神,代码在这里。
对于我过去接触过的机器学习问题,训练集就是原始数据,测试集就是新数据。我在原始数据和新数据中,挖掘出相同维的特征,区别就是原始数据有标签,而新数据没有标签。用有标签的数据学习出一个模型,再应用到具有相同特征维的没有标签的数据上,预测得到结果。
但对于时序数据来说,就不一样了。
时间序列预测的核心思想是:用过去时间里的数据预测未来时间里的Target。
也就是说,在构建特征的时候,我需要所有的历史数据构建预测特征。有时候,也会有待预测时间段的一些特征,比如在天池的O2O赛中(不过这也是一个leakage,在实际工程中,是不会得到这个数据的)。将历史数据的预测特征,和新数据的一些预测特征结合起来,得到完整的所需要的特征,然后放到模型里面,得到预测结果。
还有一个比较重要的部分就是,负样本的建立。在这里的数据&#x