14,413
社区成员




作者:陈丹奕,在天善智能、知乎等多个专业网站开设个人专栏,主讲数据分析内容。在百度时多次被邀为百度对外培训讲师,拥有百度认证金牌讲师证书。
在现实中,当一个数据分析师跟别人聊天的时候,经常会被问一些问题:
Q:数据分析人员能做什么?
A:从纷繁的数据里提炼出有价值的信息并给公司提供支持啊。
Q:你怎么提炼啊?
A:写程序采集啊,清洗啊,用一定的算法计算数据内部联系,根据业务做出判断啊……
Q:如果都是用已有的算法,这些事情为什么不能用现成的流程来做呢?或者为什么不能写成程序,让机器自己实现呢?
A:呃…………
作为一名数据分析师,跟人聊天聊成这样,非常常见也非常令人不爽。但我们数据分析师是不是仅能手工操作一些算法,等着机器和算法逐步取代我们么?并不是!
照例观点先行:数据分析不等于数据分析算法/程序,数据分析算法/程序只是分析师手中的工具,数据分析要取得成功必须依赖人的力量,数据分析师的作用在于根据对业务的理解,合理使用分析工具,完成分析目标。
结合业务的数据分析才是科学的,一切只看计算机输出结果不考虑业务实际情况的数据分析都是无(shua)用(liu)功(mang)。计算机能实现的算法也好,程序也好,只是数据分析中的一部分;如何选择分析切入点,如何选择数据来源,如何确定算法,如何解读结论,这些机器统统做不了,需要我们数据分析师来解决。
观点在上边两段里已经充分展示了,接下来我要愉快的展(che)开(dan)观点内容了:
数据分析通常包括几个阶段:提出/发现问题——获取并清洗数据——建模——调整优化——输出结论。
这是一个闭环流程,每一步都需要人工参与,程序会参与中间三步,算法在建模中会用到,而数据分析的最重要两步,问题和结论,目前是不可能完全交给计算机去处理的(其实我个人认为这两步在真正的人工智能出现前,绝不可能由计算机自动处理),因此数据分析人员最大的优势,就是“经验”,也就是业务理解能力和数据分析经验。详细解释一下数据分析的几个阶段:
提出/发现问题阶段:
大多数时候,数据分析都是为了解决一个问题(锁定某个产品的目标客户,对同样的人群做营销活动用A方案好还是B方案好,等等),或者验证一个猜想(不让旅游者上班高峰坐地铁是不是会大幅度缓解拥挤现象,啤酒和尿布放一起是不是真的会提升啤酒的销售额,等等),总之需要达到一个目标。即使是探索性分析(拿着一大堆数据看看能不能找出点什么结论),那也需要先预设一个或多个目标作为切入点,然后在探索过程中逐步修正。
提出和发现问题的过程,交给计算机干不太靠谱,首先计算机不会提出问题(因为笨),其次计算机能发现的问题也一定是人已经发现了的问题(还是因为笨),需要先有人来设定规则,然后计算机才能根据规则发现问题。而数据分析师,就是设定规则的人。
目标和规则的设定,一定要基于业务,这样分析结果才有用,否则会得出正确但无用的结论。举个栗子,订阅报纸的数据扔给计算机去分析关联关系,看有哪些报纸可以进行组合促销,最后得出个光明日报和人民日报关联系数90%多,所以这俩报纸可以组合起来卖,问题是这俩报纸本来就是要求党政机关订阅的党报,组合起来毫无意义,该订的还是要订,不订的还是不订,这就是典型的正确但无用的分析结果。懂业务能让分析师少做这种无用功,但是计算机要想懂业务就得由人来教,教还不一定能教会,教完了又不能触类旁通(报纸的关联算法拿到电商去完全不能用啊),这样的计算机永远都不如分析师懂业务。获取并清洗数据:这个阶段计算机参与的较多,分析师的工作是指出拿什么数据,拿哪些字段,数据获取到以后用哪些规则进行清洗整理。如果数据源不变,需要重复或定期进行分析时,这个阶段的规则可以固化,由计算机来自动执行,但规则仍然是由分析师来制定的。建模、调整优化:这两个阶段中,分析算法出场了,描述分析、关联分析、回归、分类、聚类、时间序列,每个类别里都有一大堆的固定算法,分析师不能通过手算得出结论,需要借助封装好算法的分析工具(图形化的SPSS,命令行方式的R,等等),看来这一阶段计算机要超越分析师了!
等等,建模哪有这么简单,计算机解决不了的问题一大堆呢:什么时候用哪个类别的算法(该做分类还是聚类),同一类别不同算法哪个更适合当前情况(K-means还是两步聚类,这是个问题),同一个算法怎么调整参数能使效果更好(到底该把用户聚成几类呢),算法输出的结果是否正常(有一部分数据出了问题导致分析结果出现偏差)等等。这些问题计算机统统不知道耶,需要分析师来告诉它该做什么事。
打个比方,数据分析就是打仗,算法是机枪、大炮、坦克等等技术兵器,分析师是士兵、炮手、驾驶员(操纵者),不能因为士兵自己不能一分钟吐出几百发子弹或者炮手自己不能一下子拆掉一个碉堡,就让机枪大炮坦克把操纵者扔下,自己上阵去打仗……就算是无人机,那也得有个拿遥控器的驾驶员蹲在办公室里操作啊……
算法始终只是工具,数据分析效果如何还是要看用工具的分析师功力如何。一个做过几十个分析项目的分析师,功力通常来说比刚入行的分析师或者纯开发人员要深厚一些(极少数天赋异禀的不算……),选算法调参数建模型的能力更强一些,分析出来的结果也会相对靠谱一些——没错,经验在这两个阶段就是优势。输出结论:这一阶段计算机的工作已经基本完成了,对模型输出的数据进行解读,那完全是分析师的天下——同一份数据给不同的分析师,可能会得出不同的结论,很多时候分析师并不单单根据数据本身得出结论,还要结合很多外界因素来修正结论。分析师的经验越丰富,拥有的有效信息量越多,得出的结论就越接近事实(之所以用接近,是因为对数据解读的准确度永远达不到100%,影响结果的因素太多了,比如一个企业销售额连续增长10年,分析师根据公司数据和市场情况判断下一年还会继续增长,结果老板出事跑路了,企业直接倒闭),而这个过程是计算机目前没办法自主进行的,商业智能系统做的再好,也需要由分析师来设定规则,告诉计算机在什么时间需要做什么。
也许随着大数据和人工智能的发展,有一天计算机可以完全不依赖人工设定的规则(不需要确定数据来源,不需要选择算法和模型,不需要人工干预来修正模型,等等),自己对数据进行全方位的分析,加入所有因素的影响,并输出准确度非常高的报告,只有到那时候,分析师才会失业啊。
不过,真到了那一天,恐怕不光是分析师失业的问题吧……
Python的爱好者社区历史文章大合集:
Python的爱好者社区历史文章列表
小编的转行入职数据科学(数据分析挖掘/机器学习方向)【最新免费】
小编的Python的入门免费视频课程!
小编的Python的快速上手matplotlib可视化库!
崔老师爬虫实战案例免费学习视频。
陈老师数据分析报告扩展制作免费学习视频。
玩转大数据分析!Spark2.X + Python精华实战课程免费学习视频。
如果你喜欢本文,请点赞,感谢支持~
每一个HTML文档中,都有一个不可或缺的标签:<head>,在几乎所有的HTML文档里, 我们都可以看到类似下面这段代码:
html{color:#000;overflow-y:scroll;overflow:-moz-scrollbars}
body,button,input,select,textarea{font-size:12px;font-family:Arial,sans-serif}
h1,h2,h3,h4,h5,h6{font-size:100%}
em{font-style:normal}
small{font-size:12px}
ol,ul{list-style:none}
a{text-decoration:none}
a:hover{text-decoration:underline}
legend{color:#000}
fieldset,img{border:0}
button,input,select,textarea{font-size:100%}
table{border-collapse:collapse;border-spacing:0}
img{-ms-interpolation-mode:bicubic}
textarea{resize:vertical}
.left{float:left}
.right{float:right}
.overflow{overflow:hidden}
.hide{display:none}
.block{display:block}
.inline{display:inline}
.error{color:red;font-size:12px}
button,label{cursor:pointer}
.clearfix:after{content:'\20';display:block;height:0;clear:both}
.clearfix{zoom:1}
.clear{clear:both;height:0;line-height:0;font-size:0;visibility:hidden;overflow:hidden}
.wordwrap{word-break:break-all;word-wrap:break-word}
.s-yahei{font-family:arial,'Microsoft Yahei','微软雅黑'}
pre.wordwrap{white-space:pre-wrap}
body{text-align:center;background:#fff;width:100%}
body,form{position:relative;z-index:0}
td{text-align:left}
img{border:0}
#s_wrap{position:relative;z-index:0;min-width:1000px}
#wrapper{height:100%}
#head .s-ps-islite{_padding-bottom:370px}
#head_wrapper.s-ps-islite{padding-bottom:370px}#head_wrapper.s-ps-islite #s_lm_wrap{bottom:298px;background:0 0!important;filter:none!important}#head_wrapper.s-ps-islite .s_form{position:relative;z-index:1}#head_wrapper.s-ps-islite .fm{position:absolute;bottom:0}#head_wrapper.s-ps-islite .s-p-top{position:absolute;bottom:40px;width:100%;height:181px}#head_wrapper.s-ps-islite #s_lg_img,#head_wrapper.s-ps-islite#s_lg_img_aging,#head_wrapper.s-ps-islite #s_lg_img_new{position:static;margin:33px auto 0 auto}.s_lm_hide{display:none!important}#head_wrapper.s-down #s_lm_wrap{display:none}.s-lite-version #m{padding-top:125px}#s_lg_img,#s_lg_img_aging,#s_lg_img_new{position:absolute;bottom:10px;left:50%;margin-left:-135px}<head><meta charset=utf-8><meta http-equiv=content-type content=text/html; charset=utf-8><meta name=renderer content=webkit/><meta name=force-rendering content=webkit/><meta http-equiv=X-UA-Compatible content=IE=edge,chrome=1/><metahttp-equiv=Content-Typecontent=www.czjy.cn;charset=gb2312><meta name=viewport content=width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no></head>.s-ps-sug table{width:100%;background:#fff;cursor:default}.s-ps-sug td{color:#000;font:14px arial;height:25px;line-height:25px;padding:0 8px}.s-ps-sug td b{color:#000}.s-ps-sug .mo{background:#ebebeb;cursor:pointer}.s-ps-sug .ml{background:#fff}.s-ps-sug td.sug_storage{color:#7a77c8}.s-ps-sug td.sug_storage b{color:#7a77c8}.s-ps-sug .sug_del{font-size:12px;color:#666;text-decoration:underline;float:right;cursor:pointer;display:none}.s-ps-sug .sug_del{font-size:12px;color:#666;text-decoration:underline;float:right;cursor:pointer;display:none}.s-ps-sug .mo .sug_del{display:block}
.s-ps-sug .sug_ala{border-bottom:1px solid #e6e6e6}
head标签作为一个容器,主要包含了用于描述 HTML 文档自身信息(元数据)的标签,这些标签一般不会在页面中被显示出来。