Categories
读书有感

≪统计学习精要(The Elements of Statistical Learning)≫课堂笔记(六)

呃,我觉得我的笔记稍稍有点混乱了...这周讲的依旧是线性分类器,logit为主。anyway,大家将就着看吧。

logistic regression

首先我们考虑最一般的,有K种分类的场合。依旧,我们用来代替作为观测到的分类结果,那么则有:

为最优的预测结果。这里我们希望找到一种线性的形式,还需要使用一些单调变换保证预测值在之间。因此,我们对于每个分类,假设

进一步的,我们取任意类K作为对照组,且各组相加概率之和必为1,所以有:

所以,最终得到两组之间的概率比值为:

最后求解的时候,就是直接用最大似然准则,来求解

这个最大似然函数计算起来比较麻烦,通常很多是数值解。下面以为例,来展示求解过程。

首先我们这个时候有两类,不妨记作1和0,则

则它的对数似然函数:

然后我们求导可得:

之后可以用牛顿法迭代求数值解:

其中二阶导数部分可以化简为:

经过简化之后,这里相当于加权的最小二乘法,目标函数为

所以整个算法可以写作:

0. 令或任意起始值

1. 计算矩阵.

2. 新的.

3. 重复1,2步直至收敛。

这类方法成为IRLS(不断重写的加权最小二乘法)。

LDA和logit选择

其实也没什么定论,两者均为线性,只是一般我们认为LDA需要假设联合正态且方差相等,比较强;而logit假设没有这么强,相比而言更稳定。

perceptional分类器

perceptional分类器是一类相对简单的分类算法,以两类场合为例。为了方便起见,我们假设两类为1和-1,则目标是找出一条直线可以完全分割出来两群点。这里转化成数学的语言,就是找到W使得

或者简化为:

算法也很简单:

1. 给定任意的W值,比如0. 如果,出错。

2. 令新的,重复第一步。

这里可证一个定理:如果原数据集是线性可分的(即W存在),那么在有限步内perceptional算法收敛。其实从第二步可以看出,这样的改进总是趋近于目标的:,一定是在逐步增加的。

同样的算法推广到多累场合,我们就需要引入特征向量,使得条件概率。这样我们的目标就是找到使得

同样的,从0开始,当时,,直至收敛。

不过有意思的是,实践证明,最后使用训练过程中的的平均值效果会更好,而不是最终的值。

--------笔记结束,废话开始--------

到这里,分类器吴老师已经介绍了三类:LDA,Logit和perceptional。其实我一直觉得比较好玩的是分类器和聚类方法的对比——虽然一个是有监督,一个是无监督的学习,不过有的时候我们就算有的观测值也不一定直接就去用——聚类方法某种程度上显得更加自然一些。这也是大家把模型与实际业务相结合起来的成果吧,总要更符合业务上的直觉才可以。是自然的展现群落的形态,还是给定一些条条框框只是去预测?实践中真的是,都去试试才知道那种更符合一个具体案例的需求。这也是在industry玩的比较开心的缘故,没有那么多条条框框,没有那么多“约定俗成“的规矩,需要自己去一步步挖掘这些算法的用武之地。看着一个个自己熟悉或者陌生的模型被逐渐的改造和应用,也是一件蛮开心的事情呢。

Categories
读书有感

≪统计学习精要(The Elements of Statistical Learning)≫课堂笔记(五)

鉴于我上周写的[笔记(四)]让很多人反映太枯燥、太无聊(全是公式...可是这就是笔记嘛,又不是写科普文),我努力让这周的笔记除了公式之外多一点直觉和应用层面的点评。

其实[笔记(一)(二)]中说了很多回归和分类器的不同了,那么在经历了线性回归方法之后,就来说说分类器好了。我原来一直觉得回归和分类器没有什么本质不同的...主要是最常用的分类器logit和probit都是我在学计量的时候学的,那个时候老师只是简单的说,这两个和OLS都是一致的,只是我们想让预测值在0~1之内所以做一下变换。而且我们那个时候也不叫他们分类器,而是叫他们“离散被解释变量模型”。前几个月的时候,看data mining的东西,看得晕晕乎乎的,就跑去问精通此类模型的同事MJ,让他跟我科普了一下午为什么这两个模型大家更经常称之为分类器...汗颜啊,那个时候我才知道原来machine learning是先分supervised learning and unsupervised learning,然后才是 regression v.s. classification, and clustering...疏通了脉络之后,再看《The Elements of Statistical Learning》这本书,就觉得顺畅多了。以前只是零零散散的接触一个个孤立的模型,没有找出一个脉络串起来过,自然也就不知道分别适用于什么场景。

其实我挺想说的是,从econometrics到data mining,远远没有想象的那么简单。数学工具上或许很顺畅,但是思维上的转变还是需要时间和实践的。真是为难坏了我这个学经济学出身的孩子(其实话说回来,我好好的不去研究经济学,好奇什么data mining呀~只能聊以一句“殊途同归”来搪塞自己,对嘛,反正都是doctor of philosophy, 只要是科学,本质的思考方式应该是相通的)。不过搞清楚之后,还是觉得很好玩的——以前是雾里看花,觉得什么都漂亮;现在渐渐的能够分清楚这些美丽之间的差异了,也算是个小进步吧。

