线性模型-分类

发布于:2024-06-07 ⋅ 阅读:(183) ⋅ 点赞:(0)

一、线性判别分析LDA

线性判别分析是一种经典的线性学习方法,在二分类问题上最早是Fisher提出的,亦称为Fisher判别分析。

Fisher判别分析是一种用于降维和分类的统计方法,旨在找到可以最好区分不同类别的特征。它基于类内方差和类间方差的比值来选择最佳的投影方向,从而实现数据的最佳分类

思想:将训练集的样本投影到一条直线上,使得正类和反类投影在直线上的距离尽可能的分开。当测试集的样本被投影到直线上的时候,通过观察他的位置就可以知道该测试集的样本属于哪一类。

示意图

"+ "、 "-  "分别代表正 例和反例,椭圆表 示数据 簇的 外轮 廓,虚 线表示投 影, 红色实心圆和实心三 角形分 别表示两类 样本投影 后的中心点.

给定一个数据集D={xi,yi},Xi,μi,Σi分别表示例数集合,均值向量、协方差矩阵

投影之后再直线上的两类样本的中心点就是wTμ0和wTμ1,协方差:wTΣ0w,wTΣ1w

因为投影改变了数据的分布,所以协方差会随之改变。

就像我们之前讲到了,希望他们同类别的更接近,不同类别的就远离。其实就是最大化类中心之间的距离,最小化他们的协方差。这两个我们同时考虑的话。

将其定义为:

①类内散度矩阵

②类间散度矩阵

现在LDA就想要最大化目标Sb和Sw。

也叫做Sb与Sw的‘广义瑞利商’

如何确定w?

先介绍一下拉格朗日乘子法

我的理解就是:有变量,以及对于发原函数,有约束,求偏导,即求最优解

下面是对w的求解

在求解Sw的时候会使用到奇异值的分解

对于奇异值分解不太理解的可以参考这个

降维算法之奇异值分解SVD7000字长文,看这一篇就够了!_奇异值分解降维-CSDN博客

二、多分类LDA

新定义了一个St,全局散度矩阵

同样的要求解W

这里采用的是优化目标

tr(·):代表矩阵的迹,是矩阵的主对角线上元素的总和。

对于多分类LDA的话就是将N个类别的投影到N-1个维度上,实现一个降维

因此,被视为一种经典的降维技术。

三、多分类学习 

利用2分类策略解决多分类问题。

多分类学习的基本思路就是“拆解法“。最经典的有三种:一对一(O vs O),一对多(O vs R),多对多(M vs M).讲到这里,说不定你可以想到之前我们学过的也是类似分割的方法,对于模型评估那一块:有留出法、K折交叉验证法、自助法。

3.1 O vs O

将N个类别两两配对,看作排列组合就是\binom{2}{N},那么就会产生N(N-1)/2个二分类任务。

最终得到N(N-1)/2个分类结果,最终结果通过投票产生,即把预测的最多的类别作为最终分类结果

3.2 O vs R 

将每一个类的样例作为正例,所有其他类的样例作为反类,训练N个分类器,在测试时若有一个分类器预测为正类,则对应的类别标记作为最终的分类结果。丢进去一个样本,若有多个分类器预测为正类,则通常考虑分类器的阈值置信度,选择置信度最大的类别标记作为分类结果。如上图。

其中,OVR需要训练N个分类器,但是OVO,却要训练N(N-1)/2个人分类器。因此一对一的存储开销和测试时间开销通常比一对多的更大,但是在训练的时候,一对多的每个分类器会使用全部的训练样本,而一对一的仅用到两个类的样本,因此在类别很多的时候,一对一的训练时间开销通常比一对多的 小。至于预测性能则却决于具体的数据分布,在多数情形下两者差不多。

3.3 M vs M 

是每次将若干个类作为正类,若干个类作为反类。

但是多对多的正类和反类必须要有特殊的设计、不能随意的选取,在这里我们就介绍一种技术

纠错输出码(ECOC)

第一步:编码:

对N个类别做M次划分,每次划分将一部分类别作为正类,一部分作为反类,从而形成一个二分类发训练集,一共产生M个训练集,可以训练出M个分类器

第二部:解码:

M个分类器分别对测试样本进行预测,这些预测标记组成一个编码,将这个预测编码与每个类别各自的编码进行比较,放回其中距离最小的类别作为最终预测结果

类别划分通过“编码矩阵“指定,编码矩阵有多种形式,常见的主要有——二元编码、三元编码前者将每个类别分别指定为正类和反类,后者在正类和反类之外,还指定了一个停用类。


网站公告

今日签到

点亮在社区的每一天
去签到