专栏首页Banber可视化云平台数据建模无从下手,看看这篇文章

数据建模无从下手,看看这篇文章

“我最近在学习数学建模相关知识,一些模型,例如马尔科夫模型,数据包络分析,时间序列分析等等,我去网上各种论坛博客,搜索资料,看博主们写的文章,但总是有些一知半解,就是大概知道这些模型是干什么,但是好像也不是很清楚,一些术语啊什么的越看越模糊,想自己搞懂然后整理出实现的代码却发现无从下手。”

从这个问题来看,应该是对于为什么要学习数据建模不是非常清楚。我们从经验角度来做个分享,相信对于有所帮助。

也许学习数据建模知识是为了找数据分析工作,因为很多数据分析工作中都有要求说。要懂算法的数据建模,所以这是进入这个岗位必备具备的门槛。

但是很重要一个问题,你更多专注于这个技能包括哪些知识,哪些具体的算法。算法的原理是什么,如何实现。

但是像问题中提到的,下面的问题其实应该是要先了解清楚:

到底数据建模解决什么类型的问题。例如:如果你去负责C端的会员数据分析,业务方有这样的场景说,能否告诉我:

  • 每个用户未来流失的可能性是什么?
  • 针对可能的流失会员特征是什么?
  • 有相关的数据画像或者标签,或者有相关的数据后,可以针对性的构建运营方案,来降低会员流失率。
  • 后续可能流失高价值的会员提前预警,避免会员已经休眠了再来进行营销动作,从而效果会大大打折。
  • 在企业工作场景中,什么样的场景会用到数据建模?
  • 在实际企业工作中,数据建模的流程是怎么样的?
  • 在数据建模过程中,要注意哪些问题,才能保证建出来的模型是有效的?

如果没有搞清楚上述问题,当你去看网上别人写的文章或者分享的案例,往往就会一知半解。往往看了好多也没有感觉:

似乎好像学习到什么了,但是真要自己动手不知道如何下手。

我们以一个案例来完整描述一下,来解释如何学习数据建模:

一、商业价值理解阶段

商业问题:

  • 会员是公司核心资产,公司花了大量的钱把会员引入后。希望会员持续购买、持续完成在公司要的商业动作(有的未必是购买,例如:持续活跃,持续使用产品,公司通过广告变现等)。
  • 所以对于可能流失的会员进行相应的营销动作,把会员挽回。

商业目标:

  • 降低会员流失率10%。【在数据建模的时候,一定是要有非常非常清楚的商业目标,就是要解决的问题,具体改善哪些数据指标,改善多少。】

经验分享:

上述只是大概说明,在做模型之前相关的背景问题,目标必须花大量时间去理解,去确定。我之前团队的算法的小伙伴,我经常会问:

你这个模型做了要改善什么问题?

往往会说:要给会员打上流失概率标签;

解决业务具体什么问题?

解决会员流失预测,解决会员流失

这个模型能解决多少程度的问题?是10%,20%?

往往就没有办法明确回答。

所以很多公司算法工程师,往往就是在做模型,做模型。但是没有明确要解决问题到什么程度?

算法模型离线构建好后,要和业务沟通进行测试。要明确模型建好后,会在什么下的商业场景使用?例如:每周都会有流失概率达一定值的或者区间的进行主动营销。 还是有标签后,每天更新模型,系统自动会触发自动营销。 才能真正回答,模型能解决多大的问题。往往在商业环境说,很多人认为算法模型能解决所有问题一样,这是一个很可怕的想法。往往很难让花大量时间做的模型产生多大效果。

在这个阶段围绕商业价值与目标,多和业务讨论沟通。业务人员会给你很多业务知识上的输入:特别是描述清楚,从业务经验来说,什么类型的会员更可能会流失。

业务可能会说,一般第一次购买的会员,如果1个月不回来,一般就不会再来说了。因为之前通过数据分析,往往业务积累了很多业务洞察。

