华为Digix极客算法大赛赛题一内容总结与分享

本文是作者参加华为数据挖掘比赛的总结,比赛任务是根据用户手机使用行为预测年龄段。文章介绍了赛题分析、特征工程、模型选择和融合策略,分享了处理多值特征、高维特征的经验,并反思了特征构造和模型泛化能力的不足。
摘要由CSDN通过智能技术生成

华为Digix极客算法大赛赛题一内容总结与分享

这是我决定转行以来参加的第二个数据挖掘比赛,第一次参加腾讯算法大赛的时候,什么都不懂,连python和相关库的操作都不太会,哼哧哼哧混了个400多名。这次参加华为的比赛获得了22名的成绩,两个月跌宕起伏的排名战,也算是有点收货,在这里写下我的总结与反思,希望以后也能走的更好。

1.赛题介绍

  1. 智能手机已成为人们工作生活中不可或缺的伙伴,当今社会几乎所有“衣食住行”都可以通过一部手机来解决。手机作为一种能够同时提供视频、游戏、音乐、阅读、摄影功能的全功能综合移动载体,正在逐步取代传统媒介(如电视、个人电脑、MP3、照相机等)。在此背景下,如何通过智能化、个性化应用以及精准推送服务来提升用户体验是每个手机厂商孜孜以求的目标,而数据则是实现这一目标的基石。
  2. 用户的人口属性(如性别、年龄、常驻地等)数据一方面可以被用于个性化推荐服务,提升用户体验,另一方面可以用于手机用户群画像分析,帮助厂商了解产品的人群定位,优化产品设计。
  3. 年龄是用户人口属性的重要维度,本次比赛任务为根据用户的手机使用行为习惯来预估用户所处的年龄段。每个用户(以唯一ID标识)对应唯一的年龄段。年龄段有6种划分,分别代表不同年龄段,分别为:小于等于18岁, 19-23岁, 24-34岁, 35-44岁, 45-54岁,大于等于55岁。参赛同学根据华为提供数据构建预测模型进行年龄段预估,在测试数据集上给出预估结果。

2.赛题分析

这次比赛是要求我们根据用户对手机的使用情况,预测用户的年龄分布,如果是正常的年龄预测,那么作为回归问题会更好处理,但是这道题的label已经做了分桶处理,即对年龄段做了不同的划分,所以采用多分类的处理方式能更好的让模型拟合,挖掘细粒度的特征。

比赛一共给出7个文件,分别是训练集(age_train),测试集(age_test),用户基本特征数据集(user_basic_info),用户行为类汇总特征数据集(user_behavior_info),用户的激活app列表文件(user_app_actived),app使用行为日志文件(user_app_usage),app对应类别文件(app_info)

这里面,不同文件所含信息如下所示

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述basic文件前五列在这里插入图片描述在这里插入图片描述behavior文件前五列在这里插入图片描述
在这里插入图片描述activded文件前五列在这里插入图片描述
在这里插入图片描述usage文件前五列在这里插入图片描述
在这里插入图片描述 app_info文件前五列

在这里插入图片描述
可以看到,在basic,behavior中包含了一些基础特征,可以直接拿来给模型训练,但是app_actived文件是多值特征,难以直接训练,需要做更多的处理,而app_usage文件也变相的包含了多值特征,需要从中提取更加细粒度的特征。

评估指标:
这道题的评估指标比较简单,就是准确率auc,具体计算公式如下:
在这里插入图片描述
其中m是所有测试集的数量,如果预测的年龄分布与实际符合就记为1,否则记为0,最后求和取均值。
可以看到,预测的结果越准确,auc就会越高。

3.特征工程

1.缺失值处理
对所有的nan值都做了众数填充。当然如果是用lgb类的树模型的话,缺失值可以不做处理,树模型本身对缺失值处理的就不错
2.非数值特征处理
直接做labelencoder,时间关系的原因,并没有尝试onehot处理。
3.统计特征
对于basic_info文件中的基础特征做了二维的统计特征构造,分别构造了nunique特征,count特征和ratio特征。这其中,count特征和ratio特征表现不好,故舍去(我自己的理解在树模型中,这种count特征和ratio特征本质上包含的信息一样的,因为树模型是一个分类的模型,同时构造了这两个特征可能导致了特征冗余。)
三种特征构造的代码如下:
nunique特征构造:

feature1 = ['gender','city','prodName','ramCapacity','ramLeftRation','romCapacity','romLeftRation',
           'color','fontSize','ct','carrier','os','number_app'
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值