1. 使用回归进行分类

机器学习中分类是指输入一个样本点,输出这个样本点所属的类别,预测的是一个离散值,如类别(1,2)。
而回归问题是输入一个样本点,预测一个值,这个值是连续值,可以介于\([1,2]\)之间。

以二分类问题为例,我们可不可以通过回归的方法来进行分类呢?比如输入一个样本点,如果是第1类,就让他输出1,如果是第2类就输出-1。通过线性回归的损失函数\(\frac{1}{m}\sum_{i=1}^n(y_i-\hat y)^2\),进行梯度下降,来求参数\(w,b\)最终获得一个超平面进行分类。

这种方法是不行的。因为如下图。
问题:

  1. 对于左边的图,我们求得是理想的分界线,但是对于右边的图,右下角部分的点属于1类,如果使用绿线的参数来预测右下角点,值会远远大于1,表示分类很正确。但是我们设定损失函数的时候,希望属于第1类的点预测值等于1,因此会使调整参数使右下角的点预测值变小接近1,结果就会使绿线变为紫线,分类不准确
  2. 对于多分类问题,如类1输出1,类2输出2,类3输出3。回归问题就会假想这三个类别有某种关系,比如类3跟类2比较接近,类2跟类3比较接近,因为输出值离得的比较近。但是实际上没有关系。得不到好结果。

2. 通过概率理解分类问题

我们想,通过求某个样本属于某个类别的概率,在比较属于哪个类别的概率比较大,来判断此样本属于哪个类别。这个想法也叫产生式模型。与之对应的还有判别式模型。两者有什么区别呢。

生成模型:假如有\(C_1,C_2,C_3\)三个类别,求样本\(x\)属于哪个类别。对于产生式模型是,先通过训练集分别求出每个类\(C_1,C_2,C_3\)的联合概率分布。在通过每个联合概率分布求得样本\(x\)属于哪个类别的概率,通过比较属于哪个类别概率大来判断类别。

如朴素贝叶斯模型

判定模型:通过一系列的训练集样本,直接生成一个决策边界,给定一个样本,可以直接带入函数中求得属于哪一类。即处在决策边界的哪一方。

如逻辑回归,支持向量机

下图展示了判定模型跟生成模型:可以看出判定模型是求出了决策边界,生成模型是求得联合概率分布

优缺点:

  1. 生成模型需要的样本数量少,因为只需进行统计技术来获得模型。
  2. 生成模型准确率一般不高,因为需要人为指定属于哪一种分布。
  3. 生成模型对噪声有更好的鲁棒性
  4. 判定模型准确率高,可直接学习求得参数,简化学习。

假设分布符合高斯分布,则给定训练集,对每一类的数据集我们可以求得一个分布函数,其中\(\mu\)为此类所有样本的平均值,\(\Sigma\)为此类样本维度对应的协方差矩阵。

有了分布函数,给定一个样本\(x\)我们就可以求得此样本在此类分布中出现的可能行。对于某类的高斯分布函数,属于这一类的样本点的概率和是最大的。即

但平时我们不会为每个类别建立一个高斯分布函数,而是共用一个协方差,即求这样一个高斯分布函数,使函数值最大,其中\(\mu_1,u_2\)是训练集中每个类的样本的平均值,\(\Sigma\) 等于每个类对应的比例的协方差之和,即假如有79个1类样本,61个类样本,一共140个样本,\(\Sigma=\frac{79}{140}\Sigma_1+\frac{61}{140}\Sigma_2\)

若所有样本的每一个维度都相互独立,\(x_1,x_2 \cdots x_k\)为\(x\)的每一个维度,那我们可以令:

但实际中,每个属性不是相互独立的,这个模型类效果不会很好。

下面看sigmoid函数跟后验概率的联系。

可以看到若将\(ln\frac{P(x|C_1)P(C_1)}{P(x|C_2)P(C_2)}\)带入sigmoid中得到的就是样本\(x\)属于类1的概率,在将z进行化简,\(C_1,C_2\)共用协方差得到

即我们可以简化为求解向量\(w^T\)跟常数\(b\)来求解样本\(x\)所属的类1的概率。

3. 逻辑回归

有了sigmoid函数后我们看如何来建立逻辑回归模型解决分类问题。

