1 用回归来做分类

到目前为止,我们学习了线性分类,线性回归,逻辑回归这三种模型。以下是它们的pointwise损失函数对比(为了更容易对比,都把它们写作s和y的函数,s是wTx,表示线性打分的分数):

把这几个损失函数画在一张图上:

如果把逻辑回归的损失函数ce做一个适当的放缩,则可以得到下图:

可以看出,平方误差和放缩后的交叉熵误差是0/1误差的上限,这里以放缩后的ce举例,由于对于每个点的error均成立不等式,则不论是对于Ein还是Eout仍然有不等式成立,因为它们是数据集上每个点error的期望:

应用到VCbound,就有:

可以看出,只要把训练集上的交叉熵误差做到低,则就能保证真实的0/1错误也比较低。

因此线性回归和逻辑回归都可以用来做分类:

正如之前在《噪声与错误》一节中所说,我们这里用平方错误或交叉熵错误来代替01错误,作为errhat。

通常,我们会使用线性回归的结果作为逻辑回归,PLA,pocket算法的初始值。

2 随机梯度下降法

(注:课程里面并没有证明为什么SGD能work,直接说这样替代是可行的。)

使用随机选取一个点的梯度来代替真实的梯度,计算代价明显降低,同时能保证效果是近似的。(收敛速度会变慢,因为最快的收敛方向一定是真实的梯度方向)。

PLA和逻辑回归的联系:

当逻辑回归使用SGD时,与PLA形式上很类似,可以看作是一种soft-PLA。因为PLA是要么更新,要么不更新,而使用SGD的逻辑回归则是每次更新一定的值:

注意,对于随机梯度下降法来说,停止的条件一般是足够的迭代次数,而不是看梯度是否为0。否则再去算梯度是否为0,就没有必要用SGD了。

3 用逻辑回归做多元分类

先介绍一种简单的方法,OVA:

要做k元分类,我们相当于对同一个训练数据集训练k个二元逻辑回归模型。训练第k个模型时,标签做一定的修改,类别是k就把标签记为1,不是k就记为-1。

在做预测时,就是对这k个模型都算一遍,选择打分最大的作为预测类别:

上面的算法的一个缺点是,当k很大且每个类别的样本数量均匀时,对每个训练来说就是不均衡的。可以使用下面的算法OVO来解决这个问题:

训练C(k,2)个二分类模型,每个模型训练只使用两个类的数据,显然这样就是均衡的。做预测时,每个模型投票给一个类,最终选用得票数最多的类作为预测结果:

另外一种方法,是使用soft-max回归。事实上,逻辑斯蒂函数是soft-max函数的一个特例。

《机器学习基石》---Linear Models for Classification的更多相关文章

  1. 机器学习基石11-Linear Models for Classification

    注: 文章中所有的图片均来自台湾大学林轩田<机器学习基石>课程. 笔记原作者:红色石头 微信公众号:AI有道 上一节课,我们介绍了Logistic Regression问题,建立cross ...

  2. 机器学习基石笔记:11 Linear Models for Classification

    一.二元分类的线性模型 线性分类.线性回归.逻辑回归: 可视化这三个线性模型的代价函数, SQR.SCE的值都是大于等于0/1的. 理论分析上界: 将回归应用于分类: 线性回归后的参数值常用于pla/ ...

  3. 机器学习基石笔记:11 Linear Models for Classification、LC vs LinReg vs LogReg、OVA、OVO

    原文地址:https://www.jianshu.com/p/6f86290e70f9 一.二元分类的线性模型 线性回归后的参数值常用于PLA/PA/Logistic Regression的参数初始化 ...

  4. Coursera台大机器学习课程笔记10 -- Linear Models for Classification

    这一节讲线性模型,先将几种线性模型进行了对比,通过转换误差函数来将linear regression 和logistic regression 用于分类. 比较重要的是这种图,它解释了为何可以用Lin ...

  5. PRML读书会第四章 Linear Models for Classification(贝叶斯marginalization、Fisher线性判别、感知机、概率生成和判别模型、逻辑回归)

    主讲人 planktonli planktonli(1027753147) 19:52:28 现在我们就开始讲第四章,第四章的内容是关于 线性分类模型,主要内容有四点:1) Fisher准则的分类,以 ...

  6. 11 Linear Models for Classification

    一.二元分类的线性模型 线性分类.线性回归.逻辑回归 可视化这三个线性模型的代价函数 SQR.SCE的值都是大于等于0/1的 理论分析上界 将回归应用于分类 线性回归后的参数值常用于pla/pa/lo ...

  7. Regression:Generalized Linear Models

    作者:桂. 时间:2017-05-22  15:28:43 链接:http://www.cnblogs.com/xingshansi/p/6890048.html 前言 本文主要是线性回归模型,包括: ...

  8. Generalized Linear Models

    作者:桂. 时间:2017-05-22  15:28:43 链接:http://www.cnblogs.com/xingshansi/p/6890048.html 前言 主要记录python工具包:s ...

  9. [Scikit-learn] 1.5 Generalized Linear Models - SGD for Classification

    NB: 因为softmax,NN看上去是分类,其实是拟合(回归),拟合最大似然. 多分类参见:[Scikit-learn] 1.1 Generalized Linear Models - Logist ...

