新闻中心

数据分析师工作中“数据分析建模”到底是什么?要学习得话有什么途径?(20_10_数据分析建模)

2023-12-27
浏览次数:
返回列表
目录

背景:目前很多数据分析师 其实是不太清楚机器学习建模能力可以如何应用于业务的。实际业务中的一些很复杂的算法例如内容推荐、商品推荐,不论是前中后期,都需要做大量的数据探索工作,这部分离不开数据分析师。数据分析前期可以为算法建模指导方向,中后期也是一直在探索,为算法的优化提供一些新思路。

前言

文章就着几个方面来对数据分析场景需要用到的算法进行阐述,帮助大家更好的理解为什么需要用到算法和模型。本文一共约7100字,阅读完大概需要10分钟,建议收藏慢慢看!

欢迎小伙伴来咨询与探讨

郑小柒是西索啊2080 次赞同去咨询

目录

一、对算法的一些理解

二、哪些场景下需要用到机器学习算法

三、算法的产出物和形态,可以帮助业务改变什么

四、为什么数据分析师也需要去捣腾机器学习

五、职责上,数据分析师与算法工程师

之间的差异?

六、实际业务中的要怎样协同分工、做配合,如何效用最大化?

七、算法的工程化部署应该由谁来做

八、数据分析师应该掌握的程度

什么是算法(Algorithm),专业的术语在很多书籍、文章里面都有分别的定义,通俗一点理解,大致上可以认为算法是为了解决某个问题的计算方法、步骤。

如果大家对数据分析的基础还有一定的兴趣,并且想要进行深入的系统性学习,还可以关注一下我这位朋友的课程,通过三天的时间掌握分析所需要面对的场景、工具、解决方案,在一个遍地都是数字化转型的时代能够抓住先机,早日实现财富自由。前 IBM 数据分析大咖 3 天实战训练营打工人升职加薪必备立即解锁

一、对算法的一些理解

大道至简

回答这个问题之前,先要理解一下什么是算法(Algorithm),专业的术语在很多书籍、文章里面都有分别的定义,通俗一点理解,大致上可以认为算法是为了解决某个问题的计算方法、步骤。

拆解一下上面这句话:

a. 目的:为了解决某个问题,可能在这之前还需要了解到背后的业务背景、关联到的场景;

b.方法:通过计算来实现,也就意味着需要具备具体的、可量化的信息输入,且可计算,而不是不切实际的概念体;

c. 步骤:有先后顺序,先做什么然后做什么最后做什么,每个过程之间还必须得具备可行性,执行次数也一定是有限的;

d. 结论:是否能够解决这个问题,最终必须得有一个产出物,虽然还不确定结果是什么;

在算法之外,还有几层扩展

e. 决策:根据一个结论或者多个结论进行判断,这个过程是不是符合预期的(遗留问题是谁来下决策,怎么保障决策的准确性);

f. 应用:除了解决最初的那个问题外,还有哪些同质类型的问题也可以得到解决,也就是场景的拓展;

……

具体的算法搭建过程就不说了,在不少工具书、专业书、案例书里面都有非常详细的讲解。回到问题上,什么场景下需要用到算法。举几个生活里面的例子:

譬如说做菜:为了能吃得更好点,选择一本合适的食谱来准备食材、辅料,根据步骤和技巧("小火炖、中火炸、大火炒"),“一炒、二炖、三焖、四涮”,起锅装盘;

譬如所上学:从家门出发,直走50米,第一个十字路口右转,继续直行100米,到达公交站,乘402路车,5站后下车,沿人行道继续行走200米,左转,再直行150米,最终到达校门;

……

这些都可以理解为算法,生活里面比比皆是,不过多数情况下成为了我们习惯的一种方式罢了。

二、哪些场景下需要用到机器学习算法

在很多场景下都需要用到,CSDN、上有很多很好的归纳性文章,摘取了一篇链接贴在下面

