-->

机器学习40讲_16_15_从回归到分类联系函数与降维

你好,我是王天一。

今天我和你分享的主题是从回归到分类联系函数与降维线性模型。

它起初是被用来解决回归问题。

但是在实际应用当中呢,更加普遍的无疑是分类问题。

要用线性模型来解决分类问题的话,就需要将原始线性模型连续的输出转化成为不同的类别。

那么在分类问题当中,一种特殊的情况是分类的类别,非黑即白,只有两种。

这样的问题呢,它就是二分类的问题,它可以看成是多分类问题的一个特例。

那我们今天所讨论的对象呢也都限在二分类问题的范围内。

现在这样一个简单的情况之下,把回归结果转化成分类结果。

它其实做的就是将属性的线性组合转化成为一个分类的标准。

具体的操作方式呢有两种,一种呢是我直接用阈值来区分回归结果,根据回归值和阈值的关系,直接的输出类别的标签儿。

比方说回归值大于阈值啊,那我输出一类是个正例回归值小阈值值,我输出零类这一个负例。

另外一种情况呢是用似然度来区分回归的结果,根据回归值和似然性的关系。

啊,输出这个样本属于某一个类别的概率,它不是直接给出类别的标签,那而是给出一个属于不同类别的概率。

那么这样两种输出呢,可以分别的把它看作是硬输出,还有软输出。

它们呢代表了解决分类问题时不同的一个思路。

硬输出啊,它是对数据的分类边界来进行建模,实现硬输出的函数。

也就是将输入数据很映射为输出类别的这个函数,我们把它叫做判别函数。

判别函数呢可以将数据空间划分成为若干个决策的区域,啊,每一个类别对应一个区域,每一个区域对应一个输出的类别。

那么不同判别区域之间的分界呢就叫做决策边界。

这个角策边界啊通常是这个判别函数五等于零啊,这个时候所对应的图形啊,当然也可能是其他的一个常数。

那么用线性模型来解决分类问题的时啊,这就意味着我得到的决策边界啊,它是线性。

那么最简单的判别函数呢就是未经任何变换的线性回归模型啊,y等于WX啊,加上b他把回归值大于某个阈值的样本判定为正利啊,小于某个阈值的样本判定为负利。

那么在处理多分类任务的时候呢,判别函数啊它对每个类别都计算出一组系数啊,WK还有BK.并且呢在决定类别的时候,选择让这个YX最大的这个k作为输出类别。

假如说k等于一的时候,这个YK等于呃零点三啊,k等于二的时候YK等于零点六啊,那么这个时候呢我就会选择k等于二作为输出的类别。

如果说分类边界比较复杂的话啊,那么还可以通过奇函数的扩展呢或者是核技巧啊来突破线性的限制啊,生成非线性的边界这一部分相关内容呢今天先不讨论啊,在后面的文章当中会涉及。

那么今天呢我们主要来看的是基于软输出,哎,就是基于似然度的这个分类方法。

软输出呢它利用的是自然度,所以需要建立关于数据的这个概率密度的模型。

一提到自然,你肯定就要想到概率就要涉及到概率的计算。

啊,那么常见的具体做法呢,就是对线性回归的结果,我给它施加某种变换啊,把它转换成一个概率的形式。

那么这个变换的数学表达式呢可以写成YX啊,等于g负一WX加b这里面的GX呢就被称为联系函数。

它的反函数g负一啊也叫FX啊,就被称为激活函数。

联系函数呢是非常重要,正是联系函数架起了线性模型,从回归到分类的一个桥梁,最典型的软输出分类算法就是逻辑回归了。

在人工智能基础课当中啊,我曾经介绍过逻辑回归呢,它是基于概率的这个分类算法,它估计的是样例,归属于某个类别的这个后验的概率。

那么根据贝斯定理呢二分类问题当中,这个后验概率就可以表示成对数几率函数的形式。

对数激率函数呢它就是逻辑回归的这个联系函数。

这个非线性的联系函数呢,可以把任意的输入啊从正无穷到负无穷,任意的输入映射到零一之间。

那么点击文稿啊,你可以看到详细的这个公式推导逻辑,回归本身呢并不能直接给出参数w的解析解。

啊,就像最小二乘的线性回归那样啊,我给出一个简洁的公式,没有这种呃规律可言。

嗯,所以呢它需要结合最优化的方法来使用确定参数。

最常用的方式啊是使用这个最大自然估计,也就是找到和训练数据匹配程度最高的这样的一组参数。

在二分类问题当中,如果说假设x啊属于类别c一的时候,输出分类的结果r等于一啊,属于类别c二的时候,那么输出的分类结果r等于零。

这种情况下呢,那么每一个单独的分类结果都可以表示为参数为西格马x的两点分布。