随机推荐

  1. Java学习笔记之---API的应用

    Java学习笔记之---API的应用 (一)Object类 java.lang.Object 类 Object 是类层次结构的根类.每个类都使用 Object 作为超类.所有对象(包括数组)都实现这个 ...

  2. .Net Core 学习路由和请求参数传递

    一.配置默认路由方式 {Controller=Home}/{action=Index}/{id?} 默认请求地址:http://localhost:xxx/home/index /id? 是可选项例如 ...

  3. 基于SpringBoot的Web API快速开发基础框架

    其实还是很因为懒,才会有这个案例项目的产生,每次开启一个终端的小服务都要整理一次框架,造成重复的.不必要的.缺乏创造性的劳动,SO,本着可以用.用着简单的原则上传代码到Github,希望有需要的朋友直 ...

  4. JAVA开发第一步 - JDK安装与配置

    JDK的安装与环境变量配置是JAVA开发之路的第一步,很多新人在这一步上就卡了很久,浪费了很多时间,甚至有些人就轻易地“从入门到放弃”了.今天我们就来一步步教你如何打倒这第一只拦路虎. 1.JDK下载 ...

  5. J2EE:Servlet上传文件到服务器,并相应显示

    Servlet 可以与HTML一起使用来允许用户上传文件到服务器 编辑上传文件的页面upload.html 注意事项:上传方式使用POST不能使用GET(GET不能上传文件) 表单 enctype 属 ...

  6. ElasticStack学习(九):深入ElasticSearch搜索之词项、全文本、结构化搜索及相关性算分

    一.基于词项与全文的搜索 1.词项 Term(词项)是表达语意的最小单位,搜索和利用统计语言模型进行自然语言处理都需要处理Term. Term的使用说明: 1)Term Level Query:Ter ...

  7. STM32F0_HAL库驱动描述——LL驱动程序概述

    LL驱动概述 低层(LL)驱动器旨在提供快速轻量级的专家导向层,它比硬件更接近硬件: 与HAL相反,LLAPI不适用于优化访问不是关键功能的外设设备,或者需要大量软件配置和/或复杂的高级堆栈(如USB ...

  8. MyBatis框架之SQL映射和动态SQL

    使用MyBatis实现条件查询 1.SQL映射文件: MyBatis真正的强大之处就在于SQL映射语句,MyBatis专注于SQL,对于开发人员来说也是极大限度的进行SQL调优,以保证性能.下面是SQ ...

  9. SQL server 2014使用导出数据为Excel

    1.打开SQL server 2014,连接至数据库引擎 2.在要导出的数据库上右击,选择"任务->导出数据" 3.数据源选择"SQL Server Native ...

  10. 使用Docker运行SQL Server

    现在.net core已经跨平台了,大家也都用上了linux用上了docker.跟.net经常配套使用的SQL SERVER以前一直是windows only,但是从SQL Server 2017开始 ...