精准定位用户所在店铺比赛

文章脉络

  • 前言
  • 赛题介绍
  • 数据信息
  • 总体思路
  • 数据预处理和特征工程
  • 模型选择
  • 总结

    1.赛题

    给出用户在商场是使用手机的一些信息,包括用户交易信息,商场内店铺信息等,要求在给出上述信息后精准预测用户所在店铺。具体给出数据可点击赛事官网查看。

2.数据信息

table1、店铺和商场信息表
精准定位用户所在店铺比赛
Table2、用户在店铺内交易表
精准定位用户所在店铺比赛
Table3、评测集
精准定位用户所在店铺比赛

3.总体思路

给出的数据信息比较多,可粗略分为交易发生时间信息,用户个人信息(个人购买力),wifi信息,经纬度信息等几个方面,这些信息在后续都需要经过过滤筛选,提取出关键特征。

4.数据预处理和特征工程

数据预处理

  • 删除公共WiFi:如果一个WiFi在一个以上商场出现或者在某个商场覆盖率超过一定范围,那么可以断定此WiFi为噪音信息。
  • 删除移动热点或者出现次数较少的WiFi:如果一个wifi出现次数少于某个阈值或者出现时间仅有一天,那么可以断定次WiFi为噪音信息
  • 训练集和测试集wifi取交集,因为对于wifi指纹或我们后来构造的wifi特征来说,只在train中出现过或只在test中出现过的wifi都是无用的,甚至可能是噪音。
  • 删除WiFi信息为空的记录。

经纬度信息

给了两种经纬度信息,一种是店铺经纬度(固定值),一种是买家付款时的经纬度,两种经纬度理论上差距应该很小,实际部分差距很大。

  • 通过对精度的调整做了一个小的离散化处理
  • 欧氏距离特征(在商场中随意选择一个点做基准)
  • 曼哈顿距离特征(同上)
  • 经纬度聚类(效果一般)

时间特征信息

  • 划分为工作日和休息日(很小提升)
  • 提取出饭点特征(很小)

用户信息特征

  • 用户购买力特征
  • 用户常去的商店特征
    用户特征的提取,会使得本地验证的分数提高不少,却无法提高在预测集预测精度。原因是因为测试集里的用户更换了绝大多数,训练集、预测集用户交集只有1/3左右,使得在训练集上很有用的特征在测试集上表现不好。还有一个原因是数据统计量均不足,没有统计意义,没有统计意义

WiFi特征信息

实际上,WiFi特征是最为重要的特征。构建如下特征:
- 当前连接到的最强wifi,转换成规则的话其实是一个极大似然估计,举个例子来说,当我能搜索到的最强wifi是wifi0的时候,在历史上最强wifi是wifi0的时候有80个人在A店铺,5个人在B店铺,10个人在C店铺,那么我最大可能当前在A店铺。这个特征是一个比较强的特征。
- 店铺wifi指纹:根据每个店铺历史上出现过的wifi(频数大于20)和强度建立wifi强度指纹库(字典),训练集、预测集上下concat将所有WiFi id展开为特征,值为当前记录对应WiFi的强度,强度离散化(粒度为10)

模型选择

最开始使用xgb的多分类模型,分mall进行预测,效果不错,但是后续无法上分,后来使用二分类实现多分类,依然分mall进行预测,提升显著。 具体做法是使用N个二分类器,分别对每个mall的每个店铺进行二分类得到一个二分类器,然后对数据进行预测,这样对于每一个二分类器都可以得到一个预测概率值,选取其中预测最大的概率值对应的店铺作为最终分类结果。

总结

以上是选取的比较有代表性的特征,经过不断地尝试,并且在群里潜水学习,看着大佬们的日常操作和表演,学到了很多。