线性分类
线性分类
为了解决分类问题,在线性模型的函数进行之后再加入一层**函数,这个函数是非线性的,**函数的反函数叫链接函数。线性分类有两种方式:
1、硬分类,我们直接需要输出观测对应的分类。这类模型的代表为:
(1)线性判别分析
(2)感知机
2、软分类,产生不同类别的概率,这类算法根据概率方法的不同分为两种
(1)生成式(根据贝叶斯定理先计算参数后验,在进行推断),高斯判别式分析(GDA)和朴素贝叶斯
(2)判别式(直接对条件概率进行建模):logistic回归
一、硬分类–感知机
选取**函数为:
这样就可以将线性回归的结果映射到两分类的结果上了。
定义的损失函数为错误分类的数目,比较直观的方式是使用指示函数,但是指示函数不可导,因此可以定义为
其中,
是错误分类的集合,实际在每一次训练的时候,我们采用梯度下降的算法。损失函数对w的偏导为:
但是如果在样本非常多的情况下,计算复杂度较高,但是没实际上我们不需要绝对的损失函数下降的方向,我们只需要损失函数的期望值下降,但是计算期望需要知道真实的概率分布,我们实际只能根据训练数据抽样来估算这个概率分布(经验风险):
我们知道,N越大,样本近似真实分布越准确,但是对于一个标准差为
的数据,可以确定的标准差仅和根号N成反比,然而计算速度却和N成正比。因此可以每次使用较少样本,则在数学期望的意义上损失降低的同时,有可以提高计算速度,如果每次只使用一个错误样本,我们有下面的更新策略(根据泰勒公式,在负方向):
是可以收敛的,同时使用单个观测更新也可以在一定程度上增加不确定度,从而减轻陷入局部最小的可能,在更大规模的数据上,常用的是小批量随机梯度下降法。
二、硬分类–线性判别分析LDA
在LDA中,我们的基本 思想是选定一个方向,将实验样本顺着这个方向投影,投影后的数据需要满足两个条件,从而能够更好的分类:
1、相同类内部的实验样本距离接近
2、不同类别之间的距离较大
首先是投影,假设原来的数据是向量x,那么顺着w方向的投影就是标量:
对于第一点,相同类内部的样本更为接近,我们假设属于两类的实验样本数据分别是N1和N2,那么使用方差矩阵来表示每一个类内的总体分布,这里采用协方差的定义,使用S表示数据的协方差:
所以类内距离可以记为:
对于第二点,我们可以使用两类的均值表示这个距离:
综上所述,由于协方差是一个矩阵,于是我们用将这两个值相除来得到我们的损失函数,并最大化这个值:
这样,我们就可以把损失函数和原数据集以及参数结合起来了,下面对损失函数进行求偏导,注意对于w的绝对值没有任何要求,只对其方向有要求,故只需要一个方程就可以求解:
所以
就是我们需要寻找的方向,最后可以归一化求得单位的w值。