热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

还在懵懂状态?给处于初/中级阶段的数据分析师的两三点建议

写在前面本文主要是面向互联网行业从事数据分析工作的读者。主要讲解在日常工作中,需要具备的常用思维模式,尽量避免出错,提升工作效率。希望

写在前面

本文主要是面向互联网行业从事数据分析工作的读者。

主要讲解在日常工作中,需要具备的常用思维模式,尽量避免出错,提升工作效率。希望可以对大家有所启发,不当之处也欢迎随时批评指正。


正文

数据分析师的日常工作,简而言之,便是基于一堆数据,利用技术分析手段,通过各种维度的指标,描述某种现象或寻找特定规律。

用一个成语形容,那便是抽丝剥茧,既是技术活儿,又是个细致活儿

因此,对数据分析师的要求也就不言而喻,既要懂得各种分析数据的技术和方法,同时又要非常小心谨慎,谨防犯错。因为基于错误的数据,可能得出错误的结论,从而导致错误的决策,造成重大损失。

这样说来,想要做好这个工作,就必须要遵循一定的原则。不过,今天我们并不是要讲解如何避免犯错,而是站在一个全局的角度,聊聊如何培养比较好的思维习惯。

如果具备了良好的思维习惯,那么犯错的几率也会大大降低。

 


主题意识

数据分析的核心在于提炼信息,总结知识,形成智慧。

这是一个不断向上汇聚的过程,每一次的转换都是由大量的数据或信息凝结成少量的智慧结晶,完成这个过程需要的不是发散,而是围绕核心凝聚。

任何一个真问题,都应该有边界,因此边界之内就是你需要的主题。

 


1.由点到线,由线及面

 

数据分析师的日常,主要是围绕业务需求展开的,而这些需求,通常是由业务需求方从业务角度出发,提出的一些描述性或验证性指标,是比较零散的。

如果只是机械性地完成这些需求点,那么将是非常枯燥无聊的,并且有可能并不能帮助业务发展。

原因是这些零散的点,很难自发形成网络,构成体系。如果每个点都在说明一个问题,但是却不能产生联系,就无法解释更大的问题,那么数据的力量,也就很难发挥出来。

因此,对于数据分析师来说,看到一个需求点,就要想到或了解背后的决策模型(如何利用数据得出结论从而指导决策),并推演出这个决策实际会推动哪块业务的发展。

然后再反过来思考,是否有更好的指标或方式,可以用于指导决策,当前的决策模型是否存在漏洞。

这当然对大家有更高的要求,也会消耗更多的精力,我在这里强调的是一种思维习惯,保持这种习惯,你才能更加迅速地理解业务,发挥数据价值。

拿我们公司的一个业务场景来举个例子说明下:

业务方提出一个需求,内容是:需要一份一天内每个视频的播放失败次数的数据来作为节目下线的阈值参考。

这个需求非常简单,一条简单的SQL就可以解决,group by之后再count计数即可。

但是我们应该不止于此,我们要思考这个数据,业务方用来干嘛?怎么用?使用后会产生什么样的价值?

经过沟通后发现,业务方有个节目下线系统,希望可以实时下线播放失败次数较多的节目,因此需要一个阈值(M)。

当一天内某个视频播放失败次数超过该阈值M后,该视频就会自动下线,避免让更多用户产生不好的播放体验。所以,最终的目标或价值是优化用户播放体验。

因此,我们对需求做了改造。

不是简单的计数,而是对单个视频的播放失败次数由高到低排序并进行累加,求出大于某个失败次数(N)的所有失败次数的累加值(S)约等于总失败次数(T)的80%时N的具体值,即第80百分位数。

即将下线阈值设定为N时,可以下线掉占总播放失败次数80%的所有视频,这样的效果是非常明显的。

当然,最终这个N值的设定,我们是求了7天的一个平均值。

 


2.带入主题背景思考问题

 

数据分析师在日常工作中,最让人头疼的就是排查数据异常问题。

