大数据和人工智能时代,数据分析是个热门话题,数据分析师貌似也是个热门职业。很多门外汉想学,但面对浩瀚繁杂的技术,也搞不清该从哪里开始。于是,经常有人问这个问题,当然还有问得更具体的,怎么能学会SQL啊,要不要学Python啊,其实背后经常都是一回事。
这里刻意把“处理”也挂上,因为数据分析并不会单独存在,用来分析的数据常常还需要自己去准备去整理,这些都是数据处理的范畴。比如把一堆Excel给合并起来,也许下一步的任务就是分析了,但这一步却少不了。还有些事情,比如用花名册生成员工卡,说成是数据分析显然不太合适,但这也是日常工作中要干的活。这个贴子就把这种折腾数据的事都放一起说了。
另外,这是个面向门外汉的话题,讲到能进入专业状态之后就不能再说了,之后相关的技术更多更繁,但能走到那一步的同学,自己都门儿清了,用不着再看这个贴子的唠叨了。
还要特别强调一点,数据分析并不只是个技术问题,甚至可以说主要问题并不在技术。有很多同学可能认为只是掌握一些相关的技能后就会做数据分析了,这就彻底搞拧了。做好数据分析的重点在于业务知识,也就是你要知道有啥需要被分析。业务经验充分的人用很原始的技术,也常常比毫无业务感觉的人使用高档技术能分析出更多有意义的结果。这就像掌握各种车辆的驾驶只是某种技能,而知道要把货运到哪里能卖出好价钱才是更重要的。用手推车运货,只要运对了地方,有可能会比用汽车运货挣到更多的钱。做数据分析不要迷信技术和工具,如果你本来还不知道做数据分析的业务目的,那学会技术和工具也是白搭。而且,同类同级别的技术和工具通常也差不多,对于数据分析目标而言差别很小(奔驰宝马对于个人乘坐并无区别),刻意选择的意义不大。
言归正传,这篇主要还是讲技术,毕竟掌握技术还是能大幅提高工作效率的。
我们从最基础的讲起:
第0级,Excel
你没看错,人人都会使的Excel就是最基础的数据分析和处理技术,也就因为Excel几乎人人都会使,所以这一级叫第0级,没把它编进序号。
Excel能干啥和怎么干,这里就不多说了,网上资料太多。而且,以门外汉自居而关心数据技术的同学,多少也都会使点Excel。这一关对大多数人来讲可以认为是能过去的,但却不能不列出来。如果觉得Excel使得还不熟(比如不会用VLookup,不会写if),那自己去补课了。反正这是基础中的基础,现在再牛的数据分析师都绕不开这玩意儿。
第1级,敏捷BI
敏捷BI就可以帮我们做的分析称为多维分析了,也就是各种分类方式去看统计数据,比如按月份看销售额、按地区看产量、或者几样一起看。哪一块汇总数大了,可以再钻进去看看怎么回事,比如北京销售额不错,那要看看是不是海淀人民购买热情特别高。还能把这些统计数据画成各种图形来看,联动起来能更形象也更容易发现问题或规律,这就是妥妥的数据分析了。分析出的结果做个报告给老板看,升职涨薪那都不在话下。
敏捷BI的代表产品主要是国外的几家,PowerBI、Tableau之类;其实Excel本身也有个透视表,可以做基本的多维分析,但细节做得还不够好,而且它的这功能也可以算作第1级技术了。
国产的报表工具和BI厂商也有很多在喊敏捷BI,然而,坦白地说,木有一个合适的。国产BI产品(下面也会说到)老实说就技术水平而言,做得还挺好(其实从某种角度上看比国外产品的技术含量更高),但都沉重得很,根本不敏捷,原因说起来挺复杂,初学者暂时也理解不了。反正如果看到有非专业人员自己折腾国产BI产品分析出啥结果了,都可以认定为是厂家编的案例在忽悠你。就记住,现在没有简单易用且面向非技术人员的国产敏捷BI产品,未来大概率也没有。
第1级,润乾报表
前面说了,我们还会碰到用花名册生成员工卡这种烦人事,敏捷BI帮不了这个忙,润乾报表就擅长了。
润乾报表不也是个传说中的国产BI类产品吗?这刚说了就打脸?
非也,润乾报表是国产报表工具(也算BI吧)不假,但在第1级技术中,它不是以BI技术出现的,它和其它国产货一样,并没有敏捷BI的本事,它就是一个做报表的工具。
Excel做报表没问题,但只能做静态的,行列根据数据量变化的表,你不会做吧,如果再有多片多层分组交叉的情况,数据变了每个月都要重做一次,那真是很累很累的,而且稍有不慎就会搞错。这种出报表的事,你说它算不算数据分析呢?这并不重要,反正日常工作中总要做,而且敏捷BI们通通搞不定。
对于润乾报表来讲,这些事就很easy了,做一次模板之后,数据变了一键搞定,动态行列多层报表毫无压力。中国人的报表技术天下第一,这可不是吹的。
那为啥只提润乾报表,其它国产报表工具不行吗?
因为只有润乾报表提供了面向非专业职场人员的使用方式以及相关的课程资料,确实也有其它报表工具也能做复杂报表,但都是面向专业技术人员的(也许哪天也有产品会加入到职场市场),处在你这一级的同学搞不定(再往后学就可以啦)。
敏捷BI和润乾报表代表的数据分析和处理算是常规技术,所涉及的运算难度也就是和四则运算相当(大部分是加法,还有取最大/最小等等),不超过初中水平,是个人都能懂。但这些运算还有可能会涉及各种条件,比如只加500块以上的订单、只看北京3月的情况等等,难度不大,烦度很大。传说中高大上的BI分析其实就些东西,和我们平时用Excel做个报表在细节上没区分,只是自动化程度更高,这玩意儿看破了不神奇。
第1级,易明建模
还有另一条线的数据分析技术,也就是现在很热门的人工智能(数据挖掘、机器学习、…),这里涉及的运算要复杂得多(不过也离不开常规数据处理技术来准备数据),动不动就是概率论、统计学之类的公式了,这一点都不简单了,远远超出中学水平,没好好念数学课的大学生都搞不懂。
按说,这么复杂的技术不该是第1级的事情了。
不过,有了这个易明建模就可以了。
易明建模把这些复杂的人工智能算法都封装起来了,使用者只要把数据准备好(就是Excel的表格即可),丢进去,它就能自动建出模型了,然后就可以预测了。因为这里固化了顶尖统计专家数十年的经验,对于大部分商业场景,它比不熟悉机器学习算法的程序员做得还好。
那为什么又把这东西单提出来?没有其它自动人工智能的产品吗?
有,但又是太沉重,你还是搞不定,不适合这一级的选手。
这三种技术(产品)门槛都比较低,也就是要写点公式,仅仅比Excel难一点点,可以并列为第1级。
易明建模其实使用起来最简单(连公式都很少填),但需要了解一些数据挖掘知识(算法不用懂,要对建模预测的机制有点概念,也要学会如何评价模型的好坏),而且人工智能业务也显得高端一点,算作1.5级也行吧。
第1级的状态,还不需要学会编程序(如果写公式不算编程的话)。
第2级,SPL
然后,就要开始学编程了。
有些事会涉及更复杂的计算,虽然每一步还是四则运算难度,但步骤多了用一个公式很难写出来,要分几步才行,过程中还可能有判断;更麻烦的是有些要重复做N遍的事,如果都是手工操作那会累死人,比如把500个Excel合并拼起来或者把一个Excel拆成500个小文件。这里有本书http://c.raqsoft.com.cn/article/1649301821440 ,里面绝大多数问题都是实际发生的,而用Excel以及第1级技术却很难实现。
如果学会编程,这些就不是个事了。
这个道理好懂,但为啥是这个SPL,编程语言不是很多吗?
是很多,但在这一级里没有别的了。
做数据分析处理,基本都是在处理表格式的数据,这有个学名叫结构化数据,如果所学的程序语言不擅长对付结构化数据,那只能拿着做做算术题玩,对于数据分析处理却无济于事。然而,能很方便地处理结构化数据的程序语言就不多了,包括Excel里自带的VBA都不行,算下来就只有SPL和SQL,还有Python看起来也能对付(有很多培训班在宣称),但SQL和Pyhton都是专业级的技术(后面会说),出现在第2级太早了。
关于业余人员学编程,还可以参考这个:http://c.raqsoft.com.cn/article/1612232365820
以上是业余级别的东西。之后就可以进入专业级别了,也就是程序员的世界。
第3级,SQL
程序员世界里的数据分析处理技术,SQL是首当其冲的。数据库可能是存储最多数据的地方,而这里的数据主要就是用SQL来耍,不会SQL很难在数据圈里混。
简单SQL长得像英语,语法学起来很容易。如果已经掌握了结构化数据的概念和运算,估计也就看上几小时语法书就能上手写查询了,按说不应该是个专业级的技术。但是,你学会了没地方用啊,得有个数据库才能跑SQL,安装数据库以及把数据倒腾进去来做查询,都是很专业的任务,会折腾这种事的你已经是个半职业的程序员了。
倒是可以用SPL来学,SPL中也实现了常见的SQL,可以让使用者针对文件执行SQL。不过,如果学会了SPL,在处理分析文件数据时也没必要学SQL了,SPL的运算处理能力要远远强于SQL。
这里有个贴子讲初学者怎么学SQL:http://c.raqsoft.com.cn/article/1619312554522
重复一下这个帖子中最后强调的:SQL入门容易,但精通很难,复杂的SQL始终还是很复杂的。三行五行的简单SQL通常只会大量出现在教科书和培训班,现实中用于做数据分析的SQL语句,说起长度时我们通常是用K(千字符)而不是用行作为单位的。
它还是在这一级比较合适。
第3级,国产报表工具与企业BI软件
现在该轮到说国产的报表和BI软件了,这些东西可以看成是第1级的敏捷BI和润乾报表所做事情的企业级版本。
企业应用建设时也会用到报表和BI功能,这方面国产软件的技术要比国外做得好得多得多得多(这可能是唯一一个国产强于国外的基础软件领域了)。国内几家知名的都还不错,当然也各有特色,这里就不点名了。掌握这些产品和技术后,作为程序员要搞企业级的BI和报表分析业务时,就会得心应手了。
使用这些技术做出来的系统,就可以给非专业的业务人员使用了。但我们并没有在第1级提及,因为使用企业内部已经做好的应用系统也不需要专门去学啥技术,按操作规程做就行了,真有难一点的内容,企业也会提供统一培训,所以用不着在这里说了。
作为系统建设者的程序员,要比使用者懂得更多。学习这些技术(产品)时也要同时学会多维分析、报表模型中更深一点的理论知识了。
弱弱地说一句:国产BI技术含量虽然高,但做出来通用企业BI用处并不大(看这里http://c.raqsoft.com.cn/article/1612925790144 ,也解释了为什么国产没有敏捷BI)。不过可以不用管,反正现在还有客户肯掏钱,学了这些技术就能有事干,将来做专用的企业BI也还需要这些知识的。
第3级,SPL
SPL又来了,它同样可以作为程序员的武器来做结构化数据的处理和计算。
程序员不是已经有数据库和SQL吗?
是,但还有很多场景下没法用数据库也就没法用SQL。程序员也要对文件数据做处理,有多个数据库的情况也没法直接跑SQL,能跑SQL的数据库叫关系数据库,还有一堆不是关系数据库的数据库,比如MongoDB,还有json,xml这些奇怪格式的数据。这时候,掌握SPL技术就方便多了,它不要求有数据库,啥场景都能算。
而且,SQL在处理很多有过程运算的时候也不方便,企业应用中常常会出现我们前在说过的长达几K十几K的SQL。而大多数情况用SPL要简单得多,开发效率也就高得多。有过企业报表开发经验的同学都知道,报表没完没了做不完,开发成本极高。而我们的国产报表工具已经把呈现解决得很好了,仍然会出现这种现象,主要就是因为用SQL或Java等去实现数据计算的难度太大效率太低。会了SPL,这些事就会轻松多了。
这一级别的SPL要比第2级的复杂,需要学会如何连接数据库以及各种其它数据源,还要知道如何被应用程序调用等。
第3级,AutoML平台
再说说人工智能那条线。作为刚进入专业级别的程序员,还很难自己做出复杂的人工智能模型,所以还是要用这些AutoML(自动机器学习)的工具。前面说了,除了易明建模是个轻量级产品外,业界提供的其它AutoML产品都有点沉重,虽然仍然不需要多少人工智能算法方面的知识,但还是要有点程序员的功底才能折腾得动(不是数据处理的功底,而是搞应用系统部署调试之类程序员本身的本事),所以列到这一级了。
这一类的产品和技术国内外都有一点,国外的更成熟一点,大名鼎鼎的google也在做。其它就不点名了,自己上网搜搜吧。
顺便说一句,易明建模也有程序员的版本,也可以算是AutoML的一种列到这一级。
类似地,这个也可以算作3.5级。
然后呢?然后就进入专业级别的深造期了,那技术就多了。
搞性能优化,用SPL,但重点是高性能算法;玩大数据,用Hadoop/Spark/…;做人工智能学Python,其实更要学的是数学;…。都这级别了,也不用再说了。
好象有个问题,Python的段位会如此之高吗,不是很多培训班宣称这是让职场人员提高工作效率的东西吗?
没搞错,Python是很专业的东西,会Python的人也绝大多数都是重度专业选手,它只是看起来简单,用来学习基础编程逻辑是没有问题,但想学以致用来处理结构化数据就一点也不简单了,它完全不像某些培训班宣称的那样能让普通职场人员学会后可用于处理日常工作。这个话题在前面链接的那个零基础人员学编程的帖子里有讨论,有兴趣可以找来参考。
Python拥有大量涉及人工智能技术的开源库,前面说的自动机器学习产品用起来简单,对于很多场景也足够用,但是顶尖的高手还希望能控制得更深入,而且自动机器学习软件也有不少解决不了的场景,这就需要自己来动手了。不过,这需要真正理解人工智能技术,而这些技术的核心是数学(统计学)。
除Python外,类似的产品技术还有商用的SAS、开源的R、以及MATLAB里也有很多算法,都用Python代表了吧。
路线图
SPL资料
|