二、模型构建阶段

基于对于商业目标确定了。

建模数据周期:

会对建模对象进行定义,本案例中就是:流失会员的定义是什么?例如:截止到2020.8,最后一次购买时间离2020.8超过90天的。

建模的数据周期。例如:选择2019.1-2020.8作为建模的数据周期。

建模型的测试周期。例如:2020.8-2020.12作为模型验证周期。

算法模型选择:

算法是预测类,常用的算法如下。根据你选择的数据指标,数据类型来选择相应的算法模型。当然现在很多时候往往可以几个算法同时使用,可以结合几上算法预测结果综合使用。

  • 逻辑回归
  • 决策树
  • 随机森林
  • ......

但是建议,在实际应用的模型中,不像推荐算法这种实时应用场景。一般选择常规的算法模型都能满足商业的诉求。

建模数据指标构建:

构建模型,使用哪些数据指标

每个数据指标的定义

开始在数据库中清洗相应的数据指标

有时候也会对进入算法的数据指标进行相应的预处理,例如:归一化处理,相关性分析,删除一些高相关性变量;对缺失的数据记录进行处理等。

构建算法模型:

使用相应的算法工具来实现上述的选择算法。一般来说,大多数据的公司不会自己去开发底层的算法,一般使用相关的软件可以满足我们日常的商业应用,例如:

python,SAS等。

然后验证模型的有效性,模型命中率等模型本身的指标没有问题后。用建好的模型去跑验证数据集,看看效果如何。

开发模型阶段效果再好,也要放到实际环境中检验。往往在建模阶段不要过于追求模型效果多少,例如:超过90%。往往会存在模型的过拟合模型开发的数据,放到新的数据可能模型效果就很差的。所以模型的鲁棒性非常重要。

经验分享:

在跑模型的时候,你需要对模型不断进行调优。主要是:模型本身的参数,进入模型的数据指标数,新的数据指标。以我个人来看:我更喜欢从数据指标的构建来调优模型。不是纯从技术上调优,我认为模型最后还是体现人对业务的思考的结构化沉淀。

使用模型:

如果模型整体通过了,就跑出数据结果来。让业务方放在真正的业务场景去测试,收集效果。不管模型算法,或者过程使用了多少高深的技术,回过来还是要真正放到商业环境中跑与测试。

最后,我要说真正企业做数据分析。会用到算法模型,但是很少。因为往往业务方需要是希望先对基于数据进行商业洞察,设计商业策略,快速落地与迭代。但是当商业模型很大的时候,是要开始构建算法模型,考虑更多维度,更多指标来判断与发现商业机会点。

来源:知乎@数据海洋

文章分享自微信公众号:
Banber

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!

