来自:DataCastle数据城堡(微信号:DataCastle2016),作者:DC君

如何在业余时间学习数据分析?


对一个准备入门数据分析行业的小白来说,这是最直接而首要的问题。网上方法很多,有的从学习资源入手,搜集了许多经典书籍、网站教程,能够为初学者减少很多资源筛选的时间。但对于很多浮躁的小白来说,无疑是目标缺失的,每一部分学完能做什么,如何应用,是一个很大的问题。这样的学习,很容易未入门就放弃,所以并不建议从啃一本书开始。


有的从实际问题场景入手。这确实是不错的方式,模拟了一个数据分析问题解决的流程。但对于没有数据分析经验的人,特别是不怎么了解业务的人来说,又会陷入另一种困境:如何提出高质量的问题、找到清晰的分析思路。数据分析的思维是在有经验之后才能够养成的,而这种方式要求一开始就具备这种分析的思维,如果不懂业务问题,其实很难有针对性地去分析一个问题。


我们就从数据分析技术和数据分析思维的养成,来谈谈如何在业余时间高效学习数据分析。主要是给更多的人一条相对平滑的、简单的学习路径,让学习的过程变成实践的过程,每个阶段都能输出成果。


先给出一条学习路径吧:


通向更高的维度
数据分析的思维
SQL打开新世界的大门
python大法流弊
数据不干净怎么办
好像少点统计学知识
开始用数据玩起来


1

开始用数据玩起来


你可能会疑惑:我什么都不会,你就让我玩起来?


不急,我们慢慢来解答。


你可能没什么数据分析的基础,但至少还会编程,这比起很多小白来说这是一个相当大的优势。当然你可能觉得应该循序渐进地看书学习,但无数人从入门到放弃的经验告诉我们,那个过程本身就是不人性化的,特别是对于碎片化的学习来说。


怎么开始用数据玩起来呢?


先找一个数据集,如果工作中有一些现成的数据(用户数据、销售数据、产品数据等),是最好的,因为这些数据跟你的认知高度相关,能让学习更加有针对性。如果没有这样的数据资源,也可以找一些网上的公开数据集,推荐几个有公开数据集的网站。


