01丨数据分析全景图及修炼指南

今天我们的学习正式开始,我想先给你一张数据分析的全景图,让你对后面的学习做到心中有数。

现在,你已经知道了数据分析在现代社会中的重要地位。掌握数据,就是掌握规律。当你了解了市场数据,对它进行分析,就可以得到市场规律。当你掌握了产品自身的数据,对它进行分析,就可以了解产品的用户来源、用户画像等等。所以说数据是个全新的视角。数据分析如此重要,它不仅是新时代的“数据结构 + 算法”,也更是企业争夺人才的高地。

当我们谈论数据分析的时候,都在讲些什么呢?

这里我可以把数据分析分成三个重要的组成部分。

  1. 数据采集。它是我们的原材料,也是最“接地气”的部分,因为任何分析都要有数据源。
  2. 数据挖掘。它可以说是最“高大上”的部分,也是整个商业价值所在。之所以要进行数据分析,就是要找到其中的规律,来指导我们的业务。因此数据挖掘的核心是挖掘数据的商业价值,也就是我们所谈的商业智能 BI
  3. 数据可视化。它可以说是数据领域中万金油的技能,可以让我们直观地了解到数据分析的结果。

img

下面我来一一为你讲解一下这三个重要的部分。

数据采集

在数据采集部分中,你通常会和数据源打交道,然后使用工具进行采集。

在专栏里,我会告诉你都有哪些常用的数据源,以及如何获取它们。另外在工具使用中,你也将掌握“八爪鱼”这个自动抓取的神器,它可以帮你抓取 99% 的页面源。当然我也会教你如何编写 Python 爬虫。掌握 Python 爬虫的乐趣是无穷的。它不仅能让你获取微博上的热点评论,自动下载例如“王祖贤”的海报,还能自动给微博加粉丝,让你掌握自动化的快感。

img

数据挖掘

第二个部分是数据挖掘,它可以说是知识型的工程,相当于整个专栏中的“算法”部分。首先你要知道它的基本流程、十大算法、以及背后的数学基础。

这一部分我们会接触到一些概念,比如关联分析,Adaboost 算法等等,你可能对这些概念还是一知半解,没有关系,我会详细为你介绍这些“朋友”。

每讲完一个算法原理,我都会带你做一个项目的实战,我精选了一些典型的、有趣的项目,比如对泰坦尼克号乘客进行生存预测、对文档进行自动分类、以及导演是如何选择演员的等等。

掌握了数据挖掘,就好比手握水晶球一样,它会通过历史数据,告诉你未来会发生什么。当然它也会告诉你这件事发生的置信度是怎样的,置信度这个词你先记住就可以了,后面我们来学习它具体代表什么。

img

数据可视化

第三个就是数据可视化,这是一个非常重要的步骤,也是我们特别感兴趣的一个步骤。数据往往是隐性的,尤其是当数据量大的时候很难感知,可视化可以帮我们很好地理解这些数据的结构,以及分析结果的呈现。

如何进行数据可视化呢?有两种方法。

第一种就是使用 Python。在 Python 对数据进行清洗、挖掘的过程中,我们可以使用 Matplotlib、Seaborn 等第三方库进行呈现。

第二种就是使用第三方工具。如果你已经生成了 csv 格式文件,想要采用所见即所得的方式进行呈现,可以采用微图、DataV、Data GIF Maker 等第三方工具,它们可以很方便地对数据进行处理,还可以帮你制作呈现的效果。

数据采集和数据可视化的原理简单,容易理解。这两个部分注重的是工具的掌握,所以我会把重点放在讲解工具以及应用实战上。

img

虽然这些理论我会给你一一讲解,但纸上得来终觉浅,绝知此事要躬行。手拿地图,我们知道要去哪里,但是怎么去呢?我认为学习数据分析最好的方法是:在工具中灵活运用,在项目中加深理解

修炼指南

刚才我们讲了数据分析全景图,包括数据采集、数据挖掘、数据可视化这三个部分。你可能觉得东西很多,无从下手,或者感觉数据挖掘涉及好多算法,有点“高深莫测”,掌握起来是不是会吃力。其实这些都是不必要的烦恼。