作者:数据海洋
原始发表时间:2021-09-10
如有侵权,请联系 cloudcommunity@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • MySQL:数据库优化,可以看看这篇文章

    数据库优化一方面是找出系统的瓶颈,提高MySQL数据库的整体性能,而另一方面需要合理的结构设计和参数调整,以提高用户的相应速度,同时还要尽可能的节约系统资源,以...

    Python数据科学
  • Docker学不会?不妨看看这篇文章

    上一篇文章(2300+字!在不同系统上安装Docker!)教大家如何在系统上安装docker,今天咱们来学习docker的基本使用。

    Python研究者
  • Docker学不会?不妨看看这篇文章

    上一篇文章(2300+字!在不同系统上安装Docker!)教大家如何在系统上安装docker,今天咱们来学习docker的基本使用。

    Python研究者
  • Python RPC 不会?不妨看看这篇文章

    RPC,全程为 Remote Procedure Call,是一种进程间的通信方式,它采用「 服务端 / 客户机 」模式,是一种请求响应模型

    AirPython
  • 想研究BERT模型?先看看这篇文章

    序列转换方式由基于复杂递归神经网络(RNN)和卷积神经网络(CNN)的编码器和解码器模型主导。表现最佳的模型也只是通过一个注意力机制来连接了编码器和解码器。我们...

    程序员一一涤生
  • 想研究BERT模型?先看看这篇文章吧!

    序列转换方式由基于复杂递归神经网络(RNN)和卷积神经网络(CNN)的编码器和解码器模型主导。表现最佳的模型也只是通过一个注意力机制来连接了编码器和解码器。我们...

    程序员一一涤生
  • Maven配置多仓库无效?来看看这篇文章

    当只配置一个仓库时,操作比较简单,直接在Maven的settings.xml文件中进行全局配置即可,以阿里云的镜像为例:

    程序新视界
  • 什么是锁都不懂?这篇文章你该看看了

    Java 中的锁有很多,可以按照不同的功能、种类进行分类,下面是我对 Java 中一些常用锁的分类,包括一些基本的概述

    淘课之家
  • 《信号与系统》很难?也许你应该看看这篇文章

    小枣君:大家都知道《信号与系统》是一门很难的课。今天给大家推荐一篇文章,看了之后,也许就会找到打开这门课的正确方式。

    鲜枣课堂
  • 浮躁和压力大的时候看看这篇文章

    声明:整理自 xiaolai.li 、 《少有人走的路》和 尤文文《如何面对压力》,略有删节。 越是重要的决定,越要自己去抉择。容不得别人掺和。 我是做咨询的,...

    s1mba
  • 如果你还不了解GBDT,不妨看看这篇文章

    这是来自读者的一篇投稿,因为公众号对 Latex 公式支持不是很好,所以可以点击文末 “阅读原文“ 进行阅读。同时也希望觉得有帮助的欢迎到作者的 Github...

    kbsc13
  • 99% HR不会的薪酬矩阵建模,看完这篇文章你就会

    在薪酬数据分析中我们想了解公司各个绩效人员的薪酬占比分布,这个薪酬数据分布是否合理,是否高绩效的人员获得了高薪酬,然后根据各个绩效人员的薪酬占比数据进行薪酬...

    王佩军
  • 使用ThreadLocal怕内存泄漏?那你应该来看看这篇文章

    你是否还只是停留在增删改查的业务开发阶段,是否对多线程的东西很陌生,这篇文章我们来聊聊多线程里一个很重要的类ThreadLocal。ThreadLocal俗称本...

    Lvshen
  • 金三银四,今年Python就业前,看看这篇文章找找感觉

    最近Python大热,就想要分析一下相关的市场需求,看一下Python到底集中在哪些城市,企业对Python工程师的一些需求到底是怎样的,基于此,爬取了国内某招...

    梦想橡皮擦
  • java开发入职半年,对未来迷茫?那你该看看这篇文章

    今天我们讨论的是入职半年对未来的一些规划,如果你有更好的建议,欢迎下方留言评论哦。

    Java编程指南
  • 如果你还在为春节回家的火车票着急,不妨看看这篇文章

    临近春节,很多公司都已经发了放年假的时间和年后上班的准确时间了,但是还有很多小伙伴还没有抢到回家和返程的车票,每年的春节都是12306爆点的时候,很多人都抢不到...

    框架师
  • 美团数据怎么爬,看看这个文章吧!

    https://bj.meituan.com/s/%E7%81%AB%E9%94%85/

    Python进阶者
  • 【修订完善版】面试又被 JVM 内存区域虐了?推荐你看看这篇文章!

    对于 Java 程序员来说,在虚拟机自动内存管理机制下,不再需要像 C/C++程序开发程序员这样为每一个 new 操作去写对应的 delete/free 操作,...

    Guide哥
  • 为何我建议1-3年的Java程序员看看这篇文章

    金九银十的跳槽面试季即将到来,最近跟朋友在一起聚会的时候,提了一个问题,说1-3年的Java程序员,薪资区间大致是在15-25K左右,那有没有可能提前达到30K...

    kirito-moe

扫码关注腾讯云开发者

领取腾讯云代金券