但是,这又是一个很难避免的问题。之所以让人头疼,是因为从数据定义到采集、清洗、处理、转换、装载、分析、计算、导出的链路很长环节很多,数据出错的原因实在是太多样、太复杂了。

遇到这种情况,有些数据分析师,就会慌乱,大脑中一团乱麻,不知从何处下手。

我给的建议是:

仔细观察现象,将和这个数据相关的主题背景知识都装入大脑中。

然后思考哪个环节出问题后会比较符合当前的现象,之后再提出假设、搜集证据、验证假设。

如果不对,立马调整方向,再提出新的假设、搜集新的证据、验证新假设。

这种方式,相对来讲是比较高效的,据说急诊室和ICU病房的急救医生,便是在紧急情况下,采用这种思维模式,快速寻找病因的。

 


3.以主题总结知识

 

数据分析师的工作内容,相对来讲会更零碎一些。

因此,涉及到的知识和积累到的经验都比较零碎,那么为了能够更好消化吸收自己的知识经验,最好的做法就是按照主题,将这些零碎的知识串连起来,形成体系,只有形成了体系,才能够更好的传承下来。

这不仅是对自己能力的一种提升,同时也为团队建设发展作出巨大贡献。

 

 


交付意识

 

数据分析师的主要产物就是各种数据结果和报表,而这些产出往往蕴含的价值很大,与此同时如果出现错误,后果也会比较严重。

因此我们应该有交付意识,把需求方当做是甲方,我们要对自己的交付物负责。

 


1.对结果负责

相信不用多说,大家都知道,数据正确与否的重要性。

错误的数据,可能会导致失败的决策,小的失败可能导致业务发展走弯路,大的失败可能让公司蒙受重大损失。

因此,对于数据分析师而言,给出的每一份数据,都要抱着对其负责到底的态度,这样大家才能建立相互信任。

比较好的做法是,每份给出的数据都要经过数据验证环节,通过值分布和量级比对、与其他维度数据的对比或者观察较长时间的趋势变化等手段,确保数据的合理性和正确性。

 


2.按时交付

 

数据通常都是具备一定的时效性的,有些数据随着时间的推移,价值会越来越小。

从需求方的角度来看,有些决策是不能长时间等待的,必须果断作出判断,如果用于支撑业务的数据,长时间不到位,那么决策的质量也会下降。

因此,按时交付数据结果,尽早提供决策支持,是对数据分析师的基本要求。如果因为特殊情况不能按时交付,应尽量提前和业务方协商,及时调整相应计划。

 


3.清单思维

 

由于数据分析的工作内容有些琐碎,很容易漏掉或遗忘东西。这很正常,据说人的大脑一般很难同时记住7件事。

那我们该怎么办呢?

我们可以向外科医生借鉴下经验,那就是使用清单。

你在做任何一个任务或解决某个问题时,首先使用上文提到的主题思维模式,将这个任务或者问题的各个方面都罗列出来,经过思考,形成你下一步要做的action list。

之后,你就根据这份清单做事,当把清单上的事情全部做完,这个任务或问题也就解决了。同时还可以确保重要的细节不会遗漏,交付的结果不容易出错。

 

 


学习意识

 

数据分析师的日常工作既需要用到大量的技术,同时也需要和业务紧密结合。

因此,不仅要不断充电学习新的技术或者深入钻研现有技术,也要不断去深入理解业务,这样才能提高工作效率,把事情做的更好。

 


1.学习新技术,关注行业发展

 

大数据相关的技术层出不穷,有些前几年很棘手,不好解决的问题,因为有了新的框架或技术,可能变得非常容易解决。

所以,我们要不断更新迭代自己的知识结构,时刻关注新的技术的发展。

另一方面,对于现在正在使用的技术也要深入研究,这样才能灵活应对日常问题,排除bug,减少出错次数,将自己的精力放在价值产出上。

 


2.相互学习

 

孔子曰:“三人行,必有我师焉”。每个人都有自己的擅长点,大家关注的事情不同,踩过的坑不同,获得的经验也是不一样的。