开篇词里我给你介绍了 MAS 学习法,有了这个方法,学习数据分析就是从“思维”到“工具”再到“实践”的一个过程。今天我会从更多的角度来和你分享我的学习经验,我们可以把今天的内容叫作“修炼指南”。

借用傅盛的话来说,人与人最大的差别在于“认知”,所谓成长就是认知的升级。

很多人存在对“认知“的误解,认为认知不就是概念么?那么你有没有想过,针对同一个概念,为什么不同的人掌握的程度是不一样的呢?

我们只有把知识转化为自己的语言,它才真正变成了我们自己的东西。这个转换的过程,就是认知的过程。

img

那么如何提升自己的学习吸收能力呢?简单地说,就是要“知行合一”。

如果说认知是大脑,那么工具就好比我们的双手,数据工程师和算法科学家每天打交道最多的就是工具。

如果你开始做数据分析的项目,你脑海中已经思考好了数据挖掘的算法模型,请牢记下面这两点原则。

1. 不重复造轮子

举个数据采集的例子,我见过很多公司,都有数据采集的需求,他们认为某些工具不能满足他们个性化的需求,因此决定招人专门做这项工作。而结果怎样呢?做了 1 年多的实践,工资投入几十万,结果发现 Bug 一大堆,最后还是选择了第三方工具。耗时耗力,还没什么成效。

一个模型是否有相关的类库可以使用——这几乎是每个程序员入行被告知的第一条准则。我也会对新人反复灌输这个概念。大部分情况下你都能找到类库来完成你的想法。

2. 工具决定效率

“不要重复造轮子”意味着首先需要找到一个可以用的轮子,也就是工具。我们该如何选择呢?

这取决于你要做的工作,工具没有好坏之分,只有适合与否。除去研究型的工作,大部分情况下,工程师会选择使用者最多的工具。因为:Bug 少、文档全、案例多。

比如 Python 在处理数据挖掘上就有很多第三方库,这些库都有大量的用户和帮助文档可以帮助你来上手。

在后面的课程里,我会给你介绍最常用的工具,这些工具会让你的数据挖掘事半功倍。

选择好工具之后,你要做的就是积累 “资产”了。我们很难记住大段的知识点,也背不下来工具的指令,但是我们通常能记住故事、做过的项目、做过的题目。这些题目和项目是你最先行的“资产”。

如何快速积累这些“资产”呢?这里我送你三个字:熟练度

把题目完成只是第一步,关键在于训练我们工具使用的“熟练度”。

高中的时候,有一次我做“八皇后”的问题,第一次解答花了一个小时的时间。当时老师明确告诉我必须在 20 分钟内完成,我不敢相信,从解题、思考、动手,最后完成,1 个小时不算慢。但是后来我调整了思考的结构。最后我 6 分钟就可以完成那道题。

当熟练度增加的时候,你的思考认知模型也在逐渐提升。所以专栏中,我给你做了一个 “专属题库”,在专属题库中你可以进行自我评测,当然我也会对这些练习题进行讲解。在工作篇中,我也会和你一起分享面试技巧、探讨职场上的晋升之路。

总结

认知三步曲,从认知到工具,再到实战,是我最想给你分享的学习建议。我看到过很多同学上课的模式,以及很多人工作中的思考模式,我特别认同“人与人最大的区别是在认知”这个观点。

他们很听老师的理论,但是这些理论最后又都还给了老师。所以我希望你在后面的 15 周学习里可以做到以下几点。

  • 记录下你每天的认知。尤其是每次课程后,对知识点的自我理解。
  • 这些认知对应工具的哪些操作。用工具来表达你对知识点的掌握,并用自己的语言记录下这些操作笔记。
  • 做更多练习来巩固你的认知。我们学习的内容对于大部分外人来说,就像“开车”一样,很酷。我们学习的内容,对于要掌握的人来说,也像“开车”一样,其实并不难,而且很多人已经上路了。你需要的就是更多的练习。

极客时间版权所有: https://time.geekbang.org/column/article/73270