https://blog.csdn.net/liulingyuan6/article/details/53648273

前人总结好了的,站在巨人的肩膀上前行就好了,没必要所有的事情起手就是原创。

想换一个角度,来说说我对场景的理解。本质上说,我过去的一些项目里面通过算法解决的问题大致上可以分为着么几类

a. 供需匹配的问题

量变产生质变

过去的十年时间里,无论是在B2C,还是B2B、S2B、B2G,我们去建立用户画像做精准营销、做好推荐系统实现千人千面、对用户进行分层分类打标签、给用户的评价信息划分情绪好坏等等,都是为了更好的去做供需关系管理。即,

“ 谁可以找谁买到一件相对比较合适的东西(物品、信息、线索、商机),在这个过程中还可能需要通过哪几个谁才能打通彼此之间的联系。”

衍生出来的问题立马就出现了,怎么从千万级或者亿的商品里面进行匹配召回,怎么从万亿级的会话信息中定位到线索,怎么明确哪些人才是目标的人群,怎么把合适的信息通过什么渠道push到合适的人,如何去做到好的触达,又怎么来回收这些人收到信息之后的反馈。

如果只有几千/万条的数据,一个team里面10来个人,每个人分个百来条逐一去确认,都不需要通过分析也能做完,耗费的只不过是人力上的一点时间投入而已。所以日常对接需求过程中,接到一个需求的时候,一般会先去拆资源,这个事情能不能通过叠人力的方式去解决,如果通过线下大概需要花多少时间,用一些小数据样本的归纳总结能不能形成通用的规则,做个调研然后去推行的成本要多少,产出有多少;再之后才是通过算法方案去优化,投入的工程师要几人月,设备资源性能上的要求,能够持续多久,可以影响的层面,以及最后的产出估测。最后再综合考虑下,这个投入产出比的情况下,到底是通过小数据分析去形成规则,还是需要通过算法去挖掘特征,以及方案的可持久性。

大公司里面资源丰富,往往这两者是并行的,从某种程度上也就严格地区分了数据分析和数据算法之间的职责边界;小中企业资源有限,也就造成了分析即算法的现象。

不难察觉到的是,供需匹配过程中所涉及的算法,往往都是有监督的,不管是人群分类、商品召回、需求匹配,都可以通过过去的经验进行一个初步标签的建立,然后逐步的去对划分的准确性进行校验和调优。

值得一谈的是,在供需的过程中会并存很多涉及物联网的知识,譬如物流调度、配送匹配、路线优化、仓库建设等等供应链优化方面的事情,这些场景下除了算法外,还需要去了解下运筹学的内容。

b. 异常识别和诊断

异常检测,在前几年p2p还没有暴雷的时候,金融领域里面遍地都是,主要的场景就是风控。风控的场景细分:

信用卡交易反欺诈:分类任务,GBDT算法 / XGBT算法+LR逻辑回归;信用卡申请反欺诈:分类任务,GBDT算法 / XGBT算法+LR逻辑回归;贷款申请反欺诈:分类任务,GBDT算法 / XGBT算法+LR逻辑回归;反洗钱:分类任务,GBDT算法 / XGBT算法+LR逻辑回归;

“金融领域涉及到风控的几乎都是GBDT / XGBT+LR”

因为在金融行业有一个非常特别的属性:监管。对于算法结果必须有非常好的模型解释,对于LR模型来说,这是天然的优势,特征可解释,特征工程清晰,每个特征的贡献度也可以被统计出来。换了其他深度学习的模型,从最终的模型效果上来看,roc/auc/ks的表现没差,但是解释性极差,也就造成了很多应用上的壁垒。换一个通俗点说法,你很高级,然而并不实用,华而不实。

c. 排序

排序之所以单拎出来,它的应用场景其实有一定的局限性,但是怎么做好排序,客观、合理,却是一个值得去考究的事情。

d. 预测