那么所有结果构成的向量呢就会满足一个二项分布,这时候自然概率可以表示成什么呢?可以写成所有分类结果的一个连乘啊一个连续乘积的形式。

这个时候我对这个似然概率啊求解对数,并且求出它的最大值,就可以得到最优的参数和逻辑回归相似的。

另外一种分类模型呢是这个线性判别分析。

他呢不仅要估计数据的这个概率密度,还应用了降维的思想。

在前面两篇文章当中啊,我和你分享了对于数据进行线性降维,还有非线性降维的方法。

其实广义的来看呢,降维它不光是数据预处理的手段,它也可以用来执行分类任务,为什么呢?本质上讲,分类任务呢就是归纳到数据降维的范畴当中。

所谓分类,就是把高维的数据给他投影到一维的这个类别标签之上。

所以从这个角度来看,分类问题其实就是一类啊降维的问题。

维度的下降啊,它会导致信息的损失,让这个数据呢在高维空间当中本身它是分散。

但是降到一维之后啊,它在这个标签的维度之上会产生这个重叠,属于同一类别的数据。

重叠在一起呢并不是什么严重的问题。

但是如果说类别不同的数据重叠在一块,啊,就会增加分类问题的错误率。

所以说好的分类算法,既要让相同类别的数据足够接近,又要让不同类别的数据足够原力。

啊,基于这样一个原则进行分类的方法,它就是线性判别分析,用于二分类的线性判别分析啊,由著名的统计学家roonor fasher啊在一九三六年提出按照人类的年龄来计算呢,这个方法已经是耄耋之年。

归根结底线性判别分析它也是从概率出发啊,它会假定不同类别的数据来源于均值不同,但是方差相同啊,这样的正态分布。

然后呢,通过判定数据归属于不同状态分布的可能性来确定它的类比。

但虽然说思想是这个思想,但是在设计线性判别分析的时候,费舍尔是利用了一种不同的思路。

在计算。

二、分类问题。

决策边界的时候啊,线性判别分析首先要计算两个类别当中数据的均值,以此作为特征来区分不同的类别。

那么让不同的类别数据足够远离,就是让两个均值在决策边界上的投影。

两个投影之间的距离足够大,投影之间的距离越大啊,说明这两个均值离得越远啊,那么相应的这两组数据产生重叠的可能性也就越小,但是光是均值远离还够不够呢?不够数据在不同维度上的分布不同,会导致它在某些方向上的方差比较大。

在某些方向上呢方差比较小。

如果说仅仅考虑均值而忽略的方差的话,这会导致一个什么结果呢?就是在我的判决边界之上啊,我的数据撑的很宽啊,延伸的很宽,有一个长尾的效应啊,这种长尾效应就可能会导致不同类别的数据互相重叠啊,从而影响分类的精度。

所以在投影的时候啊,还要让相同类别的数据啊尽可能的集中分布。

我同一类的数据尽可能呃出现在一块儿啊,以避免混叠的出现。

那么点击文稿呢,你可以看到线性判别分析,同时保证类间距最大和类内帮差最小啊,这个计算的过程。

单单从形式上看的话,线性判别分析还有我们前面提到的主成分分析呢,它同属于降维技术有一些相似的地方。

但是两者呢区别是本质上主成分分析它的目的是什么?是保留不确定性,是通过选择方差最大的主成分来实现信息损失。

最小的这样的数据,低维的重构方式重构之后,我让信息的损失最小。

而且呢这整个的过程是无监督的,是一个无监督学习的过程。

那么相比之下线性判别分析在降维的时候,它要利用到数据的类别。

因而呢属于一个监督学习的范畴。

学习的目的呢不是保留不确定性,而是消除不确定性。

那么这一部分消除的不确定性就是肋间的方差,它被提取到哪儿呢?提取到类别标签当中。

这一部分信息我全部体现在我的分类结果里。

分类之后,数据的方差越小,意味着降维之后,剩余的类内部确定性就越小。

那么在实际应用当中呢,两个方法啊也可以结合起来使用。

通常可以先使用主成分分析来进行特征的提取,再去利用线性判别分析啊做训练。

这就相当于先把数据的信息集中在某些特征之上,再利用不同的类别把这些信息提取出来。

那么将线性模型啊从回归扩展到分类的时候啊,前面介绍的两种方法逻辑回归和线性判别分析是两种具有代表性的模型,它们都是基于概率来生成线性的分类变器。

所以在这儿呢啊我们可以把它两者做一个比较线性判别分析啊,他就像一个傲娇的老师,只愿意指导天赋异禀的学生。

这呢体现在他对数据的要求上。

第一,每一个类别的数据啊,它必须服从潜在的多元正态的分布,只能满足高斯分布。

第二呢,每一个类别的数据啊,必须具有相同或者相近的斜方差矩阵,这在数学上呢叫做同方差性。

