数据分析课程学习总结

极客时间数据分析课程在3月底结束了,从20181217日开始到20190329,这109天里我看了48篇文章,一共163,789个字,44篇学习笔记。每周3篇课程更新,及时去看然后认真做笔记,把当天的课程代码跑一遍,思考题基本都做,一路下来能力大有提升。本文对3个月的学习做一次总结,分为两部分,课程内容总结和学习方法的总结。

课程内容总结

数据分析流程是怎样的?

  • 商业理解,首先要有个目标,这个目标往往是围绕着业务建立的
  • 数据探索、理解数据
  • 数据准备
  • 模型建立
  • 模型评估
  • 上线发布

工作中任何一项事务能落地的前提是,事务必须是围绕着一个清晰的目标而开展的。而数据分析更是如此,如果没有分析的目标,那必然会迷失在海量的数据中。正如课程里数据分析流程的第一步是“商业理解”,不论什么岗位角色,对公司业务的了解程度决定了你工作方案落地的效果。

数据挖掘的十大算法

1、C4.5
2、朴素贝叶斯
3、SVM
4、KNN
5、Adaboost
6、CART
7、Apriori
8、K-Means
9、EM
10、PageRank

课程里通过实际的项目来讲解数据挖掘十大算法的基本应用,其中没有涉及到严谨的数学推导过程,毕竟篇幅有限,而且这是入门级别的课程,不适合过于深奥,更加注重通俗易懂。

印象非常深刻的一点是,老师能用非常通俗的语言和例子说明这些算法的基本思想,如果没有对这些概念有着深入的理解,不可能化繁为简。举个专栏里的例子,在讲到EM算法的时候,就用到一个很生活化的场景来帮助理解算法思想:

我们先看一个简单的场景:假设你炒了一份菜,想要把它平均分到两个碟子里,该怎么分?

很少有人用称对菜进行称重,再计算一半的分量进行平分。大部分人的方法是先分一部分到碟子 A 中,然后再把剩余的分到碟子 B 中,再来观察碟子 A 和 B 里的菜是否一样多,哪个多就匀一些到少的那个碟子里,然后再观察碟子 A 和 B 里的是否一样多……整个过程一直重复下去,直到份量不发生变化为止。

你能从这个例子中看到三个主要的步骤:初始化参数、观察预期、重新估计。首先是先给每个碟子初始化一些菜量,然后再观察预期,这两个步骤实际上就是期望步骤(Expectation)。如果结果存在偏差就需要重新估计参数,这个就是最大化步骤(Maximization)。这两个步骤加起来也就是 EM 算法的过程。

这提醒了我,要真正掌握知识点,需要不断深入思考。一个很有效的方法就是通过类比的方法,来辅助理解复杂的概念。通过这个类比与算法概念建立联系,而这个类比场景是生活中常见的,这样每当遇见该场景,就增强与算法的联系,从而会对概念理解的更深更牢固。

这涉及到一个叫「单身派对」的理论,又名「赫布定律」。单身派对定律认为在同一时间被激发的神经元间的联系会被强化。

定义场景为A,理论为B。调用即为看见场景A时,能够回想B,即建立A-B联系。根据赫布定律,增加激发的次数可以增强A-B间的联系。由于A-B的激发与B的单独学习时间长短无关,而与看见A回想B的次数相关,那么可以采用多次回想的方式加强A-B的联系。

比如我看了一本书,得到理论B,想要在看见场景A时轻松调用理论B。则需要多次练习看见场景A时,回想理论B(或者由B联想A)。单独增加B的学习时间,而不回想A,则与A-B激发无关,作用不大。

此外还有另外几个推论:
1)由A到B和由B到A反复联想效果更好
2)在这对AB联想中插入C(AC或BC),会降低AB之间的关联性

学习方法总结

课程第一节课就讲了学习方法,叫“MAS”方法,同时也讲了认识三部曲。

MAS方法

Multi-Dimension:想要掌握一个事物,就要从多个角度去认识它。

Ask:不懂就问,程序员大多都很羞涩,突破这一点,不懂就问最重要。

Sharing:最好的学习就是分享。用自己的语言讲出来,是对知识的进一步梳理。

认知三部曲

借用傅盛的话来说,人与人最大的差别在于“认知”,所谓成长就是认知的升级。P.S.傅盛认知三部曲分为,输入-训练-判断阶段。和机器学习类似,输入数据-训练模型-作出预测。

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

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

图片

认知是大脑,工具是双手,实战是积累资产。对于学习数据分析或一些硬技能时,积累资产核心在于对工具使用的熟练度,其中有两条重要的原则:

1. 不重复造轮子

2. 工具决定效率

认识论

无论时MAS方法还是认知三部曲,其根本目的都是让我们的学习不停留在表面,而是深入其中,最终触类旁通,形成真正的智慧。而智慧的形成,可以用认识论来解答:

1/ 数据, 信息, 知识, 洞见, 智慧, 影响力是一层层堆积起来的。 基础打好了,再做上面的事,就水到渠成,自然而然了。

2/ 外在的影响力,是很容易看见的,也是大家都想获得的,但是没有底层的基础堆砌,真正做起来会发现很困难,不得其法,最后发现还是要被迫回到底层打基础。

3/ 要小心一些走捷径的方法,看似取巧,但如果没有真正底层的 知识/洞见/智慧 来支撑,情况稍微一变,就不知道如何应付,马上现原形,所谓 “德不配位”。

4/ 多重数据交叉验证,变成信息 ; 多种信息综合,形成知识 ; 知识再提炼,形成洞见; 多种洞见再综合,变成智慧。不断循环往复。有了智慧,才更有可能在正确的时间做正确的事,发挥更大的影响力。
图片

费曼技巧

我们只有把知识转化为自己的语言,它才真正变成了我们自己的东西。不断循环往复去训练,才能形成智慧。在此过程中,最好的践行方式,我认为是使用「FEYNMAN TECHNIQUE」,即费曼技巧,它是一个这样的过程:

第一步 - 选择一个你想要理解的概念
选择一个你想要理解的概念, 然后拿出一张白纸, 把这个概念写在白纸的最上边.

第二步 - 设想一种场景,你正要向别人传授这个概念
在白纸上写下你对这个概念的解释, 就好像你正在教导一位新接触这个概念的学生一样. 当你这样做的时候, 你会更清楚地意识到关于这个概念你理解了多少, 以及是否还存在理解不清的地方.

第三步 - 如果你感觉卡壳了, 就回顾一下学习资料
无论何时你感觉卡壳了, 都要回到原始的学习资料并重新学习让你感到卡壳的那部分, 直到你领会得足够顺畅, 顺畅到可以在纸上解释这个部分为止.

第四步 - 为了让你的讲解通俗易懂,简化语言表达
最终的目的, 是用你自己的语言, 而不是学习资料中的语言来解释概念. 如果你的解释很冗长或者令人迷惑, 那就说明你对概念的理解可能并没有你自己想象得那么顺畅 — 你要努力简化语言表达, 或者与已有的知识建立一种类比关系, 以便更好地理解它。

最后,学习是一个彻头彻尾的“反人性”过程,它需要占用大量的大脑资源,大脑高速运作需要消耗大量的能量,但是人天性就是要趋利避害,趋向于减少能量的消耗而生存下去。因此,期望减少大脑消耗而学会一门技能,是不可能的。现在市面上一些五花八门的课程,打着“7天入门”,“30天精通”的旗号大道其行,利用的就是人的弱点。人与人的差距就在于这些细微的认知层面上,有人坚持不懈,有人自欺欺人,所以“一分耕耘,一分收获”这些老话是永远正确的。