因此,同事肯定有大量的闪光点,值得我们去学习。而且这种方式往往是非常高效的。

原因是,一方面大家都在一个团队,使用的技术是相同的,因此,在这方面的积累都是学会就立马可以用的;另一方面,大家做的业务也是相同的,因此互相学习交流,可以促进对业务的理解,这些都是具体的,而不是抽象的。

 


3.以输出倒逼输入

 

掌握一门知识最好的方法,就是把自己的所学分享给别人。

我们学习别人的知识时,通常是比较零散地接收,但是如果要讲给别人听,你一定会进行梳理,然后加上自己的理解,将这些零散的知识串连成一体。在这个过程中,你就会变得更加熟练。

另外,分享通常也需要你可以解答别人可能存在的疑惑,因此也会要求你去了解更多的相关知识,以输出倒逼你去输入更多的知识,让你对这门知识了解的更加透彻。

 

上面是博主基于自己多年数据分析的经验,给刚入行的数据分析师们的几点建议,希望对大家有所启发,也希望可以帮助到某些小伙伴们快速成长。


推荐阅读
  • 在数据分析工作中,我们通常会遇到这样的问题,一个业务部门由若干业务组构成,需要筛选出每个业务组里业绩前N名的业务员。这其实是一个分组排序的 ... [详细]
  • 本文介绍了使用postman进行接口测试的方法,以测试用户管理模块为例。首先需要下载并安装postman,然后创建基本的请求并填写用户名密码进行登录测试。接下来可以进行用户查询和新增的测试。在新增时,可以进行异常测试,包括用户名超长和输入特殊字符的情况。通过测试发现后台没有对参数长度和特殊字符进行检查和过滤。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • 合并列值-合并为一列问题需求:createtabletab(Aint,Bint,Cint)inserttabselect1,2,3unionallsel ... [详细]
  • Oracle Database 10g许可授予信息及高级功能详解
    本文介绍了Oracle Database 10g许可授予信息及其中的高级功能,包括数据库优化数据包、SQL访问指导、SQL优化指导、SQL优化集和重组对象。同时提供了详细说明,指导用户在Oracle Database 10g中如何使用这些功能。 ... [详细]
  • MyBatis错题分析解析及注意事项
    本文对MyBatis的错题进行了分析和解析,同时介绍了使用MyBatis时需要注意的一些事项,如resultMap的使用、SqlSession和SqlSessionFactory的获取方式、动态SQL中的else元素和when元素的使用、resource属性和url属性的配置方式、typeAliases的使用方法等。同时还指出了在属性名与查询字段名不一致时需要使用resultMap进行结果映射,而不能使用resultType。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • ALTERTABLE通过更改、添加、除去列和约束,或者通过启用或禁用约束和触发器来更改表的定义。语法ALTERTABLEtable{[ALTERCOLUMNcolu ... [详细]
  • mysql-cluster集群sql节点高可用keepalived的故障处理过程
    本文描述了mysql-cluster集群sql节点高可用keepalived的故障处理过程,包括故障发生时间、故障描述、故障分析等内容。根据keepalived的日志分析,发现bogus VRRP packet received on eth0 !!!等错误信息,进而导致vip地址失效,使得mysql-cluster的api无法访问。针对这个问题,本文提供了相应的解决方案。 ... [详细]
  • ubuntu用sqoop将数据从hive导入mysql时,命令: ... [详细]
  • FineReport平台数据分析图表显示部分系列接口的应用场景和实现思路
    本文介绍了FineReport平台数据分析图表显示部分系列接口的应用场景和实现思路。当图表系列较多时,用户希望可以自己设置哪些系列显示,哪些系列不显示。通过调用FR.Chart.WebUtils.getChart("chartID").getChartWithIndex(chartIndex).setSeriesVisible()接口,可以获取需要显示的系列图表对象,并在表单中显示这些系列。本文以决策报表为例,详细介绍了实现方法,并给出了示例。 ... [详细]
author-avatar
_Terr1鄭x宜_F
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有