特征构造中的历史平移问题
2019-07-19 本文已影响0人
LZhan
在电商推荐的场景中,常常会出现:
我们在准备样本数据的时候,会采用某物品的最近n天的曝光和点击来作为样本数据,其中单品曝光但是用户未点击,则为负样本;单品曝光且用户进行点击行为,则为正样本。
准备好正负样本数据后,在进行模型训练的时候,我们会选择最近n天的用户行为数据来构造一些特征,比如说某用户最近n天点击某品牌单品的次数,点击某品类单品的次数等等;
这种方式看起来是没有问题的,实际上里面却存在着时间平移的问题。
比如说,某条样本数据,该样本数据来自于最近n天中的第1天,之后我们再去关联相关特征,但是实际上并不能保证关联的这些特征是通过最近n天的第1天的用户行为数据获得的,很大的可能性是最近n天的后几天的数据产生的特征;
也就导致了样本与特征的关联,是错误的。
正确的做法:第d天的样本,应该先找出第d-n天到第d天的数据,构造出相关特征,进行关联,得到第d天的完整的带有各种特征的样本数据 d0;
第d-1天的样本,应该找出第d-1-n到第d-1天的数据,构造出相关特征,进行关联,得到第d-1天的完整的带有各种特征的样本数据 d1;
同理....
最后将d0,d1,d2 等样本合并起来,才形成最终的样本数据。