机器学习---逻辑回归(machinelearninglogisticregressionii)

huzihu huzihu     2022-12-22     743

关键词:

《机器学习---逻辑回归(一)(Machine Learning Logistic Regression I)》一文中,我们讨论了如何用逻辑回归解决二分类问题以及逻辑回归算法的本质。现在来看一下多分类的情况。

 

现实中相对于二分类问题,我们更常遇到的是多分类问题。多分类问题如何求解呢?有两种方式。一种是方式是修改原有模型,另一种方式是将多分类问题拆分成一个个二分类问题解决。

 


 

先来看一下第一种方式:修改原有模型。即:把二分类逻辑回归模型变为多分类逻辑回归模型。

二分类逻辑回归称为binary logistic regression,其目标y只有两种可能的类别,符合伯努利分布;而多分类逻辑回归称为multinomial logistic regression,其目标y有超过两种可能的类别,符合多项分布。)

 

在原有的二分类逻辑回归模型中,目标y只有两种类别。并且如果样本 P(y=1 | x) > P(y=0 | x),就表示样本属于 y=1这一类别的概率更高。现在我们要把目标y扩展为K种类别(K=0,1,2,...,k-1),我们想要知道给定特征x,其目标属于每一种类别的概率分别是多少,这样我们就能判断样本最有可能属于哪个类别。并且这些概率相加总和应该为1,即:技术图片。那么我们就应该从这些目标类别中找一个类别作为baseline,然后计算其他类别相对于这个baseline的对数几率。

 

我们把类别0作为baseline,定为负类,其余K-1类中的一类分别定为正类。那么一共可以进行k-1次二分类逻辑回归,按照其公式,将对数几率写成线性组合的形式:

技术图片.................(1)

 

从式子(1)我们可以得知:

技术图片.................(2)

 

因为给定特征x,其目标属于每一种类别的概率相加总和为1,因此:

技术图片

 

然后可以得到:

技术图片.................(3)

 

将式子(3)代入式子(2):

技术图片.................(4)

 

可以看出,当K=2时,上式变为逻辑函数的形式:

技术图片

 

因此,二分类逻辑回归是多分类逻辑回归的特例,多分类逻辑回归是二分类逻辑回归的扩展。

 

又因为当K=2时,技术图片,因此可以得出:技术图片

 

将这一结果代入式子(4),转换整合可以得到:

技术图片(其中c表示当前类别,k表示总类别数,即:类别一共K类,从0到k-1)

 

此条件概率公式对应的函数称为softmax函数(softmax function)。因此,其对应的模型也被称为softmax回归模型。

 

softmax函数:

技术图片     for j = 1, 2,…, K.

 
因为我们想要得到样本目标属于各个类别的概率,因此我们需要输出一个k维的向量来表示这k个估计的概率值,且此向量元素相加之和为1。所以假设函数的形式如下:
技术图片

 

总结来说就是:多分类逻辑回归模型有多个输出,输出的个数与类别个数相同,输出的值为目标属于各个类别的概率,概率最高的那个类别就是目标最有可能的类别。

 
接下来需要求解参数w。
 

因为目标y是多个分类标签,因此我们假设y服从多项分布,那么目标y的概率质量函数就是:技术图片,将其写成条件概率表达式就是:技术图片

(注:1y=c表示当y属于类别c时,值为1,否则为0)

 

假设有m个独立样本,那么m个y之间也是相互独立的。因此,目标y的联合概率为:技术图片

 

然后还是用极大似然估计法,对似然函数取自然对数及负号,推导出的损失函数如下:
技术图片
 
这个损失函数的原理是:对于样本(xi,yi),它的正确分类类别是c,那么如果它计算出的目标属于类别c的分类概率的值为1,则说明分类完全正确,这种情况下对损失函数没有贡献(ln1=0);而如果分类错误,则它计算出的目标属于类别c的的分类概率将是一个小于1的值,这种情况下将对损失函数有所贡献。
 
对比二分类逻辑回归的损失函数:技术图片。是不是很相似?只不过多分类逻辑回归是用的所有k项的累和,而二分类逻辑回归只有0和1类的累和。

 

继续把损失函数L展开:
技术图片

 