销售预测、股票预测、流量预测,这些都是常见的预测场景。11、12年的时候清一色的都会用arima,spss在手天下我有,没有什么是时序不能解决的。到后面就变成xgboost、LightGBM了。

e. 知识图谱

12年的时候google推出来了一个叫Knowledge Graph的产品,能够很直观地看到词和背后知识的关系。

很多大一点的公司都已经在知识图谱的建设上进行布局了,知识图谱最早的应用是提升搜索引擎的能力,随后在辅助智能问答、自然语言理解、大数据分析、推荐计算、物联网设备互联、可解释性人工智能等多个方面展现出丰富的应用价值。这几年推广比较成功的应该是AI辅助司法进行案件判决

信息检索/搜索:搜索引擎中对实体信息的精准聚合和匹配、对关键词的理解以及对搜索意图的语义分析等;自然语言理解:知识图谱中的知识作为理解自然语言中实体和关系的背景信息;问答系统:匹配问答模式和知识图谱中知识主图之间的映射;推荐系统:将知识图谱作为一种辅助信息集成到推荐系统中以提供更加精准的推荐选项,知识图谱+推荐系统;电子商务:构建商品的知识图谱用于精准匹配用户的购买意愿和商品候选集,知识图谱+推荐系统;金融风控:利用实体之间的关系分析金融活动的风险以提供在风险触发后的补救措施(如反欺诈等);公安刑侦:分析实体和实体之间的关系获取案件线索等;司法辅助:法律条文的结构化表示和查询用于辅助案件的判决等;教育医疗:提供可视化的知识表示,用于药物分析、疾病诊断等;社交类业务:社交类业务具备高度连接的特点,比如 好友关系 等,<用户1,关注,用户2>。

三、算法的产出物和形态,可以帮助业务改变什么

最近经常听到的一个词,“大数据杀熟”,这应该是算法在业务上最常用的一种场景。

算法本身,在很多书本、云课堂、博客上,已经有太多的人积累了丰富的知识点。产出物有两种,一种是结果(分类、预测值),另外一种是算法本身的规则。

结果

其一,降维。不言而喻,无论是对数据的分类,还是对数值的预测,对业务应用来说都可以作为筛选的对象,进一步的缩小目标,找到清晰的划分边界,在一些临界点上减少人为决策成本,从诸多策略中选择一个相对最优去做尝试;

其二,精细化。把结果作为标签,结合CRM、营销系统、广告系统,帮助业务更加方便、精准地获取信息,创造卖点强化用户感知,制造新奇引导用户注意力,设定规则增加用户使用黏性;

其三,策略。降本、提效、增益,本质上去用算法解决的就是这几个事情,算法的产出结果能够有效地支撑策略的制定,即论证是或否的可能性;

规则

很多时候往往只会关注到结果本身,就是准确性怎么样、精确率怎么样,忽略了通过算法产生的规则层应用。前面有提到过模型解释性,其实就规则的具象化。

在关联分析里面,有提到过强相关、弱相关和不相关。作为业务,他可以说这个结果通过经验也知道,而作为分析,则是要把所谓的“经验”演绎成为规则,这个规则是通过数字之间的关心串联起来的。对于算法而言,在模型解释的时候,也会碰到一些特征具备很强的规则,但是往往会只看数据结果变现而忽略了它在实际业务过程里面的意义和根因关系,也就造成了“算法分析结果不如拍脑袋”的现象。

四、为什么数据分析师也需要去捣腾机器学习

数据分析+逻辑思维差不多已成为了一个必要条件,用数据去说话也是成熟企业/公司的要求。加上日益成熟的技术,在迭代越来越频繁的环境下,在,可以通过「数据分析实战训练营」直播讲解+学习社群的形式来加强对分析师各种能力矩阵的了解,增加自己的核心竞争力。前 IBM 数据分析大咖 3 天实战训练营打工人升职加薪必备立即解锁

