这一节我们主要学习
- 介绍分类模型
- 利用生成模型求解分类问题
- 利用极大似然估计法求解训练集数据的概率分布
- 通过几率模型,求解生成模型中变量的概率分布
1.分类模型
分类模型:输入一个对象的特征,输出该对象所属的具体类别。
该模型在医疗诊断、人脸识别等问题中有着广泛的应用。
1.1 分类模型的应用

接下以宝可梦的例子作为具体实例来进行分析。

在该实例中,我们将总评分、HP值、攻击力、防御力等参数作为数据特征输入,来预测输出宝可梦的属性,从而进行分类。

1.2 分类流程步骤
- 收集数据进行训练

我们应该将分类问题归类至回归分析中吗?
举个例子,我们首先来看看二分类问题。
在训练集中,我们将类别 1 对应的标签值设为 1 ;类别 2 对应的标签值设为 -1 。
在测试集中,当预测值更接近 1 时,将其归为类别 1 ;更接近 -1 时,归为类别 2 。
这样做会遇到什么问题呢?

左图中,左上角代表小于 0 ,右下角代表大于 0 ,当特征数据方差较小时,分类良好。
右图中,当特征数据方差较大,比较分散,导致决策边界右下角偏移。
为照顾那些过于“正确”(预测值过大)的样本点,决策边界将会向右下角偏移,从而不能进行正确的分类。
对于多元分类问题,我们将类别 1、2、3…… 的标签值分别置为 1、2、3……
1.3 模型改进
针对上述问题,我们需要找到一个理想的替代函数,来代替线性回归模型。
- 函数(模型):

寻找一个函数 $f(x)$ ,当 $g(x)>0$ 时,输出类别 1 ;否则,输出类别 2。
- 损失函数:

确定损失函数 $L(f)$ ,记录训练中预测错误的次数。
- 确定最佳函数
通过感知神经元、支持向量机等方法,确定最终的最佳函数模型。
2. 分类问题
2.1 盒子问题

那么问题来了:取出一个球,确定该球的颜色为蓝色,判断该球来自哪个盒子?
(已知取出的球是蓝色的,求来自箱子 1 的概率。)
我们需要用下面公式完成计算:
$P(B_1|Blue)=\frac{P(Blue | B_1)P(B_1)}{P(Blue | B_1)P(B_1)+P(Blue | B_2)P(B_2)}$
上述,是贝叶斯公式。
2.2 二分类问题
推而广之:如果我们看成分类,两个类别如何区分呢?
思路:通过大量的训练集数据,来估测 $P(C_1),P(C_2),P(x | C_1),P(x | C_2)$ 的值 ,再进行正确的分类预测。

已知一个宝可梦对象的特征变量为 $x$ ,判断宝可梦的类别属性(来自哪个 Class 的概率最大)。
那么给一个 x ,它的分类的概率是:$P(C_1 | x)=\frac{P(x | C_1)P(C_1)}{P(x | C_1)P(C_1)+P(x | C_2)P(C_2)}$
整体 $P(x)$ 的概率是:
生成模型: $P(x)=P(x | C_1)P(C_1)+P(x | C_2)P(C_2)$

考虑两个类别,Class1 是水系宝可梦,Class2 是普通系宝可梦。
我们将 ID 小于 400 的宝可梦用作训练,剩余的宝可梦用于测试。
其中训练集:水系宝可梦 79 只;普通系宝可梦 61 只。
得到: $P(C_1)=\frac{79}{79+61}$
$P(C_2)=\frac{61}{79+61}$

$P(x | C_1)$ 表示从水系里面挑一只宝可梦,这只宝可梦是 $x$ 的概率值。
每只宝可梦都是用一个向量表示的,它的属性值就是向量里的值。
根据数据特征进行分类:

现在取宝可梦的两个属性防御和特殊攻击防御作为一个特征向量。
这样就得到了上图。这个二维平面上每一个点都代表一只宝可梦。
我们假设上面的数据点采样自高斯分布。
3. 最大似然估计
3.1 高斯分布
$f_{μ,\sum}(x)=\frac{1}{(2π)^{D/2}}$ $\frac{1}{|\sum | ^{1/2}}$$\cdot exp{-\frac{1}{2}(x-μ)^T\sum^{-1}(x-μ)}$
输入:样本值 $x$ ;
输出:样本的概率密度。
函数的形状取决于均值 $μ$ 和协方差矩阵 $\sum$

3.2 利用极大似然法求解高斯分布
- 假设这些点采样自高斯分布,我们要通过极大似然估计法找到这个分布,且能够预测新的样本点的概率。

我们拥有水系的宝可梦:$x^1,x^2,x^3,…,x^{79}$,我们假设这些样本点均来自高斯分布 $(μ,\sum)$ ,使得最大似然函数 $L(\mu,\sum)$ 最大。

- 通过上述公式,我们可以求出水系和普通系宝可梦的高斯分布。

3.3 分类预测
- 通过生成模型,我们可以对新的样本点进行预测分类。

- 模型的预测结果:该模型的准确率仅仅为 54% ,效果不是特别理想。

3.4 模型改进
- 针对两个属性的不同高斯分布,将两个分布的协方差矩阵设为相同的值,减少参数的数量,避免过拟合。

- 使用最大似然估计法求解:

- 改良后的模型:准确率由之前的 54% 提升至 73%

4.几率模型
4.1 几率模型的三个步骤
- 寻找函数集(模型)
- 评价模型的好坏
- 确定最终的模型

4.2 概率分布
- 按照自己的意愿选择数据的概率分布

如果你假设 $x$ 各个维度是相互独立的,那么你正在使用朴素贝叶斯分类器。
但是这样的模型有时可能过于简单,效果不是特别好;需要在各个特征之间添加一些联系,使模型更加复杂。
并不是所有的模型都是高斯分布。对于一些二分类问题,你可以假设它们来自伯努利分布来生成概率模型,然后进行分类预测。
#### 4.3 后验概率

通过代数变换,我们将分类预测变成关于$z$ 的 $sigmoid$ 函数,其中 $P(x|C_1),P(x|C_2)$ 满足高斯分布。

- 我们将 $P(x|C_1),P(x|C_2)$和 $P(C_1),P(C_2)$的表达式带入化简得到 $z$ 的新的表达式:

- 当两个高斯分布的协方差相同时,即 $\sum^1 = \sum^2$,进一步简化 $z$ 的表达式:

在生成模型中,我们通过训练集数据,估计$N_1,N_2,μ^1,μ^2,\sum$ .