讯飞赛题 | 移动设备用户年龄和性别预测

赛题:2021 iFLYTEK A.I.开发者大赛-讯飞开放平台 (xfyun.cn)
数据集:讯飞开放平台比赛移动设备用户年龄和性别预测数据集

【写在前面】

1、第一次做赛题,用的算法也比较简单,代码在这边–> GitHub – mutsuo/Challenge: 放比赛的开源代码

说实话自己并不是很满意,所以欢迎与我交流!发现任何问题麻烦帮忙指出来!如果有优化或者学习/比赛的建议麻烦告诉我!我会很感激你!

2、原赛题的背景与设备厂商有关,若要考虑与实际工作相结合的话,我认为可以归为用户画像一类问题。背景相关见这篇博文:论文笔记 | 用户画像_睦生-CSDN博客

目录

1 系统模型

2 算法设计

2.1 数据预处理

2.1.1 事件日志分析

2.1.2 数据规约

2.1.3 数据挖掘

3 实验结果

3.1 实验环境及相关参数设置

3.1.1 数据集

3.1.2 超参数设置

3.1.3 评价方法

3.2 实验结果与分析

4 结论

1 系统模型

讯飞赛题 | 移动设备用户年龄和性别预测

图1 系统总架构图标题

本研究系统的总体结构框图如图1所示。基于终端行为的用户画像需要通过数据采集、数据预处理、数据挖掘三个步骤来完成。数据采集模块为后续工作做好数据准备,首先从日志系统中抽取日志信息,同时从CRM数据库中导出涉及终端的使用者信息。数据预处理模块对数据进行进一步提炼,并完成缺失值填充、异常值处理等工作,形成结构化、干净、完整的数据集。数据挖掘模块使用分类和回归方法正式对数据进行建模。

2 算法设计

2.1 数据预处理

2.1.1 事件表分析

在导出的事件表中加入APP类型属性(app_type)。由于专家定义的特征标签总量较大,若直接将结构化的tag_list与原始宽表连接,会出现维度爆炸的情况;若保留tag_list的原始结构,则需要使用词袋法进行预处理,这会使矩阵过于稀疏。因此这里根据app_id导出标签矩阵,使用无监督的KNN方法进行二次分类,将APP分为20类。

2.1.2 数据规约

1. 提取用户活跃系数

根据事件发生日期date导出用户的活跃系数。用终端的连续活跃天数和单日活跃次数来描述用户的活跃情况,定义活跃系数A如下:

讯飞赛题 | 移动设备用户年龄和性别预测

讯飞赛题 | 移动设备用户年龄和性别预测

2. 提取用户偏好系数

根据is_installed和is_active导出偏好系数属性(pre_index)。is_installed和is_active是事件表中用户的两种行为,即安装APP和激活APP,这两种行为可以直接说明用户对目标APP的偏好,这里分别给两种行为一个评分,通过加权和的方式来衡量用户对目标APP的偏好程度。其中,由于激活行为表示用户对目标APP具有使用欲望,因此赋予比安装行为更高的权重,定义偏好系数如下:

讯飞赛题 | 移动设备用户年龄和性别预测

3. 特征选择

(1)基本属性

从用户信息中选取性别和年龄属性;从终端信息中选取终端品牌和型号属性。

(2)领域属性

用二次分类后的APP类型和数据规约后得到的活跃系数、偏好系数来表征用户的行为。

根据以上属性重新定义表结构,抽取数据组成新表。

4. 数据清洗

  1. 以device_id为唯一标识清除重复行
  2. 分别处理缺失值和异常值
  3. 用词袋法处理离散属性
  4. 对数值型属性进行min-max归一化

2.1.3 数据挖掘

本次数据挖掘的目的是探索用户行为与年龄和性别之间的映射关系,由于性别是离散型属性、年龄为连续型属性,因此可以将任务拆分为两个子任务。本文尝试使用KNN与决策树模型求解用户行为与性别的映射,通过简单线性回归和多元回归求解用户行为和年龄间的关系。需要注意的是,因为在预处理环节对年龄做了归一化处理,导出结果时需要对数据进行还原。

3 实验结果

3.1 实验环境及相关参数设置

3.1.1 数据集

数据由训练集、测试集数据组成。涉及终端总数超过2万部,包含用户信息、终端信息和用户行为属性,具体抽取方式见上文算法设计一节中的数据采集部分。在模型训练过程中,将上述训练集按照7:3的比例再拆分为训练集和验证集。

3.1.2 超参数设置

训练决策树模型时使用的是基于信息熵增益的方法,最大深度设置为6;训练KNN模型时设置n_neighbor为40。建立多元回归模型时首先对数据进行Z-score标准化,再使用随机梯度下降法拟合模型。

3.1.3 评价方法

定义两个评价指标如下:

①score1 = accuracy_score(standard[‘gender’], submit[‘gender’])

②score2 = 1/(1 + mean_absolute_error(standard[‘age’], submit[‘age’]))

评价指标为以上两个评分的总和。

3.2 实验结果与分析

为测试本研究提出的模型,本实验分别采用Accuracy和1/(MAE+1)对两个子任务的结果进行评价,如表1序号2至5所示。对于性别预测任务,KNN方法的效果比决策树方法的效果要好;对于年龄预测任务,简单线性回归方法的评分要高于多元回归方法。

在本研究的预处理部分,根据APP标记数据进行了二次分类,同时对数据进行了规约处理,基于原始数据导出用户活跃系数和偏好系数两个新属性,为展现这两项预处理操作对于结果的影响,本研究做了对照实验,见表中”KNN-简单线性回归*”。可以看到在本次实验中,模型的测试效果更大程度上取决于数据预处理时对数据的提炼。

表1 模型在测试集上的评测结果

序号

方法

score1+score2

1

KNN-简单线性回归*

0.84138

2

KNN-简单线性回归

0.85261

3

KNN-多元回归

0.85166

4

决策树-简单线性回归

0.85128

5

决策树-多元回归

0.85033

4 结论

本文通过性别和年龄来描述用户,实验证明,如何运用特征工程从原始数据集中提取、选择特征会对模型运行效果造成较大影响。此外,在本实验数据集中,使用KNN与决策树、简单线性回归与多元回归方法的模型效果接近。

Original: https://blog.csdn.net/mustuo/article/details/122133600
Author: mustuo
Title: 讯飞赛题 | 移动设备用户年龄和性别预测

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/600732/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球