先要明确一个概念,数据分析,既可以作为一个社会人的技能存在,也可以作为一个社会人的职业进行发展。

a. 多数情况下,我们只是在迎合这个世界的法则,而并没有去思考它为什么存在。

分析挖掘应用的项目中,算法是一个核心要素,大部分算法的原理、实现,或多或少会涉及一些高等数学知识。数学本身就是一个抽象的存在,普通人学得快忘得更快,自然而然的,算法对很多人来说就有了神秘感。

人类的好奇心和进取心,促使了人类的进化生存,所以我要揭开那层神秘,去学了;

同样的,人经常会高估自己的毅力及短期内能取得的成果,所以结果往往是:费尽周折投入大量时间弄明白一两个算法原理或实现后,再也没有勇力继续下去,此时可能走向另一个极端,只要能使第三方算法库在自己的系统中运行起来且能输出结果就可以了,效果不理想再换一个算法;

b. 数据分析为了达成目标,可以通过算法来实现快速论证

从经验上来看,分析师会点算法是有非常有必要的,尤其是面试的时候。最近几年,数据分析师的职责里面,多多少少都会写一点算法相关的要求。我自己的认知是,算法对于分析师,必要不充分。分析的重点还是在对目标问题的拆解、论证、实现上,对于大部分分析师而言,业务需求的特征大致上可以归纳为,交付时间短、实现成效快、数据维度丰富、结论支撑足够、方便报告汇报。

大部分业务分析场景都能通过类似于杜邦分析的方法实现层层拆解,这个过程中,对于数学知识的涉及可能也就停留在初高中水平,连矩阵计算都很少用的到,更别谈核函数、求导、积分的计算了。

市面上已经有了很多成熟的算法应用案例,有时候为了做数据论证,不得不需要用到类似算法,其目的是在最短的时间内找到一个可以去下结论的点。于是在应用的时候会碰到一个非常大的前提,每种算法都有其适用场景及前置条件,具体使用时超参的影响也极大。如果不从更高层次理解和对待算法,在实际运用算法时,就有可能犯刻舟求剑的错误,难以取得预想的效果不说,更糟糕的情况可能是,过早的否定掉一个本可以很好解决当前问题的算法模型,只因相关的工作没有得到足够的重视(譬如数据预处理方式不合理)。sk库提供了大量简单可复用的接口函数,所以,为了能够快速地运用这些函数解决问题,就不得不花时间去了解算法的内部实现细节。

建筑设计师不需要精通制造钢筋水泥的工艺,但需要了解不同钢铁、水泥的性质用途及之间配合关系,道理同样适用在这个环节。

c. 分析师要做好成长,横向知识的储备必须足够

数据分析师的成长,本身就是一场马拉松,需要合理分配时间和精力。专注力和自制力是一种稀缺资源,需要省着用。经常提醒自己的目标是什么,才有可能把事情做好,对于数据分析师来说尤其如此。

不仅仅是算法,在这个大的市场环境下,对于市场、行业、细分领域、垂直领域、岗位、职业、技术、技能很多个方面都需要有所涉猎,因为分析可能只是一个技能,作为职业需要贴切实际场景下做出相应合理的策略。

五、职责上,数据分析师与算法工程师之间的差异?

a. 数据分析师的要求

懂业务是前提。视野要求尽可能宽,需要去了解行业大盘、市场动态、公司业务、工作流程,需要建立自己的判别思维,即在指定场景下能够去得到合理的结论;

懂分析是核心。数据分析基本原理、高效的数据分析方法、灵活性的组合运用技巧、图表可视化的制作技巧;

懂汇报是天花。好的分析离不开好的报告,好的报告离不开汇报的技巧,在谁的面前怎么说话,也是一门技术活儿;

b. 算法工程师的要求

懂技术是前提。不同的算法可能用不同的时间、空间或效率来完成同样的任务,算法的运行效能需要具备一定的coding技术支撑;