再有个小废话...记得上小学的时候,老师问大家“长大了想做什么呀?”,我们总是会特别有出息的回答“科学家~”。那个时候有门课叫做《自然》,老师总给我们讲各种各样的发明,让我们一度觉得这个世界上的问题都被解决完了,还当什么科学家啊。然后老师就给我们讲哥德巴赫猜想,大意是世间还有那么几个悬而未决的皇冠问题,等待大家长大了去攻克。后来,越读书越发现,有那么多问题人们是不知道答案的,只是从 ambiguity -> uncertainty -> possibility -> probability -> certainty (law)一步步的走下去。有那么多问题,其实都是悬而未决的哲学问题,等待着聪明的大脑去回答。这也是越读书越觉得兴奋的缘故吧,越来越多的时候老师会被问倒,然后说“不知道”...然后好奇心就又开始勃勃生长...然后又发现更多的很好玩但没有答案的问题...周而复始,有意思的很。

-------满足大家的八卦之心之后,笔记开始-------

线性分类器

对应原书第四章。

先是来一点直觉上的东西:分类器顾名思义,就是把一堆样本归到不同的类别中去。那么这类模型的几何直觉是什么呢?很简单,空间分割嘛。最直白的,我们有一群人,组成了一个大的群体。然后现在要把大家归为男女两类,那么空间自然就是被分割为两个子空间——男和女了。

线性分类器是什么呢?分割男和女的时候,可能分割是三个一群,五个一簇的,所以非要画分割的界限的话,八成是山路十八弯的...我们以前说过,这类的模型问题就是可能复杂度比较高(比如参数的个数较多),导致就算训练误差小,测试误差不一定小。所以呢,我们希望这个分割界限是直线的(二维平面下)、或者平面的(三维空间中),或者超平面的(高位空间中),这样就比较清晰明了的感觉了。

线性分类器:logit模型(或称logistic regression)

这里也不完全是按照吴老师上课讲的东西了,因为回头再看这本书会发现书中还有一些很好玩的直觉很强的东西。错过不免可惜,一并收纳。

首先换一下记号~我们在前面都用代表被解释变量,从现在开始对于分类问题,我们改用

logit模型下,考虑最简单的分为两类,我们有

所以有

这样,分别属于这两组之间的比例就可以找到一个线性的边界了(注:log为单调变换~不影响结果)。这样变换的目的其实无非是,保证,而且两个比例之间存在着一种线性的、或者可以通过单调变换成为线性的关系。类似的当然是大名鼎鼎的probit模型,思路是类似的。

损失函数

显然线性分类器下,在有很多类的情况中,损失函数定义为OLS的残差平方和是没有多大意义的——分类取值只是一个名义量。所以,这里用0-1损失函数:如果,那么损失函数=0;否则,就是没预测准,损失函数=1。写为数学形式,就是损失函数定义为:

所以我们的目标就是,最小化损失函数的期望:

(条件期望迭代)。

LDA:linear discriminant analysis(贝叶斯意义下)

从贝叶斯的角度,我们有

为k出现的概率。

假设X服从联合正态分布,那么我们有

再假设协方差矩阵,所以我们比较两类的时候有:

这样就形成了一个x的线性方程,所以我们找到了一个超平面,实现了LDA。

实践中我们需要估计联合正态分布的参数,一般有,其中为分类k出现的样本数;,即这个样本中,x观测值的平均数;

Fisher视角下的分类器

Fisher提出的观点为,分类器应该尽量使不同类别之间距离较远,而相同类别距其中心较近。比如我们有两群,中心分别为

,那么我们希望尽量大,同时群内方差

尽量小。通过对x进行投影到,我们可以化简的得到

。这样一来,我们的准则就是:

由于是正定阵,所以我们可以进一步写为

其中的特征向量。最终可以求的,最优的正是的最大特征向量。

说实话,我对LDA(或者QDA)的理解都非常有限...这本书里面还有一节说到LDA和logit怎么选,我也是大概看了一下没有特别的看明白...笔记只是如实记录,海涵。暂时还不知道讲到Fisher到底是想讲什么...理解力好有限,唉。

------最后的碎碎念------

除了统计学习精要,Coursera的Model Thinking也终于结课了,做完了期末考试卷,感觉心里空空的。这门课真的是开的非常深入浅出,覆盖了这么多学科、问题的各种模型,非常有助于逻辑思考和抽象。只是多少有些遗憾的,很多东西来不及细细回味,听过了视频就忘了,没有努力的去理解那些模型背后的逻辑。这也是导致最终的期末考试做的不怎么好的缘故——我不想去翻课堂视频或者笔记,只是想考验一下自己对于这些模型的理解和记忆能力。事实证明,除了那些跟经济学或者数学紧密相关的模型,其他的都多多少少记得不是那么清晰了。过阵子应该好好整理一下这门课的笔记,算作是一个良好的回顾吧。

不知道为什么,工作之后再去学这些东西,真的感觉力不从心的时刻多了很多。这半年只有这么区区两门课,就让我觉得有时候不得不强迫自己一下赶上进度,强迫的手段之一就是在落园开始写连载(大家容忍,谢谢~)。不过为了保持一个基本的生活质量,还是应该不时看看这些新东西的,要不生活都腐朽了。