数据江湖之多元剑法 --主成分分析

大数据
我们这里只会讲到问题的理解和结果的解读层面,想进一步知道具体的模型设定、数学表达、方法推导、软件实现的技术党同学,请移步到书店找一本多元统计的教材来啃一啃,或者来修一学期媛子的多元统计课程哈。

[[174092]]

招式一:主成分分析

大家好,我是媛子。相信大家从狗熊会的精品案例中啊已经体会到熊大老师的“数据江湖:回归五式”的神通广大了,那有的朋友就问了说,除了回归,我还能干嘛呢?其实啊在统计里面,还有一个很好很强大的体系,叫做多元统计分析。所以呢媛子准备来跟大家系统地扒一扒,数据江湖之多元剑法。

我们这里只会讲到问题的理解和结果的解读层面,想进一步知道具体的模型设定、数学表达、方法推导、软件实现的技术党同学,请移步到书店找一本多元统计的教材来啃一啃,或者来修一学期媛子的多元统计课程哈。因为啊其实媛子在教课中发现,在一切交给电脑的今天呢,对于一种已经成型的方法,“怎么用”通常不是问题,用个软件点点点或者编几行程序就呼呼呼地跑出结果了,大家的问题一般都出在“什么时候用”和“用完了,然后呢?” 所以我们这个系列主要就集中在讨论这两件事情上面。

那写下多元剑法第一招的灵感来自于下面这些我们第二期熊学院的熊孩子微信群里面的对话:

所以我们今天就不妨就着熊小姐的这个各科成绩的例子,先来捋一捋“主成分分析”到底是个什么鬼。至于它跟因子分析的差别,要先搞清楚因子分析又到底是个什么鬼才能讨论,所以且听媛子下回分解这个差别的部分。

在开始之前呢,媛子还是要再强调一下熊大老师一直在强调的,做统计分析之前呢,一定一定要先清楚你的业务目的!业务目的!业务目的!重要的事情说三遍!

[[174093]]

1

假设你现在是一名班主任,对着以下这种我们从小恨到大的成绩单发呆。

那作为班主任,针对这种成绩单的业务目的,就是怎么样科学地利用以上这些各科的成绩的信息来区分你班上学生的表现。当然呢你的视力和耐心足够好的话,你可以一科一科的成绩单单独去比对,但这实在是使出洪荒之力也然并卵呀。

[[174094]]

那通常我们怎么做呢?求平均,也就是把各科成绩加起来除以科目总数,或者说求总分也是等价的。没错,这是一个比较合理的方法。但是媛子给你打个比方,如果有一个很奇葩的班级培养出一堆很奇葩的学生,他们的平均分都一样,只是有的偏科严重,有的发展比较均衡,那这个班的学生单靠平均分就区分不开了对吧?

所以呢如果你是一名班主任,想通过成绩区分一下你班上学生的表现的话,可能针对你这个班级啊,会有比平均分更好的指标,或者会有不止平均分这一个指标在等着你哦。

这个就是主成分分析(Principal Component Analysis, PCA)在做的事情:找到原始变量的线性组合,也就是所谓的主成分,使得组合后得到变量的方差最大化。被媛子绕晕了是吗?翻译成人话就是:找到最科学的一种或几种综合成绩的计算方式,使得这样计算出来的综合得分能够最大程度地区分这一拨学生。这里呢有几个注意的点:

1

我们所用的计算成绩组合的方法都是线性的,什么叫线性?就是说不会出现像语文成绩的平方、或者数学成绩的倒数这些幺蛾子。其实呢本质上我们还是在做一种各科成绩的平均,但这是加权平均,并且允许有些权重可以是负数。从这些权重中我们可以看出哪些学科对于区分这一拨学生的影响比较大,并且是怎么影响的。

2

我们可能用不止一个指标去刻画学生的表现。而这些指标呢会根据重要程度来排序,这个重要程度具体来讲就是区分学生的能力。后面在结果得解读的时候我们会进一步说明。

3

在整个过程中,我们只有一堆地位一样的变量,没有所谓的自变量和因变量,所以呢主成分分析不属于回归分析的范畴。

好了,那大家应该已经清楚主成分分析用来干嘛的了,或者说我们什么时候该用主成分分析。接下来就是噼里啪啦一顿编程实现,得到了几个你要的综合得分,也就是主成分(Principal Components),那么下一步就是,怎样解读这些指标呢?这就又回到了业务层面。我们需要做的是,结合业务知识,尽情地开脑洞。然后再看看我们的这些解读啊跟常识现象是否相符,还有没有什么新的发现。

这里呢我们假设最后我们通过软件得到了如下的两个指标,也就是主成分,也就是综合得分的计算方式,来刻画这个班的学生成绩:

那现在问题来了,怎么理解这两个指标呢?

指标2很好理解,基本就是我们通常见到的求平均,前面的系数呢只有轻微的不同,所以它可以用来刻画学生各科成绩的均衡表现。那么指标1呢?指标1里面呢,所有偏文科类课程成绩的系数为正,偏理科的系数为负,而系数值的大小差不多。这样算出来的是什么?基本上可以理解成是学生文科成绩平均分减去理科成绩平均分,也就是说,指标1刻画的是学生文理科成绩的差别,或者说是学生的偏科情况。

