分类是一类常见的科研需求,例如在绘制相图时,我们经常需要将一组数据点分成两类以区分不同的相,分类器就是一种比较简单的机器学习模型。
分类器分为两种:
- 硬分类
,我们得到的结果时对数据的0-1分类,具体方法:
- 线性判别分析(Linear Discriminant Analysis,LDA)
- 感知机算法(Perceptron Learning Algorithm,PLA)
软分类
,我们得到的不是对数据分类的结果,而是数据可被分入一类的概率,主要方法分为:
- 概率生成式:高斯判别分析(Gaussian Discriminant Analysis,GDA),朴素贝叶斯分析
- 概率判别式:Logistic回归分析
线性感知机
思路:错误驱动
模型:;
。
损失函数:(若正确分类,则和应该是同号的)
求偏导可得:,
利用速度梯度算法(Gradient Descent)可以迭代求合适的:
,其中λ为优化速率。
该算法是可收敛的(不证),而对于线性可分的体系,则可以使用口袋算法,所谓口袋算法就是在迭代过程中,将犯错最少的放入一个口袋,若下一个迭代值犯错更少则更新它,否则就放弃信的结果,当迭代次数足够多后返回口袋中的结果。Fisher分析
模型概念
记号:,
将数据分为两类:和
。
Fisher分析的主要思想为:类内小,类间大。我们需要将数据点投影到某个选定的直线上,并利用投影进行分类,从而这条直线应该满足:
投影分布尽量可分;
- 每个类内部点的投影分布长度应当尽量小(类内小);
- 不同类的投影分布区域应当有着尽量大的间隔(类间大),以方便分类;
模型求解
记原数据向量x沿着某个方向(ω)的投影为
先利用协方差表示两组数据的类内分布:,其中S1为原数据组内协方差。同理:
。于是我们把类内距离定义为
。
再利用每个类的均值之间的距离平方表示类间距离:
一个要大,一个要小,因此损失函数定义为二者比值:,
其中Sb是类间方差,Sω是类内方差。,注意,
,而我们只关注投影方向,无所谓大小,因此:
,这里注意:
,所以
,
即所求方向,若Sω是数量阵,则有
。
Logistic回归
背景
Logistic回归是一种软分类方法,它返回的结果不是分类的结果,而是数据处于某一类的概率值。
思路:计算,由贝叶斯定理:
,
取
,形如此的非线性激活函数被称为Sigmoid函数。

Sigmoid函数有以下特点:
- 特殊的微分性质:
;
- 该函数的梯度值能够控制参数的调整速率,详见林轩田讲义图片(右三);
模型求解
在Logistic回归中,我们的模型假设为,通过求解ω,去计算概率值。在二分类模型中,我们使用Bernoulli分布描述它们的概率:
对于N次独立全同观测:,MLE估计为:
根据Sigmoid函数的微分性质:。因此:
。
可以采用梯度下降算法,对ω进行优化:。
高斯判别分析(Gaussian Discriminant Analysis, GDA)
背景
记号:,
Logistic回归分析是计算数据被分为某一类的概率,而GDA模型我们关注的是和
哪个值更大。根据贝叶斯定理:
,其中
是对分类值的后验,
是分类模型的先验分布,
是数据的似然,在GDA中我们有以下假设:
- 先验分布为Bernoulli分布:
;
- 两种分类内的似然为正态分布:
数学补充
引理1:x是一个n维列向量,则二次型;
引理2:;
引理3:;
引理4:转置矩阵的微分等于微分矩阵的转置即
,从而有个自然的推论:;
引理5:,其中根据行列式按行展开定理
,因此
模型求解
求解ϕ:。
求解μ_1和μ2:
,对上式展开并求导得:


同理:。
求解∑:
首先有
(注意到第二项括号内是二次型,可以利用迹来计算其值)
,S是样本协方差矩阵。
因此,,其中S1和S2是类内样本方差。
代入所有参数可得:。
朴素贝叶斯
朴素贝叶斯是最简单的有向概率图模型,其计算方法基于条件独立性假设:,由贝叶斯定理:
。对于单维度的条件概率有如下假设:
- 若xi是连续的:
;
- 若xi是离散的:采用类别分布,
;
- 先验分布为Bernoulli分布:
;
利用MLE可以得到上述参数值。