第三,数据的属性之间呢不能存在较强的贡献性。

计算出来的斜方差矩阵应该是满秩矩阵,这就说明属性之间要线性无关。

第四呢,数据中尽量别存在异常点。

那么在实际问题当中啊,一定程度上放宽这些条件呢,并不会对线性判别分析的性能产生太大的影响啊,但是这些简单的要求还是严重的限制了方法的使用,这又导致一个什么结果呢?找到一个他能解决的问题啊,会比解决这个问题更加困难。

相比之下呢,逻辑回归就没有那么多讲究。

这个老师不管学生好坏,都能因材施教,他不需要对数据的分布做出任何鲜艳的假设。

因为两点分布它是二分类问题必然的结果啊,他肯定会满足这种分布。

那么对于数据的斜方差矩阵,还有贡献性呢,也没有特殊的要求。

即使当数据集里面啊存在着一些异常点,逻辑回归呢也能够相当精确的完成分类。

整体来说呢,线性判别分析啊只能在所有的条件啊,这些所有的条件就是我们前面提到的条件啊,只有当这些条件都满足的时候,才能够发挥出最佳的性能啊,那么在任何其他的场景之下,它的表现都要略逊于逻辑,回归一筹。

虽然说实践的方式有所不同啊,但是本片所介绍的两种解决分类问题的方法在思想上是一致的那就是根据数据的概率密度来实现分类。

这两种基于自然度的模型啊,在执行分类任务的时候,它不是说以每个输入样本为单位,而是以每个输入类别为单位,啊,将每个类别的数据看作是不同的整体。

啊,再在他们之间寻找出来,两者的分异。

所以这样一看呢,数据和人一样啊,也要面临站队的问题啊。

在SK lanan当中呢,线性判别分析啊,在模块呃discriminent analysis这个里面实现啊逻辑回归呢则是在模块列位model里面实现。

由于逻辑回归,它需要使用有标签的数据。

所以原来的回归数据呢,我们在这儿就不能再重新用啊,需要建立一个新的数据集。

这次所使用的数据啊,依然来自于这个whose ore的英超联赛的技术统计啊,我选取了一七到一八赛季啊,平均评分最高的二十名中后卫啊,还有二十名中锋啊,他们的首发次数呢都在十五次以上啊,保证了他评分的一个啊一致性。

那么这里数据的属性呢,包括每个人的场均射门的次数啊,还有场均铲球的次数这两个维度啊,那么他们的位置啊到底是后卫啊还是前锋啊,则是作为分类的标签来出现。

那么熟悉足球的朋友肯定明白,中卫的铲球次数啊肯定比较多啊,那么中锋的射门次数呢肯定比较多大。

所以这两个指标呢就可以用来作为判断位置的一个依据。

右上面的这个数据集啊,训练使用不同的线性分类模型啊,得到的效果也不相同。

那么需要说明的是,这个数据集本身它是线性可分的,存在着将两个类别完全区分开来的线性边界。

那么通过结果我们可以看到啊,这条边界呢也是被逻辑回归所计算抓的。

可是相比之下啊,遗憾的是,线性判别分析它并没有找到准确的边界,而是将一个热爱防守的前锋啊给他误认成为后卫。

多说一句,这个前锋是呃降级的四望,西城的十八号啊,乔丹阿尤。

那么点击文稿呢,你可以看到两种方法的一个分类结果。

直观的从数据分布的图示看啊,这个被线性判别分析所误分类的蓝点啊,确实和其他蓝点相距比较远,反倒呢是和红点更加接近。

怎么看怎么像是一个异常点。

所以在计算数据的统计特性的时候啊,这个离群所居的样本啊远离了它归属的那个类别的均值,也就难怪会被同伴所抛弃了。

这其实也验证了前面的说法,线性判别分析它需要啊较强的这个假设这样的支持。

今天呢我和你分享了使用线性模型啊,基于似然度来解决分类问题的方法啊,包括这以下四个要点。

第一,在解决分类问题时,把线性模型的回归值可以通过联系函数转化为分类结果。

第二,线性判别分析假定数据来自均值不同,但是方差相同的正态分布啊,通过最大化类间方差和类内方差的比值啊来计算线性边界。

第三,逻辑回归计算的是不同类别的概率。

决策边界输出的呢是给定数据,属于不同类别的后验概率。

第四,基于线性模型的分类方法啊,计算出来的决策边界啊,它是输入属性的一个线性的函数。

当线性边界不足以完成分类任务的时候啊,前面提到的线性判别分析可以把它推广为二次判别分析啊,那么这个二次判别分析和线性判别分析之间啊,两者存在着哪些区别与联系呢?你可以查阅相关的资料啊,加以了解,并在这儿呢分享你的理解嗯。