统计机器学习12:线性判别分析LDA
线性判别分析(Linear Disciminant Analysis)是一种经典的降维方法,并且是一种线性的学习方法,LDA的基本想法就是,对于给定的训练集,我们可以设法将这些样本投影到一条直线上,并且使得同类样本点的投影尽可能接近而不同类的样本点的投影尽可能远离,这样一来我们实际上就需要训练出一条直线来进行特征空间中的分类,而对于测试集中的数据,可以将其同样投影到这条直线上面去,再根据投影点位置来确定该样本属于哪一类别。
LDA问题的定义
我们先来研究二分类问题的LDA,可以假设问题定义在数据机D上,用
而我们的目的是希望同类别的点在直线上的投影尽可能靠近而不同类的尽可能远离。因此可以让同类别的投影点的协方差尽可能小,即一个目标可以定义成:
LDA的优化与求解
问题的改写
对于上面得到的优化目标,我们可以定义:类内散度矩阵(within-class scatter matrix),用来表示同一个类别内的点的接近程度
瑞丽商Rayleigh quotient
对于
而广义瑞丽商的定义是:
LDA的求解
根据瑞丽商的性质,我们可以知道LDA的求解就是对矩阵
同时LDA也可以用贝叶斯决策理论来解释,并且可以证明,当两类数据满足同先验、满足高斯分布并且协方差相等的时候,LDA可以达到最优的分类结果。
高斯分布下的LDA
问题的定义
这一节内容从从贝叶斯决策理论来推导高斯分布下的LDA模型,如果样本满足高斯分布,我们先考虑二分类时候的情况,可以设两类样本分别满足高斯分布并且共享协方差矩阵,这样一类:
这其实就是一个softmax函数的形式,softmax函数可以把一个分布标准化成一个和为1的概率分布,而sigmoid函数其实就是一个一元形式的softmax函数
二分类下的特殊情况
对于二分类问题,我们可以进行这样的变形:
这样就可以将二分类情况下的高斯分布转化成一个sigmoid函数的形式,根据之前的
参数估计和模型优化
我们可以来考虑用极大似然法来训练一个模型,我们可以将该问题的对数似然函数定义为: