实战技能(七)基于大数据的应用——数据挖掘项目流程

思维导图

一、分析问题,明确目标

1.风险订单识别模型

  • 很多互联网公司都是中间商,需要连接用户与供应商,将用户的订单提供给供应商,由供应商履行订单

  • 但是在这个过程中,很容易会因为各种原因使得订单无法顺利完成,这样的订单称为风险订单

2.数据挖掘模型的作用

  • 通过数据挖掘模型,可以提前预估订单风险的大小,采取有效措施规避风险,减少风险订单的数量。

  • 既可以减少经济损失,又可以提升用户体验。

二、模型可行性分析

1.可行性分析的必要性

  • 并不是所有的问题都需要使用数据挖掘模型或者能够通过数据挖掘模型来解决。

  • 在建模之前需要进行可行性分析,没有进行可行性分析就盲目地套用模型,最终很可能会导致白白地费时费力

2.建模之前,从哪些方面分析可行性

(1)风险订单识别问题最终可以转化为二分类问题

  • 将历史上的风险订单标记为1,将非风险订单标记为0,通过模型对所有订单的风险性打分,打分区间为[0,1]

  • 通过模型训练得到阈值,对超过阈值的订单进行人工/自动干预,这样就将业务问题转化为了使用模型可以解决的问题

(2)需要考虑两个重要因素

  • KPI(关键绩效指标):在建模前需要明确业务方为项目制定的KPI,并且计算为了实现KPI模型要达到的准确率、召回率等

  • 历史数据量:再强大的模型,也需要通过训练足够的历史数据,从中进行学习,最终才能输出相应的结果

(3)判断模型可行性的流程

三、选取模型

详见“基础知识(八)模型&数据挖掘知识——常见模型介绍”

四、选择变量

1.步骤

  • 通过PRD文档、业务方需求文档,建立变量池

  • 组织变量讨论会,拓宽对业务的认知,丰富变量池

  • 借助SQL语句从数据库中提取变量,一小部分数据由业务方直接通过表格提供

2.常见的变量分类方法

(1)T+1变量:前一天或更早的数据,主要是历史数据,对时效性要求不高

  • 如:用户、供应商标签画像数据,用户、供应商历史风险订单,供应商被投诉情况等

(2)实时变量:短时间内获取的最新数据,通常延迟在5分钟以内,对实时性有较高要求

  • 如:用户当天的行为数据,供应商实时库存紧张程度

五、特征工程

  • 选择好变量之后,对这些变量进行处理,称为特征工程

1.验证逻辑

  • 特征工程中必要的步骤,特别是在添加某一变量使模型效果得到了极大提升之后

常见的逻辑错误:

  • 因果关系倒置,将结果作为变量放入模型中

  • 忽略模型上线后变量计算的时效性

  • 在取数过程中出现错误

2.缺失值处理

(1)对于一些模型(如XGBoost模型),在符合逻辑、确保缺失值具有一定意义的前提下,可以不做处理,其他情况都需要进行处理。

  • 例如:风险订单模型中,通常服务统计指标缺失的供应商为低频供应商,保留其空值,在一定程度上反而是最好的处理方法

(2)常见的缺失值处理方法

  • 用特定值表示(如-9999)

  • 统计插值(均值、中值、众数),适用于数值型变量

  • 模型插值:SKNN,参考最临近的k个值进行填补;EM聚类,选择不存在缺失值的变量进行聚类,根据所在类的其他值进行填补

3.异常值处理

(1)异常值处理的必要性

  • 判断业务逻辑在取数计算过程中是否出现错误

  • Hive取数时的join操作可能会因为一对多的对应关系而出现重复数据,需要随时验证数据的唯一性

(2)统计方法:3σ、盒形图、分位数

(3)模型方法:iForest(孤立森林),每次随机划分属性和划分点(值)时都是随机的,计算样本所处节点的深度,深度越小越可能为异常值

(4)常见的异常值处理方法

  • 删除异常数据所在的记录

  • 将异常值记为缺失值,用填补缺失值的方法进行处理

六、建立模型&效果评估

详见前面Python、R部分

七、模型上线&迭代

1.模型上线前

  • 通常需要将模型封装成特定的模型文件交由开发部门,开发部门定时调用模型文件

  • 常用方法:将机器学习/数据挖掘模型打包成PMML文件

  • 另外,需要提前制定好监控策略,保证模型效果在可控范围内

2.PMML

  • PMML(Predictive Model Markup Language)是一种通用的基于XML的预测模型标记语言

  • 使用PMML能够做到:

    • 任何语言都可以调用模型

    • 不存在调用的通信消耗

    • 直接部署上线,无须二次开发

    • 支持数据转换,比如标准化与one-hot编码等

2.模型迭代

  • 模型上线并不代表项目结束,还要针对模型上线后的表现进行迭代及修正

  • 随着模型的上线,此前很多有着非常重要作用的变量其重要性逐渐减弱

  • 需要时刻保持对模型的迭代,并在相应的代码管理平台及时更新代码,做好模型版本编号,以此形成一个完整的闭环


参考文献

1.《拿下Offer 数据分析师求职面试指南》徐麟 著

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容