现在损失函数看起来还是很复杂,但是其实只有yi=c这一项有数值(也就是样本目标是正确类别的情况),其余项都为0。因此,我们可以继续简化损失函数。

技术图片

技术图片

 

简化后的损失函数为:

技术图片

 

现在用wt对损失函数L求偏导(wt是w0~wk-1中的一个,是(n+1)*1的向量)。这里分为两种情况:

1. t=c:

技术图片

 

2. t≠c:

技术图片

 

两种情况综合在一起,损失函数L的梯度就是:

技术图片       for t = 0, 1,…, k-1.

 

为简便起见,把参数w记成(n+1)*k的矩阵,把yi记成1*k的向量:

技术图片  (其中n表示特征数量,k表示类别数量)

技术图片

 

这样梯度可以写成:

技术图片

 

批量梯度下降法的参数更新公式为:

技术图片

 


 

现在让我们来思考几个问题:

 

1. softmax函数是怎么得来的?(摘自:https://blog.csdn.net/acdreamers/article/details/44663305

因为目标y是多个分类标签,因此我们假设y服从多项分布,那么目标y的概率质量函数就是:技术图片,将其写成条件概率表达式就是:技术图片

 

k个类别的概率用k个变量技术图片技术图片…,技术图片表示。这个k变量和为1,即满足:技术图片

 

技术图片可以用前k-1个变量来表示,即:技术图片

 

和sigmoid函数一样,softmax函数也是从证明目标的联合分布属于指数分布族而得来的。

 

先引入技术图片,它是一个技术图片维的向量,那么:

   技术图片

 

应用于一般线性模型,技术图片必然是属于技术图片个类中的一种。用技术图片表示技术图片为真,同样当技术图片为假时,有技术图片,那么进一步得到y的联合概率为:

      技术图片

 

对比指数分布族的一般表达式,可以得到:

      技术图片   

 

既然:技术图片

 

那么最终可以得到:

       技术图片

 

2. 为什么softmax函数上的点可以用来表示分类概率?

因为wx的值域从负无穷大到正无穷大,我们要想让softmax函数表示概率,那么就需要把wx的值域先变成正数,再归一化到(0,1)区间。指数函数正好能把wx的值域变成正数,且指数函数是严格递增的。把wx映射到指数函数上后,再把其除以它们的累和,就相当于将每个分类概率进行了归一化,使得所有分类概率之和为 1。

softmax函数的本质就是将一个K维的任意实数向量压缩(映射)成另一个K维的实数向量,使得向量中的每个元素取值都介于(0,1)之间,并且所有元素的和为1。

 


 

再来看一下第二种方式:将多分类问题拆分成二分类问题。即:将多分类问题拆分成一个个二分类问题,然后为每个拆出的二分类任务训练出一个二分类逻辑回归模型,然后对这些模型的预测结果进行集成以获得最终的多分类结果。这里面的关键是如何对问题进行拆分,即拆分的策略。

 

下面是三种拆分策略:

 

1. 一对其余(One vs. Rest,简称OvR)

每次将一个类别作为正类,其余所有类作为反类,训练出N个二分类逻辑回归模型。新样本提交给所有二分类逻辑回归模型,若仅有一个模型预测为正类,则该类的类别为最终结果。若有多个分类器标记为正类,则考虑预置置信度。

 

2. 一对一(One vs. One,简称OvO)

每次将N个类别两两配对,其中一个类别作为正类,另一个作为反类,训练出N(N-1)/2个二分类逻辑回归模型。新样本同时提交给所有二分类逻辑回归模型,得到N(N-1)/2个分类结果,预测最多的类别为最终结果。

 

技术图片

 

3. 多对多(Many vs. Many,简称MvM)

每次将若干个类别作为正类,其他作为反类。MvM的正、反类构造必须有特殊的设计,不能随意选取,最常用的技术是“纠错输出码“Error Correcting Output Codes(ECOC)。(ECOC编码对分类器错误有一定的容忍修正能力,即使某个分类器预测出错,也不一定会影响结果)

ECOC:

编码:将N个类别做M次划分,每次将一部分作为正例,其余作为反例,训练出M个二分类模型。

解码:新样本提交给M个二分类模型,得到M个结果,组成一个编码,将其和每个类别各自的编码进行比较,距离最小的类别为最终结果。

技术图片

 


 

OvR和OvO这两种拆分策略比较简单且使用较多,因此下面详细介绍一下这两种拆分策略。

 

1. OvR:

如下图所示,假如目标一共有4个类别。每次将某一类分为正类,其余三类分为负类,进行二分类任务,新样本提交给模型,得到新样本分别属于正负两类的概率值。像这样一共进行4次二分类任务,最后得到新样本分别属于这四类的概率,最大概率对应哪一类,就将这点估计为哪一类。

OvR有个问题就是如果数据类别很多,那么每次二分类问题中,正类和负类的数量差别就很大,数据不平衡,这样会影响分类效果。

技术图片

 

2. OvO:

如下图所示,假如目标一共有4个类别。每次将某一类分为正类,另一类分为负类,进行二分类任务,新样本提交给模型,估计出新样本属于正类还是负类。像这样一共进行技术图片次二分类任务,最后投票决定新样本属于哪个类别(投票数最多的类别)。

OvO的优点是虽然需要进行的分类任务增多了,但是每次只需要进行两个类别的比较,也就是说单次分类的数量减少了,因此一般不会出现数据不平衡的情况。缺点是分类任务增多,且每次需要记住分类结果,时间复杂度和空间复杂度都比较高。

技术图片

 

OvR和OvO对比总结:

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

 

综上:

  • OvR的优点是,分类器个数少,存储开销和测试时间比OvO少。缺点是,类别很多时,训练时间长,且有数据不平衡带来的影响。
  • OvO的优点是,在类别很多时,训练时间要比OvR少。缺点是,分类器个数多。

 


 

方式一(softmax)和方式二(多个logistic回归)有什么区别呢?

  •   softmax回归进行的是单个多分类任务,类与类之间是互斥的,即一个输入只能被归为一类
  •   多个logistic回归进行的是多个二分类任务,类与类之间并不是互斥的

 

总结:如果类别之间是互斥的,那么用softmax回归会比较合适;如果类别之间不是互斥的(可以同时属于不同类别,比如"苹果"可以既属于"水果"类也属于"3C"类),同时类别较少时,用OVR比较合适;如果类别较多,或者你需要看任意两类之间的区分,那么就用OVO。

 

机器学习逻辑回归介绍

...辑回归的应用场景逻辑回归(LogisticRegression)是机器学习中的一种分类模型,逻辑回归是一种分类算法,虽然名字中带有回归。由于算法的简单和高效,在实际中应用非常广泛。广告点击率是否为垃圾邮件是... 查看详情

机器学习——逻辑回归(logisticregression)

1前言  虽然该机器学习算法名字里面有“回归”,但是它其实是个分类算法。取名逻辑回归主要是因为是从线性回归转变而来的。  logistic回归,又叫对数几率回归。2logistic回归和线性回归的关系2.1线性回归模型  首先给... 查看详情

机器学习逻辑回归(logisticregression)

...了个大概,剩下的细节只能自己继续摸索。从本质上讲:机器学习就是一个模型对外界的刺激(训练样本)做出反应,趋利避害(评价标准)。 1.什么是逻辑回归?许多人对线性回归都比较熟悉,但知道逻辑回归的人可能就... 查看详情

[机器学习]--逻辑回归总结

逻辑回归是一个分类算法,它可以处理二元分类以及多元分类。虽然它名字里面有“回归”两个字,却不是一个回归算法。那为什么有“回归”这个误导性的词呢?个人认为,虽然逻辑回归是分类模型,但是它的原... 查看详情

andrewng机器学习:逻辑回归

1.逻辑回归解决什么问题?逻辑回归用于分类问题。对于二分类问题,输入多个特征,输出为是或不是(也可以写作1或0)。逻辑回归就是这样一个用于分类的模型。2.什么是逻辑回归?逻辑回归建立在线性回归的基础上。首先,... 查看详情

机器学习100天(十七):017逻辑回归梯度下降

机器学习100天,今天讲的是:逻辑回归-梯度下降!在讲解了逻辑回归的基本原理和损失函数之后,我们来推导逻辑回归模型中参数w和b的梯度表达式。我们之前介绍过,计算逻辑回归的代价函数实际上包含了下面三个过程:Z=WTX+... 查看详情

机器学习100天(十七):017逻辑回归梯度下降

机器学习100天,今天讲的是:逻辑回归-梯度下降!在讲解了逻辑回归的基本原理和损失函数之后,我们来推导逻辑回归模型中参数w和b的梯度表达式。我们之前介绍过,计算逻辑回归的代价函数实际上包含了下面三个过程:Z=WTX+... 查看详情

机器学习算法---逻辑回归及梯度下降

一、逻辑回归简介  logistic回归又称logistic回归分析,是一种广义的线性回归分析模型,常用于数据挖掘,疾病自动诊断,经济预测等领域。  logistic回归是一种广义线性回归(generalizedlinearmodel),因此与多重线性回归分析... 查看详情

机器学习笔记逻辑回归

一、逻辑回归问题二分类的问题为是否的问题,由算出的分数值,经过sign函数输出的是(+1,-1),想要输出的结果为一个几率值,则需要改变函数模型,其中,,则逻辑回归的函数为二、逻辑回归错误评价线性分类和线性回归... 查看详情

逻辑回归|机器学习|分类算法(代码片段)

目录1.逻辑回归1.1逻辑回归原理1.2sigmoid函数2.相关代码2.1LogisticsRegression类2.2求解代码2.3输出结果3.直接调库使用1.逻辑回归1.1逻辑回归原理∙\\bullet∙逻辑回归又叫对数几率回归,是一种对数几率模型,可以求解二分类问... 查看详情

机器学习——线性回归分类与逻辑回归

http://antkillerfarm.github.io/序这是根据AndrewNg的《机器学习讲义》,编写的系列blog。http://www.cnblogs.com/jerrylead/archive/2012/05/08/2489725.html这是网友jerrylead翻译整理的版本,也是本文的一个重要的参考。http://www.tcse.cn/~xulijie/这是jerrylea 查看详情

机器学习100天(十六):016逻辑回归损失函数

机器学习100天,今天讲的是:逻辑回归损失函数。一、如何找到最佳分类直线讲完了逻辑回归基本原理之后,我们再来思考一个非常关键的问题:就是如何找到最佳的分类直线呢?如图中所示,如何判断这三条直线哪个更好?线... 查看详情

机器学习100天(十六):016逻辑回归损失函数

机器学习100天,今天讲的是:逻辑回归损失函数。一、如何找到最佳分类直线讲完了逻辑回归基本原理之后,我们再来思考一个非常关键的问题:就是如何找到最佳的分类直线呢?如图中所示,如何判断这三条直线哪个更好?线... 查看详情

机器学习逻辑回归算法(代码片段)

逻辑回归算法学习目标1.逻辑回归的介绍1.1逻辑回归的应用场景1.2逻辑回归的原理1.2.1输入1.2.2激活函数1.3损失以及优化1.3.1损失1.3.2优化1.4小结2.逻辑回归api介绍3.案例:癌症分类预测-良/恶性乳腺癌肿瘤预测3.1背景介绍3.... 查看详情

机器学习---逻辑回归(machinelearninglogisticregressionii)

在《机器学习---逻辑回归(一)(MachineLearningLogisticRegressionI)》一文中,我们讨论了如何用逻辑回归解决二分类问题以及逻辑回归算法的本质。现在来看一下多分类的情况。 现实中相对于二分类问题,我们更常遇到的是多... 查看详情

第五篇[机器学习]机器学习,逻辑回归comeon

 逻辑回归,简单的说,就是用sigmoid函数把连续函数归一化转化成离散的几个可能的结果。逻辑回归的算法最大似然法: 我自己的理解,最大似然法就是在你观测到某一系列事件出现的可能性之后,倒推该事件最可能的... 查看详情

机器学习——从线性回归到逻辑斯特回归

...行总结,其中图片多来自coursera课程上。线性回归是机器学习中很好理解的一种算法。我们以常见的房屋销售为例来进行简单分析:假设我们统计的一个房屋销售的数据如下:在此࿰ 查看详情

机器学习:逻辑回归(ovr与ovo)(代码片段)

...对一的意思;改造方法不是指针对逻辑回归算法,而是在机器学习领域有通用性,所有二分类的机器学习算 查看详情