[[174095]]

好,我们知道了这两个指标大体上是什么意思,那它们能用来做什么呢?媛子总结了一下,它们可以用来做以下的三件事情:

1

它可以降低整个数据集的复杂程度,给你省事儿啊。看全班学生的六科成绩多费眼费时间呀,现在只给你了两个指标,而且我告诉你不怎么丢失重要的信息就能够达到你的业务目的,那你这个班主任何乐而不为呀?这就是用主成分分析做降维的基本思想。那至于为什么只有两个指标就够了,而不是三个四个或者只有一个呢?是因为啊针对这组数据,通过计算,这两个指标区分学生的能力(也就是说刻画数据差异性的能力)已经占到了原来六门课能够做到的80%了,我们就觉得足够满意了。当然,隔壁老王班也许需要一个或者三个指标,谁知道呢对吧。

[[174096]]

2

我们可以用他们考量每一位学生的表现。我们传统的成绩单是给每一个学生简单粗暴地给一个平均分或者总分。这就是上面的指标2。它的得分越高,说明该学生的均衡表现越好。那现在的成绩单上又多了一项得分可正可负的指标1。如果该学生该指标的得分是个很大的正数说明什么?说明他文科比理科好得多,严重偏文科。反之,如果他的指标1是一个绝对值很大的负数,说明他严重偏理科。所以呢指标1就是学生的偏科表现,绝对值越大,偏科越严重。那你可能会问了,那如果指标1得分接近于0呢?那就说明他文理科成绩差不多呗,可能是个全面发展的学神或者学霸,当然呢也可能是每一科都差得非常均匀的学酥或学渣。

所以通过看以上的两个综合指标,我们可以找出一些典型的学生,比如说指标1很高,指标2也很高,这就说明该学生是个文科学神级人物;那如果指标1很高但指标2却很低,这就说明该学生偏科文科太严重,理科拖后腿,拉低平均成绩啊;那如果指标1(绝对值)很低,指标2很高呢?就说明这是一个两手抓,两手都要硬的好宝宝对吧?以此类推。

3

我们可以用它们来刻画班级整体的表现。我们之前提到过,这些指标是按照能够反映这拨学生差异性的能力来排序的。那么通过这两个指标,就可以知道这个班成绩的主要特征。这里指标1排在前面,说明它比指标2,也就是简单地求平均更能刻画这拨学生成绩的差异性。也就是说,这是一个偏科比较严重的班级,有的学生文科比理科好很多,有的学生反之。而且呢通过学生的指标1得分还能看出到底有多少学生文科比较好,到底有多少学生理科比较有优势。当然辣也许换一个班,这些综合指标的构造就完全不同了,没准儿隔壁老王班上的学生成绩的差异完全由这个数学成绩主导呢。

好了,我们来总结一下今天的内容:当我们有很多个变量,又想找一种或几种综合指标去很好地刻画数据的差异性的时候,主成分分析就该出马了。那这些综合指标怎么构造呢?是通过原来变量的加权平均,或者说线性组合来构造的。得到这些指标后,它们有什么用呢?我们可以在不丢失重要信息的前提下尽量地简化数据集,还可以从一种全面综合的视角来审视整个数据集,或者说我们可以去考量每一个个体的表现。

当然,不光对班主任有用,主成分分析在其他的各个领域也都有着非常直观的应用。比如说对工业界的各个行业的各种经济效益指标进行综合评价啦,比如说根据人们身体的某些测量变量(像身高啊体重啊三围啊还有各种其他的什么围啊之类的)得出一些刻画人身材的综合指标,等等等等。

好的,那这次主成分分析的招式就跟大家拆到这儿。下次呢媛子会针对同样的数据,但是从不同的业务目的出发,再跟大家来捋一捋因子分析这把刷子。感谢大家的阅读或者收听,我们下次见咯。

责任编辑:武晓燕 来源: 36大数据
相关推荐

2022-04-09 09:21:19

人工智能机器学习PCA算法

2014-07-03 10:05:15

机器学习

2014-07-14 09:41:04

机器学习

2018-04-04 15:55:56

数据科学数据从业者机器学习

2017-07-06 08:36:10

特征向量矩阵PCA

2017-06-01 16:25:36

数据挖掘算法

2013-04-10 10:31:21

R语言

2017-09-11 09:20:14

机器学习无监督学习聚类

2016-08-02 22:06:23

2013-06-21 10:16:44

2017-01-23 13:34:44

2017-12-14 17:36:21

开发者故事

2020-08-25 18:10:22

Python代码线性回归

2014-11-27 10:29:43

大数据

2014-11-26 16:33:46

聚合数据

2022-04-29 10:06:20

SCA风险漏洞

2021-06-29 07:47:23

多线程协作数据

2017-05-25 10:11:46

数据库令牌节点

2010-10-26 10:35:05

职场

2016-11-03 19:04:02

磁盘数据TestDisk
点赞
收藏

51CTO技术栈公众号