专业极其细分。按照研究方向划分,主要是视频算法工程师、图像处理算法工程师、音频算法工程师、通信基带算法工程师、信号算法工程师、NLP算法工程师、生物医学信号算法工程师等;

知识深度宽泛。

c. 两者的共性和差异

共性:都需要对数据进行探索,发掘数据之间的模式和规律,从而运用一些列的规则和公式来解决实际的问题(都要读统计学、概率论);

区别:数据分析通过一些传统的方法来解决实际问题,门槛低,人人都是数据分析,实现效果即可忽略性能;算法工程师的门槛相对较高,需要对原有的方法进行一定程度的创新,来解决特定领域中的问题,且需要保证算法的性能、效果、稳定;

六、实际业务中的要怎样协同分工、做配合,如何效用最大化?

实际业务过程中,分析和算法的需求导入方式存在一定差异的。在协同上,往往有可能不同team的人,都在干同一件事,可能会因为需求导入时的背景、视角不一样,造成结论之间的差异性很大。

a. 一个案例「引用」

有一些人总是不及时向电信运营商缴钱,如何发现它们? 数据分析:通过对数据的观察,我们发现不及时缴钱人群里的贫困人口占82%。所以结论是收入低的人往往会缴费不及时。结论就需要降低资费; 数据算法:通过编写好的算法自行发现深层次的原因。原因可能是,家住在五环以外的人,由于环境偏远不及时缴钱。结论就需要多设立一些营业厅或者自助缴费点;

b. 如何协同

数据算法之前,应该有一轮数据分析的探索,通过对业务问题的定位和拆解,找到可以用的数据维度,采集数据,形成数据指标进行各种视角的统计分析,得出结论进行初次汇报,如上:人均收入低建议降低资费;

在业务信息聚焦的过程中,对发现出来无法具象描述出来的课题,组织进行专题研究,通过算法的形式构建数据特征进行深层次挖掘,得出潜在结论,如上:环境偏远建议增加驻点;

之后针对算法的结论,可以进行可行性分析,基于业务上的诉求,分析选址位置、人群覆盖、套餐标准等等。

c. 小结

分析和算法,某种程度上可以混淆在一起,小团队里面,1~2个资深的分析也可以hold ,很多事情都是自己进行的,但是从事情的推进上,一般都是先分析,再专题,再深度结合业务分析,再算法迭代,如此反复。

七、算法的工程化部署应该由谁来做

算法会写算法,分析也会写算法,那算法谁去做部署,怎么部署;

专业的团队里面,各自有分工,数仓团队实现etl清洗、维度建模、搭建数据集市,分析团队实现业务维度的指标体系建设、分析场景定义、分析内容定型,算法团队构建特征工程、算法过程建设、参数调优、算法部署、任务监控、效果优化,运维团队搭建任务调度平台、资源监控、性能调优、环境配置、网关设置,应用团队去支撑上层业务的应用。

然而对于很多团队来说,并没有专业的数据工程团队,算法脚本开发完之后,可能会在服务器上进行简单的临时部署,周期性的唤起程序进行数据运算。但是这时候会暴露出很多问题,算法任务的版本管理、新老算法的兼容性、数据运算效率、大数据计算性能、算法对外接口开发等等。

所以,最好的方式,是在团队内设置一个数据运维或者数据应用的岗位,去支撑算法任务的调度工作;

八、数据分析师应该掌握的程度

综上,对于一个数据分析师来说,在各个层面需要掌握的能力要求可以说如下:

业务了解 ★★★★★分析思维 ★★★★★归纳总结 ★★★★★报告撰写 ★★★★★业务协同 ★★★★资源整合 ★★★★行业知识 ★★★★汇报演讲 ★★★★数据处理 ★★★★coding能力 ★★★算法原理 ★★服务器知识 ★★网关知识 ★

写文不易,如果喜欢加个关注吧!我的个人公众号:郑小柒是西索啊

搜索