昨天有位刚入行数据分析的朋友跟我吐槽,自己入门到现在只会用excel做做分析图表,但是感觉越做越没有价值,数据分析似乎就是业务数据的分析员,不知道该如何提升自己。
这是因为他没有完全把数据分析的价值挖掘出来,数据分析是为了通过对数据现象的查看来完成对产品、营销策略、运营策略的优化,不仅是对业务,更重要的是要掌握数据分析的各种技能,从能力增长上突破职业的天花板。
根据我总结的经验,一个合格的、高级的大数据分析师必须要掌握以下9种技能:
- 统计分析:大数定律、抽样推测规律、秩和检验、回归、预测;
- 可视化辅助工具:excel、BI工具、python
- 大数据处理框架:Hadoop、storm、spark
- 数据库:SQL、MySql、DB
- 数据仓库:SSIS、SSAS
- 数据挖掘工具:Matlab、R语言、python
- 人工智能:机器学习
- 挖掘算法:数据结构、一致性
- 编程语言:Java、python
一、统计分析
众所周知,统计学是数据分析的基石。学了统计学,你会发现很多时候的分析并不那么准确,比如很多人都喜欢用平均数去分析一个事物的结果,但是这往往是粗糙的的。而统计学可以帮助我们以更科学的角度看待数据,逐步接近这个数据背后的“真相”。
大部分的数据分析,都会用到统计方面的以下知识,可以重点学习:
基本的统计量:均值、中位数、众数、方差、标准差、百分位数等
概率分布:几何分布、二项分布、泊松分布、正态分布等
总体和样本:了解基本概念,抽样的概念
置信区间与假设检验:如何进行验证分析
相关性与回归分析:一般数据分析的基本模型
了解统计学的原理之后,你不一定能够通过工具实现,那么你需要去对应的找网上找相关的实现方法,也可以看书。
先推荐一本非常简单的:吴喜之-《统计学·从数据到结论》;也可以看《商务与经济统计》,结合业务能更容易理解。
另外,如果想要更进一步,请掌握一些主流算法的原理,比如线性回归、逻辑回归、决策树、神经网络、关联分析、聚类、协同过滤、随机森林。
再深入一点,还可以掌握文本分析、深度学习、图像识别等相关的算法。关于这些算法,不仅需要了解其原理,你最好可以流畅地阐述出来,还需要你知晓其在各行业的一些应用场景。如果现阶段不是工作刚需,可不作为重点。
二、可视化辅助工具
数据可视化主要通过编程和非编程两类工具实现,对于普通行业的数据分析师来说,不需要掌握编程类的可视化工具,学习麻烦而且没有必要,掌握下面几种即可:
1、excel
别以为EXCEL只会处理表格,你可以把它当成数据库,也可以把它当成IDE,甚至可以把它当成数据可视化工具来使用。它可以创建专业的数据透视表和基本的统计图表,但由于默认设置了颜色、线条和风格,使其难以创建用于看上去“高大上”视觉效果。尽管如此,我仍然推荐你使用Excel。
2、BI工具
近几年冒出来的BI之秀,如TB、qlk都强调可视化,一改传统BI工具SAP BO、IBM家的cognos(不过近几年貌似都在研发云BI)。这里不谈开源,还没见到能成熟应用的BI。成熟的BI工具如 FineBI (国内)和 Tableau(国外),都很推荐。
tableau可视化探索分析很赞,数据量多的时候性能较差,企业用多并发价格贵。FineBI 国产帆软,为数不多能占据世界领先地位的数据工具,重在数据处理性能和企业应用的复杂情况(市场步伐很快),自带ETL,可视化还行,价格良心,个人用免费。
3、python
学过Python数据分析的朋友都知道,在可视化的工具中,有很多优秀的三方库,比如matplotlib,seaborn,plotly,Boken,pyecharts等等,这些可视化库都有自己的特点,在实际应用中也广为大家使用。
如果你不知道数据分析该学什么工具,就直接学python吧,万能语言学了不亏。
三、大数据处理框架
如果你想脱离普通业务的束缚,做一名大数据分析师,首先就要了解大数据框架的基础。
大数据处理框架负责对大数据系统中的数据进行计算,数据包括从持久存储中读取的数据或通过消息队列等方式接入到系统中的数据,而计算则是从数据中提取信息的过程。
我们按照对所处理的数据形式和得到结果的时效性进行分类,分为批处理系统、流处理系统和混合式系统。典型的批处理系统就是Apache Hadoop;典型的流处理系统有Apache Storm,Apache Samza;混合处理系统比如Apache Spark,Apache Flink。
四、数据库
数据分析是分等级的,有只负责清洗数据的,比较少,工作也比较简单;还有就是负责建模的,掌握常用的十多个机器学习算法就能是二流的了,要做到一流的就要熟练掌握各个算法的本质了,也就是要掌握数据库的基础。
sql在数据库里是核心技术,在数据分析学习时一定要重视这些内容,主要以MySQL为主,MySQL就是互联网行业的通用标准。
当然,如果你想要快速掌握数据库的知识,一定要进行系统化的学习以及大量的练习,在网上寻找一些数据库的练习题,先从简单的题开始,循序渐进,这样才能够慢慢的深入数据库的核心知识。
五、数据仓库/商业智能
在进行数据分析的时候,我们总会遇到一些名词,比如数据仓库。数据仓库是数据分析中一个比较重要的东西,数据仓库是一个面向主题的、集成的、相对稳定的、反应历史变化的数据集合。
数据分析中的工作最重要的就是数据处理工作,根据我做数据分析的经验,在整个数据分析流程中,用于数据处理的时间往往要占据70%以上,而数据仓库具有集成、稳定、高质量等特点,基于数据仓库为数据分析提供数据,往往能够更加保证数据质量和数据完整性。
六、数据挖掘工具
在做数据分析时,数据挖掘软件是其中必不可少的工具之一。它是大多数商业智能计划中的核心应用程序,数据挖掘软件同样也能够从大量数据中提取洞察力。
直接说需要学习的语言:MATLAB、Python、R。
1、MATLAB
虽然偏学术性,但是好上手,上手以后就可以跑一些算法,提高一些信心和学习的乐趣。教材看官方手册的Primer,然后就开始写脚本和函数,如果有看不懂的直接百度、google或者help。
2、Python和R
这两个放在一起,是因为网上关于这两个的争论太多了。我的顺序是首先学python,其次再是R。首先python,先看《Head First Python》,简单易懂,然后是《利用Python进行数据分析》和《机器学习实战》。第一本书主要是利用Python做数据挖掘的,基本提到Python学习都会推荐这本。第二本是理解机器学习的佳作,书中用到的语言就是Python,一边学语言,一边理解机器学习。
七、人工智能
严格意义上,人工智能与数据分析有着明显的界限,不属于同一领域,因此这一条是针对大数据分析科学家来说的,当你的分析能力还比较低时,可以略过不看此章。
机器学习、人工智能涵盖的知识层面太广太深,所以会建议采取 problem-based learning 的学习方式,先选定问题,然后找到资源来解问题,再更深入的去了解,解问题过程中,遇到的名词与知识。
八、挖掘算法
很多人认为数据挖掘需要掌握复杂高深的算法,需要掌握技术开发,才能把数据挖掘分析做好,实际上并非这样,其实算法并不难,只需要结合实际业务背景、以解决问题为导向就简单很多了,主要包括分类算法,聚类算法,关联分析,连接分析等,是学习数据挖掘必须要掌握的算法基础。
九、编程语言
比如python、r语言、java等等,你该使用哪种语言用于数据分析?恐怕这还得“视情况而定”。
如果你对晦涩的统计运算进行繁重的数据分析工作,那么你不青睐R才怪。如果你跨GPU进行NLP或密集的神经网络处理,那么Python是很好的选择。如果想要一种加固的、面向生产环境的数据流解决方案,又拥有所有重要的操作工具,Java或Scala绝对是出色的选择。