我们的假设函数为\(f_{w,b}(x)=\sigma(\sum_i w_i x_i+b)\)带入样本\(x\)输出值\((0,1)\)的预测值,\(\sigma\)为sigmoid函数。那我们的损失函数为应该设为什么样子。首先想到的是求平方差的方法,即设

在通过梯度下降的方式求得参数\(w,b\) ,直觉上行的通,但是通过下图我们可以看出,通过求平方差设定的损失函数的图是红色网格。在整个样本空间中每个点的梯度值都很小,参数很难更新,因此我们得寻找其他方法。

设函数为下面公式,其中\(x^1,x^2 \cdots x^N为样本点\),\(x^1,x^2,x^N\)为类1,\(x^3\)为类2

我们要求得的参数$w^,b^ $就是使函数最大的值。对函数L做如下转化

设第一类的标签为1,第二类的标签为0,可以得到如下式子,这其实使伯努利的交叉熵形式。

下面简要介绍交叉熵

先说信息量,信息量的公式为\(-log_2p\),\(p\)为某个时间事件发生的概率。通过公式我们可以看到,信息量与概率呈反比。这其实有很直观的解释,如果我们对某件事很确定,那这件事带给我们的信息量就很少,如果对某件事一点把握都没有,那他的信息量就很大。

信息熵:信息熵是信息量的期望公式如下,因此信息熵是平均而言发生一个事件我们得到的信息量的大小。熵越大不确定就越大,熵越小不确定性就越小。

对于每个系统,它都有个真实分布记,通过这个真实分布我们可以通过信息熵的公式求出这个系统的不确定性大小。

交叉熵:其用来衡量\(p\)的分布与\(q\)的分布有多接近

\(p_k\)为真实分布的概率,即训练集中标签,\(q_k\)为我们模拟的分布函数求得的概率,交叉熵的值越小,\(q_k\)的值越接近$q _k $,即我们模拟的函数越接近真实分布,预测越准确。因此我们在机器学习分类算法中,我们会最小化交叉熵,交叉熵越小,我们的预测就越准确。回到我们定义的损失函数,我们最小化我们的损失函数,就可以使我们的预测值,接近标签值。

逻辑回归的一个局限性是只能产生线性分界线,可以通过进行特征转化,来将之前非线性可分的数据转换为线性可分。还可以通过组合多个逻辑回归来产生非线性分界线。其实就是神经网络。

4. 参考

  1. 李宏毅机器学习
  2. 信息熵是什么? - 滴水的回答 - 知乎
    https://www.zhihu.com/question/22178202/answer/49929786
  3. 如何通俗的解释交叉熵与相对熵? - Noriko Oshima的回答 - 知乎
    https://www.zhihu.com/question/41252833/answer/108777563

