如何在业余时间学习数据分析?
对一个准备入门数据分析行业的小白来说,这是最直接而首要的问题,每一部分学完能做什么,如何应用,是一个很大的问题。这样的学习,很容易未入门就放弃,所以并不建议从啃一本书开始。
有的从实际问题场景入手。这确实是不错的方式,模拟了一个数据分析问题解决的流程。但对于没有数据分析经验的人,特别是不怎么了解业务的人来说,又会陷入另一种困境:如何提出高质量的问题、找到清晰的分析思路。数据分析的思维是在有经验之后才能够养成的,而这种方式要求一开始就具备这种分析的思维,如果不懂业务问题,其实很难有针对性地去分析一个问题。
我们就从数据分析技术和数据分析思维的养成,来谈谈如何在业余时间高效学习数据分析。
1、开始用数据玩起来
你可能会疑惑:我什么都不会,你就让我玩起来?
不急,我们慢慢来解答。
先找一个数据集,如果工作中有一些现成的数据(用户数据、销售数据、产品数据等),是最好的,因为这些数据跟你的认知高度相关,能让学习更加有针对性。如果没有这样的数据资源,也可以找一些网上的公开数据集。
拿到这些数据,就可以进行一些探索性的分析了。最常见的,就是把这些数据用可视化方式描述出来,最常用的就是 Excel,在把数据转化成图像的过程中,可以发现一些数据分布的特点。
比拿到一个产品的销售数据,把数据按照时间序列绘制出图形,那就可以看到销量与时间、季节、特殊节点之间的关系;当分地区来展示,可以看到产品受不同地区用户的喜爱程度;当把销售数据和其他因素结合起来(比如推广行为),可以发现这些因素对销售量的影响。
你看,其实冰冷的数据在进行图形化的展示之后,可以发现很多基本的规律,这个已经可以得出一些很有用的知识了。
如果不怎么熟悉 Excel 的话,去了解一些基本图表的用法,经常用到的也基本是条形图、折线图(散点图)、扇形图。
可视化还可以用编程的方式去实现,比如 python里面的seaborn、matplotlib,R里面的ggplot2,都是很好的可视化工具。不要以为很难,这个阶段并不需要系统地去学习python或者R,只需要了解这些库的一些基本函数和用法。
比如下面这些图,在python里面就是一行命令的事情。
网上有很多这些可视化工具的教程,跟着做很容易上手,主要是记住具体的函数、方法的使用方式,多联系一下就可以了。
当然不是让你瞎玩,画几个图虽然简单,但这还远远不够,在画图的过程中,需要真正去做一些思考,从这些可视化的图表中,能够发现哪些规律,并尝试输出一些简单的结论和报告。
2、好像少了点统计学知识
如果用可视化的形式做了一些探索性的数据分析,那么你就会发现,得到的知识并不是那么多。那么,如何做更加精细化的分析呢?这时候就需要补充一些统计学的知识了。
因为网上很少有系统的统计学的学习资料,这里更加推荐去看一些统计学方面的书籍。推荐书:《深入浅出统计学》
通过基本的统计量,可以进行更多元化的可视化,以实现更加精细化的数据分析。这时候也需要去了解更多的Excel函数,来实现基本的计算,或者python、R里面一些对应的可视化方法。
有了总体和样本的概念,你就知道在面对大规模数据的时候,怎样去进行抽样分析。
也可以应用假设检验的方法,对一些感性的假设做出更加精确地检验。
利用回归分析的方法,可以对未来的一些数据、缺失的数据做基本的预测。
了解统计学的原理之后,不一定能够通过工具实现,那么需要去对应的找网上找相关的实现方法。
3、数据不干净怎么办
很多时候我们拿到的数据是不干净的,有重复、缺失、异常值等问题。这时候就需要进行数据的清洗,把这些影响分析的数据处理好,才能获得更加精确地分析结果。
比如空气质量的数据,其中有很多天的数据由于设备的原因是没有监测到的,有一些数据是记录重复的,还有一些数据是设备故障时监测无效的,这时候就需要进行数据预处理。
不同情况要用不同的方法处理,比如残缺数据,我们是直接去掉这条数据,还是用临近的值去补全?这都是需要考虑的问题。
对于数据预处理,学会 pandas 的用法,应对一般的数据清洗就完全没问题了。
网上有很多pandas的教程,主要是一些函数的应用,也都非常简单,如果遇到问题,可以参看pandas操作的官方文档。
4、Python大法流弊!
通过pandas,你可能已经意识到,python真是一个神奇的东西。
除了pandas,python还有其他优秀的数据分析、数据挖掘的库,比如numpy、scipy、scikit-learn,可以去找一些教程来看看,如何通过这些库实现数据分析。搞清楚最常用的方法,结合实际的数据集进行练习。并不常用的方法,可以在遇到具体问题时,再去查阅相关的文档。
比如利用numpy进行数组的计算,利用scipy实现不同的假设检验,利用scikit-learn实现完整的数据分析建模……网上有很多教程,也可以去看书,推荐一本:《利用Python进行数据分析》
前期并不建议追求各种高深的技巧,你更需要去熟悉最基本的用法,毕竟基本的才是最常用到的,常用的方法已经可以解决绝大部分初级阶段的数据分析问题。
比如利用回归分析(线性回归、逻辑回归),就可以实现很多的预测型的数据分析,对未来的数据进行预测。
当然,如果是小白,还需要去了解一些python的基础知识,比如变量、基本元素等。如果对python无感,那么R语言也完全可以帮助你解决数据分析问题。
5、SQL打开新世界的大门
在应对万以内的数据的时候,Excel对于一般的分析没有问题。一旦数据量大,就会力不从心,打开文件都会是个问题。数据库能够很好地解决这个问题,而且大多数的企业,都会以SQL的形式来存储数据。如果你是一个分析师,也需要懂得SQL的操作,能够查询、提取数据。
SQL作为最经典的数据库工具,为海量数据的存储与管理提供可能,并且使数据的提取的效率大大提升。当然如果面对的是不那么大的数据,pandas等工具已经够你用了,那也可以暂时不了解SQL这一块相对独立的知识。
6、数据分析的思维
如果对业务本身有一定了解,那么你可能在数据思维的养成方面会更加有优势,知道哪些因素、数据是相对重要的。可以在分析中更加容易地找出重要的问题,也能够更清楚应该从哪些方面入手,这就是问题定义的过程。这是数据分析第一个步骤,往往要经过很多的实战训练才能养成。
开始的时候,可能考虑的问题不是很周全,但随着经验的积累,慢慢就会找到分析的方向,有哪些一般分析的维度。比如top榜单、平均水平、区域分布、年龄分布、相关性分析、未来趋势预测等。随着经验的增加,会有一些自己对于数据的感觉,这就是我们通常说的数据思维了。
如果想去获取互联网的一些数据,也可以学学爬虫的一些技能,基于互联网的数据,可以做很多的市场调研和舆情分析。
7、通向更高的维度
如果并不满足做基础的数据分析,甚至想做一些数据挖掘、机器学习的事情,那么还需要学习更多的知识。了解更高级的数据挖掘算法,比如决策树、随机森林、神经网络等等。光了解算法还不够,还需要知道如何进行模型的优化,如何通过特征工程、模型融合提升预测的精确度。
这就有点数据挖掘和机器学习的味道了。可以根据职业发展来选择具体的方向,如果在编程、算法上面比较有兴趣,那么可以向更深入的机器学习方向发展;如果更想往业务方向靠拢,以数据分析来支撑商业决策,那么可以深化这方面的能力,甚至去考虑做一些自动化分析的事情。
总的来说,学习的动力源于反馈。在碎片化学习的时候,尤其注意,每个学习过程都应该是有具体的目的导向的。也需要考虑,学习这个知识点,最终想输出的东西是什么?每个阶段只学习最需要的那部分知识,这样可以很大程度上地提升学习效率。