文章目录
- 4 Classification
- 4.1 function set
- 简单了解一下概率模型
- 高斯分布
- 怎么计算高斯分布的参数?——最大似然估计
- 4.2 后验概率的计算推导
4 Classification
首先分类问题还是属于机器学习模型,只不过输出不是连续的值,而是分类结果。我们用的同样是三步:选择function set→计算误差→选择模型。
假定有两类,我们要使用Regression的方法计算输出,设置一个值作为分类的标准。
不在计算误差距离,而是用分类不正确的次数作为误差。
并且因为误差次数是不可微分,所以我们要用别的方法优化(不能使用梯度下降)。
4.1 function set
第一步是可以对训练数据进行分类的模型。我们在概率论学到过,一个物品,我们计算它分为class1的概率,以及它分为class2的概率,…,显然概率更大的就是最后最可能的答案,即该类为预测结果。
简单了解一下概率模型
假设x表示抽出的球是蓝色
x|c1:从c1里面抽出的球是蓝色
c1|x:已知抽出了一个蓝色的球,这个球是从c1里面抽出来的概率
P(c1|x):数据类别被判定为类型c1的概率
所以我们只需要从训练数据中得出框框中的四个值,就可以分类一个x。【贝叶斯公式】
当我偶们能计算出每一个x出现的机率P(x),我们就可以知道他们的distribution,进而用这个分布预测新的x。【全概率公式】
运用到宝可梦分类的案例中
假设我们现在有一堆训练数据(特征是个二维向量),他们分为两类——79个是water+61个Normal。
画出分布图,我们发现water类的数据类似高斯分布(聚集在了一块)。于是就想用高斯分布的函数来作为我们模型分类的function。【当然可以不用高斯分布用别的】
高斯分布
高斯分布可以当作由参数均值μ【miu】和协方差Σ【sigma】决定的function。
于是乎,我们只要能通过训练数据找到属于water类的这个高斯分布的两个参数,我们就能预测一个新数据属于这个类的概率。
怎么计算高斯分布的参数?——最大似然估计
给我们两个参数,用最大似然估计计算这个高斯分布能产生这79个点的概率
这个函数L不是损失函数,是联合概率密度(这79个点是独立sample出来的)
当然我们可以对L做微分来求极值,但是没必要,因为这两个参数表示均值和协方差,所以就用公式直接算
现在我们计算出两个类的高斯分布参数
现在将模型运用到对测试数据的预测
进行测试的结果
坐标轴代表特征值,点是训练数据,蓝色是类别为C1,红色为C2
等高线为预测区域,越红表示预测为C1的概率越大
最后实验结果不太好——47%正确率,可能是因为特征数据太少
我们之前给两个类别的高斯模型都设置了不同μ和Σ
但是比较常见的作法是,不同的Gaussian可以用同一个协方差,因为它是跟feature size成平方正比,在哦数据量非常大的时候,增长是非常快的,参数量大,容易过拟合。
所以我们为了有效减少参数,我们可以给描述这两个class的feature分布的Gaussian强迫他们共用covariance matrix。这样就只需要较少的parameter。
就是把按之前算式分别算出来的Σ加权平均,得到共用的Σ经过测试发现,共用Σ的模型跟像一个直线分类器
之前的做法是取了一个数据多个特征的高斯分布。
我们假设每个特征是相互独立的,当然我们也可以使用每一个特征单独算一维高斯分布。 这种方法也可以称为朴素贝叶斯分布。
4.2 后验概率的计算推导
从这就可以看出为什么我们的分类器结果像一个直线。