分类,logistic回归的更多相关文章

  1. SPSS数据分析—多分类Logistic回归模型

    前面我们说过二分类Logistic回归模型,但分类变量并不只是二分类一种,还有多分类,本次我们介绍当因变量为多分类时的Logistic回归模型. 多分类Logistic回归模型又分为有序多分类Logi ...

  2. Logistic回归分析之多分类Logistic回归

    Logistic回归分析(logit回归)一般可分为3类,分别是二元Logistic回归分析.多分类Logistic回归分析和有序Logistic回归分析.logistic回归分析类型如下所示. Lo ...

  3. SPSS数据分析—二分类Logistic回归模型

    对于分类变量,我们知道通常使用卡方检验,但卡方检验仅能分析因素的作用,无法继续分析其作用大小和方向,并且当因素水平过多时,单元格被划分的越来越细,频数有可能为0,导致结果不准确,最重要的是卡方检验不能 ...

  4. 二分类Logistic回归模型

    Logistic回归属于概率型的非线性回归,分为二分类和多分类的回归模型.这里只讲二分类. 对于二分类的Logistic回归,因变量y只有“是.否”两个取值,记为1和0.这种值为0/1的二值品质型变量 ...

  5. 【ML系列】简单的二元分类——Logistic回归

    对于了解机器学习中二元分类问题的来源与分析,我认为王树义老师这篇文章讲的非常好,通俗且易懂: http://blog.sciencenet.cn/blog-377709-1121098.html 但王 ...

  6. SAS学习笔记36 二分类logistic回归

    这里所拟合模型的AIC和SC统计量的值均小于只有截距的模型的相应统计量的值,说明含有自变量的模型较仅含有常数项的要好 但模型的最大重新换算 R 方为0.0993,说明模型拟合效果并不好,可能有其他危险 ...

  7. 如何在R语言中使用Logistic回归模型

    在日常学习或工作中经常会使用线性回归模型对某一事物进行预测,例如预测房价.身高.GDP.学生成绩等,发现这些被预测的变量都属于连续型变量.然而有些情况下,被预测变量可能是二元变量,即成功或失败.流失或 ...

  8. SPSS数据分析—配对Logistic回归模型

    Lofistic回归模型也可以用于配对资料,但是其分析方法和操作方法均与之前介绍的不同,具体表现 在以下几个方面1.每个配对组共有同一个回归参数,也就是说协变量在不同配对组中的作用相同2.常数项随着配 ...

  9. 机器学习公开课笔记(3):Logistic回归

    Logistic 回归 通常是二元分类器(也可以用于多元分类),例如以下的分类问题 Email: spam / not spam Tumor: Malignant / benign 假设 (Hypot ...

  10. 5 Logistic回归(一)

    首次接触最优化算法.介绍几个最优化算法,并利用它们训练出一个非线性函数用于分类. 假设现在有一些数据点,我们利用一条直线对这些点进行拟合(该直线为最佳拟合直线),这个拟合过程称作回归. 利用Logis ...

随机推荐

  1. Hadoop中MapReduce计算框架以及HDFS可以干点啥

    我准备学习用hadoop来实现下面的过程: 词频统计 存储海量的视频数据 倒排索引 数据去重 数据排序 聚类分析 ============= 先写这么多

  2. imx6 socketcan 发送问题

    参考cansend 的方法进行发送can 数据. cansend 的生成,请查考:http://www.cnblogs.com/chenfulin5/p/6797756.html cansend 代码 ...

  3. UCOS2系统内核讲述(五)_初始化TCB详情

    Ⅰ.写在前面 学习本文之前可以参看我前面的文章: UCOS2系统内核讲述(四)_创建任务 上一篇文章讲述了关于函数“OSTaskCreateExt”创建任务函数体里面重要一些的内容,本文接着上一张讲述 ...

  4. PHP——小尾巴之权限管理

    流程: 在权限管理页面,默认显示用户的角色,更改复选框的按钮内容,可以改变角色,点击确定提交至数据库 在登陆之后,只显示该用户的角色所对应的权限 数据库: guanli.php <!DOCTYP ...

  5. Repeater DataTable 折叠动态加载

    网上关于Repeater折叠一般都是直接绑定上去,然后设置样式隐藏显示,可是这样是不太合理的,应该是客户需要的时候,你才去加载出来.所以,自己研究了一段时间,总结出下面的实现方案 首先是控件部分 &l ...

  6. ipmitool sdr type Temperature sdr 从传感器获取某一类数据

    1.1.1 常用监控命令总结.ipmitool sdr type Temperature 硬件监控 yum install  OpenIPMI ipmitool ipmitool sdr type T ...

  7. RabbitMQ组成及原理介绍-3

    rabbitmq作为成熟的企业消息中间件,实现了应用程序间接口调用的解耦,提高系统的吞吐量. 1.RabbitMQ组成 是由 LShift 提供的一个 Advanced Message Queuing ...

  8. 实例讲解JQuery中this和$(this)区别

    这篇文章主要介绍了实例讲解JQuery中this和$(this)的区别,this表示当前的上下文对象是一个html对象,可以调用html对象所拥有的属性和方法,$(this),代表的上下文对象是一个j ...

  9. sublime window 配置记录 (转)

    大家好,今天给大家分享一款编辑器:sublime text2    我用过很多编辑器,EditPlus.EmEditor.Notepad++.Notepad2.UltraEdit.Editra.Vim ...

  10. Linux命令之乐--rename

    用来修改文件名.重命名文件,批量重命名文件rename是最好的选择. 用法:rename from to files... [root@Director test]# ls a_01 a_02 [ro ...