UCI:加州大学欧文分校开放的经典数据集,真的很经典,被很多机器学习实验室采用,强烈建议前期数据集缺乏并且不想花太多时间去找的情况下用这里面的数据。(http://archive.ics.uci.edu/ml/datasets.html)


国家数据:数据来源于中国国家统计局,包含了我国经济民生等多个方面的数据。(http://data.stats.gov.cn/index.htm)


CEIC:超过128个国家的经济数据,能够精确查找GDP, CPI, 进口,出口,外资直接投资,零售,销售,以及国际利率等深度数据。(https://www.ceicdata.com/zh-hans)


中国统计信息网:国家统计局的官方网站,汇集了海量的全国各级政府各年度的国民经济和社会发展统计信息。(http://www.tjcn.org/)


拿到这些数据,就可以进行一些探索性的分析了。最常见的,就是把这些数据用可视化方式描述出来,最常用的就是 Excel,在把数据转化成图像的过程中,可以发现一些数据分布的特点。


比如拿到一个产品的销售数据,把数据按照时间序列绘制出图形,那就可以看到销量与时间、季节、特殊节点之间的关系;当分地区来展示,可以看到产品受不同地区用户的喜爱程度;当把销售数据和其他因素结合起来(比如推广行为),可以发现这些因素对销售量的影响。


你看,其实冰冷的数据在进行图形化的展示之后,可以发现很多基本的规律,这个已经可以得出一些很有用的知识了。


如果不怎么熟悉 Excel 的话,去了解一些基本图表的用法,经常用到的也基本是条形图、折线图(散点图)、扇形图。




可视化还可以用编程的方式去实现,比如 python里面的seaborn、matplotlib,R里面的ggplot2,都是很好的可视化工具。不要以为很难,这个阶段并不需要系统地去学习python或者R,只需要了解这些库的一些基本函数和用法。


比如下面这些图,在python里面就是一行命令的事情。





网上有很多这些可视化工具的教程,跟着做很容易上手,主要是记住具体的函数、方法的使用方式,多联系一下就可以了。


当然不是让你瞎玩,画几个图虽然简单,但这还远远不够,在画图的过程中,需要真正去做一些思考,从这些可视化的图表中,能够发现哪些规律,并尝试输出一些简单的结论和报告。



2

好像少了点统计学知识



如果用可视化的形式做了一些探索性的数据分析,那么你就会发现,得到的知识并不是那么多。那么,如何做更加精细化的分析呢?这时候就需要补充一些统计学的知识了。


因为网上很少有系统的统计学的学习资料,这里更加推荐去看一些统计学方面的书籍。推荐书:《深入浅出统计学》


在具体的数据分析中,主要用到统计方面的以下知识,在看书的时候重点学习:


基本的统计量:均值、中位数、众数、方差、标准差、百分位数等;


概率分布:几何分布、二项分布、泊松分布、正态分布等;


总体和样本:了解基本概念,抽样的概念;


置信区间与假设检验:如何进行验证分析;


相关性与回归分析:一般数据分析的基本模型。


通过基本的统计量,可以进行更多元化的可视化,以实现更加精细化的数据分析。这时候也需要去了解更多的Excel函数,来实现基本的计算,或者python、R里面一些对应的可视化方法。


有了总体和样本的概念,你就知道在面对大规模数据的时候,怎样去进行抽样分析。


也可以应用假设检验的方法,对一些感性的假设做出更加精确地检验。


利用回归分析的方法,可以对未来的一些数据、缺失的数据做基本的预测。


了解统计学的原理之后,不一定能够通过工具实现,那么需要去对应的找网上找相关的实现方法。也可以看书,先推荐一本非常简单的:《深入浅出数据分析 》



3

数据不干净怎么办



很多时候我们拿到的数据是不干净的,有重复、缺失、异常值等问题。这时候就需要进行数据的清洗,把这些影响分析的数据处理好,才能获得更加精确地分析结果。


比如空气质量的数据,其中有很多天的数据由于设备的原因是没有监测到的,有一些数据是记录重复的,还有一些数据是设备故障时监测无效的,这时候就需要进行数据预处理。


不同情况要用不同的方法处理,比如残缺数据,我们是直接去掉这条数据,还是用临近的值去补全?这都是需要考虑的问题。


对于数据预处理,学会 pandas 的用法,应对一般的数据清洗就完全没问题了。需要掌握的知识点如下:


选择:数据访问(标签、特定值、布尔索引等)


缺失值处理:对缺失数据行进行删除或填充


重复值处理:重复值的判断与删除


空格和异常值处理:清楚不必要的空格和极端、异常数据


相关操作:描述性统计、Apply、直方图等


合并:符合各种逻辑关系的合并操作


分组:数据划分、分别执行函数、数据重组


Reshaping:快速生成数据透视表


网上有很多pandas的教程,主要是一些函数的应用,也都非常简单,如果遇到问题,可以参看pandas操作的官方文档。

http://pandas.pydata.org/pandas-docs/stable/tutorials.html



4

Python大法流弊!



通过pandas,你可能已经意识到,python真是一个神奇的东西。


除了pandas,python还有其他优秀的数据分析、数据挖掘的库,比如numpy、scipy、scikit-learn,可以去找一些教程来看看,如何通过这些库实现数据分析。搞清楚最常用的方法,结合实际的数据集进行练习。并不常用的方法,可以在遇到具体问题时,再去查阅相关的文档。


比如利用numpy进行数组的计算,利用scipy实现不同的假设检验,利用scikit-learn实现完整的数据分析建模……网上有很多教程,也可以去看书,推荐一本:《利用Python进行数据分析》



前期并不建议追求各种高深的技巧,你更需要去熟悉最基本的用法,毕竟基本的才是最常用到的,常用的方法已经可以解决绝大部分初级阶段的数据分析问题。


比如利用回归分析(线性回归、逻辑回归),就可以实现很多的预测型的数据分析,对未来的数据进行预测。


当然,如果是小白,还需要去了解一些python的基础知识,比如变量、基本元素等。如果对python无感,那么R语言也完全可以帮助你解决数据分析问题。



5

SQL打开新世界的大门



在应对万以内的数据的时候,Excel对于一般的分析没有问题。一旦数据量大,就会力不从心,打开文件都会是个问题。数据库能够很好地解决这个问题,而且大多数的企业,都会以SQL的形式来存储数据。如果你是一个分析师,也需要懂得SQL的操作,能够查询、提取数据。


SQL作为最经典的数据库工具,为海量数据的存储与管理提供可能,并且使数据的提取的效率大大提升。你需要掌握以下技能:


提取特定情况下的数据:企业数据库里的数据一定是大而繁复的,需要提取你需要的那一部分。比如根据需要提取2017年所有的销售数据、提取今年销量最大的50件商品的数据……SQL可以通过简单的命令帮你完成工作。


数据库的增、删、查、改:这些是数据库最基本的操作,但只要用简单的命令就能够实现,所以只需要记住命令就好。


数据的分组聚合、如何建立多个表之间的联系:这个部分是SQL的进阶操作,多个表之间的关联,在处理多维度、多个数据集的时候非常有用,这也让你可以去处理更复杂的数据。


SQL相对来说比较简单,可以看这个教程:MySQL-菜鸟教程

(http://www.runoob.com/mysql/mysql-tutorial.html)


当然如果面对的是不那么大的数据,pandas等工具已经够你用了,那也可以暂时不了解SQL这一块相对独立的知识。



6

数据分析的思维



如果对业务本身有一定了解,那么你可能在数据思维的养成方面会更加有优势,知道哪些因素、数据是相对重要的。可以在分析中更加容易地找出重要的问题,也能够更清楚应该从哪些方面入手,这就是问题定义的过程。这是数据分析第一个步骤,往往要经过很多的实战训练才能养成。


开始的时候,可能考虑的问题不是很周全,但随着经验的积累,慢慢就会找到分析的方向,有哪些一般分析的维度。比如top榜单、平均水平、区域分布、年龄分布、相关性分析、未来趋势预测等。随着经验的增加,会有一些自己对于数据的感觉,这就是我们通常说的数据思维了。


也可以看看行业的分析报告,推荐:艾瑞咨询(http://www.iresearch.com.cn/)


学习优秀的分析师看待问题的角度和分析问题的维度,也可以去参考优秀数据分析师的一些思考维度去进行分析。总结的多了,你会发现,这并不是一件困难的事情。


如果想去获取互联网的一些数据,也可以学学爬虫的一些技能,基于互联网的数据,可以做很多的市场调研和舆情分析。



7

通向更高的维度



如果并不满足做基础的数据分析,甚至想做一些数据挖掘、机器学习的事情,那么还需要学习更多的知识。了解更高级的数据挖掘算法,比如决策树、随机森林、神经网络等等。光了解算法还不够,还需要知道如何进行模型的优化,如何通过特征工程、模型融合提升预测的精确度。


这就有点数据挖掘和机器学习的味道了。可以根据职业发展来选择具体的方向,如果在编程、算法上面比较有兴趣,那么可以向更深入的机器学习方向发展;如果更想往业务方向靠拢,以数据分析来支撑商业决策,那么可以深化这方面的能力,甚至去考虑做一些自动化分析的事情。


总的来说,学习的动力源于反馈。在碎片化学习的时候,尤其注意,每个学习过程都应该是有具体的目的导向的。也需要考虑,学习这个知识点,最终想输出的东西是什么?每个阶段只学习最需要的那部分知识,这样可以很大程度上地提升学习效率。