《机器学习基石》---Linear Models for Classification
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的更多相关文章
- 机器学习基石11-Linear Models for Classification
注: 文章中所有的图片均来自台湾大学林轩田<机器学习基石>课程. 笔记原作者:红色石头 微信公众号:AI有道 上一节课,我们介绍了Logistic Regression问题,建立cross ...
- 机器学习基石笔记:11 Linear Models for Classification
一.二元分类的线性模型 线性分类.线性回归.逻辑回归: 可视化这三个线性模型的代价函数, SQR.SCE的值都是大于等于0/1的. 理论分析上界: 将回归应用于分类: 线性回归后的参数值常用于pla/ ...
- 机器学习基石笔记:11 Linear Models for Classification、LC vs LinReg vs LogReg、OVA、OVO
原文地址:https://www.jianshu.com/p/6f86290e70f9 一.二元分类的线性模型 线性回归后的参数值常用于PLA/PA/Logistic Regression的参数初始化 ...
- Coursera台大机器学习课程笔记10 -- Linear Models for Classification
这一节讲线性模型,先将几种线性模型进行了对比,通过转换误差函数来将linear regression 和logistic regression 用于分类. 比较重要的是这种图,它解释了为何可以用Lin ...
- PRML读书会第四章 Linear Models for Classification(贝叶斯marginalization、Fisher线性判别、感知机、概率生成和判别模型、逻辑回归)
主讲人 planktonli planktonli(1027753147) 19:52:28 现在我们就开始讲第四章,第四章的内容是关于 线性分类模型,主要内容有四点:1) Fisher准则的分类,以 ...
- 11 Linear Models for Classification
一.二元分类的线性模型 线性分类.线性回归.逻辑回归 可视化这三个线性模型的代价函数 SQR.SCE的值都是大于等于0/1的 理论分析上界 将回归应用于分类 线性回归后的参数值常用于pla/pa/lo ...
- Regression:Generalized Linear Models
作者:桂. 时间:2017-05-22 15:28:43 链接:http://www.cnblogs.com/xingshansi/p/6890048.html 前言 本文主要是线性回归模型,包括: ...
- Generalized Linear Models
作者:桂. 时间:2017-05-22 15:28:43 链接:http://www.cnblogs.com/xingshansi/p/6890048.html 前言 主要记录python工具包:s ...
- [Scikit-learn] 1.5 Generalized Linear Models - SGD for Classification
NB: 因为softmax,NN看上去是分类,其实是拟合(回归),拟合最大似然. 多分类参见:[Scikit-learn] 1.1 Generalized Linear Models - Logist ...
随机推荐
- C++学习书籍推荐《Inside the C++ Object Model》下载
百度云及其他网盘下载地址:点我 作者简介 Stanley B. Lippman is Architect with the Visual C++ development team at Microso ...
- 零基础ASP.NET Core WebAPI团队协作开发
零基础ASP.NET Core WebAPI团队协作开发 相信大家对“前后端分离”和“微服务”这两个词应该是耳熟能详了.网上也有很多介绍这方面的文章,写的都很好.我这里提这个是因为接下来我要分享的内容 ...
- ZIP:ZipStream
ZipInputStream: ZipInputStream(InputStream in) :创建新的 ZIP 输入流. int read(byte[] b, int off, int len) : ...
- 分享基于EF6、Unitwork、Autofac的Repository模式设计
目录 分享基于EF6.Unitwork.Autofac的Repository模式设计 一.实现的思路和结构图 二.Repository设计具体的实现代码 三.Repository设计的具体的使用 四. ...
- 【二分讲解及例题】火车站台连锁店-C++
首先我们先来从一个小游戏理解一下二分.(摘自程序员小灰的博客) 为什么说这样效率最高呢?因为每一次选择数字,无论偏大还是偏小,都可以让剩下的选择范围缩小一半. 给定范围0到1000的整数: 第一次我们 ...
- .NET CORE 微信小程序消息验证的坑
进入微信小程序,点击开发->选择消息推送->扫码授权,填写必要参数 进入接口开发: /// <summary> /// 验证小程序 /// </summary> / ...
- linux作业控制和文件系统
一.作业控制 [root@tianyun ~]# sleep 2000运行一个程序,当前终端无法输入. 1 直接运行后台程序.暂停一个前台程序.[root@tianyun ~]# sleep 300 ...
- Django的学习进阶(三)————ORM
django框架是将数据库信息进行了封装,采取了 类——>数据表 对象——>记录 属性——>字段 通过这种一一对应方式完成了orm的基本映射官方文档:https://docs.dja ...
- PhpCms V9中的{date('Y-m-d',$r[inputtime])}问题解决方法
不少朋友会碰到这个问题:在PhpCms V9中的首页或者文章内容页调用发布时间{date('Y-m-d',$r[inputtime])}调用显示1970-01-01,然后尝试用截断的方法也没有成功,应 ...
- C语言编程入门之--第二章编译环境搭建
第二章 编译环境搭建 导读:C语言程序如何工作,首先需要编译链接成可执行文件,然后就可以运行在不同的环境中,这个“环境”的意思就是比如说,电脑,手机,路由器,蓝牙音箱等等智能设备中,其中编译器启到了关 ...