分类和逻辑回归(Classification and logistic regression)
分类问题和线性回归问题问题很像,只是在分类问题中,我们预测的y值包含在一个小的离散数据集里。首先,认识一下二元分类(binary classification),在二元分类中,y的取值只能是0和1.例如,我们要做一个垃圾邮件分类器,则
为邮件的特征,而对于y,当它1则为垃圾邮件,取0表示邮件为正常邮件。所以0称之为负类(negative class),1为正类(positive class)
逻辑回归
首先看一个肿瘤是否为恶性肿瘤的分类问题,可能我们一开始想到的是用线性回归的方法来求解,如下图:

我们知道线性回归问题只能预测连续的值,而分类问题,我们预测值只能够是0或者1,所以我们可能会取一个临界点,大于取1,反之取零。上面的hΘ(x)好像能够很好的解决问题。所以如下图

这样还用线性回归模型来求解就显得不合适了,因为它预测的值可以超越[0,1]这个范围。下面我们引入一种新的模型,逻辑回归,它的输出变量范围始终都是在0和1之间。如下:

g(z)被称作logistic function或者sigmoid function,它的图像如下:

从图像可以看出z → ∞时g(z) →1,z → −∞时g(z) →0。所以令x0 = 1, 则θT x = θ0 + ∑nj=1 θjxj.
在进入正题前,我们先来看logistic function的一个很有用的特征。如下

现在回到正题,对于给定的逻辑回归问题,我们怎么去拟合出适合的Θ?
假设:
P (y = 1 | x; θ) = hθ(x) # hθ(x)的作用是,对于给定的输入变量,根据选择的参数计算输出变量=1 的可能性( estimated probablity)
P (y = 0 | x; θ) = 1 − hθ(x)
把上面两个式子整合一下得到:p(y | x; θ) = (hθ(x))y (1 − hθ(x))1−y
梯度上升方法
在线性回归中,我们的思路是构建似然函数,然后求最大似然估计,最终我们得出了θ的迭代规则,那么在逻辑回归中,我们方法也是一样,因为最后我们是要求最大似然估计,所以用到的算法是梯度上升。
假设训练样本相互独立,则似然函数表达为:

现在我们对似然函数取对数,如下

现在我们需要做的就是最大化似然估计了,这里我们就需要用梯度上升方法了。所以用向量来表示的话,更新规则如下

注意:因为我们是最大似然估计,所以这里是正好,而不是负号。
下面我们一一个训练样本为例,使用梯度上升规则:

在上面的运算中第二步运用到了我们前面推到的特性g′(z) = g(z)(1 − g(z)),所以我们得到更新规则:
我们发现这个更新规则和LMS算法的更新规则一致,但是应注意这是两个完全不同的算法。在这里是关于
的非线性函数。
这不仅是巧合,更深层次的原因在广义线性模型GLM中会提到。
在前面最大化ℓ(θ)时我们使用到的是梯度上升,在这里,再介绍一种最大化ℓ(θ)的方法---牛顿法(Newton’s method)
牛顿法(Newton’s method)
给出函数:
,我们要找到一个Θ使得f(θ) = 0成立,注意这里的Θ∈R,这时牛顿方法的更新规则如下:

牛顿法的执行过程如下:

通过求我们给出点的导数对应的切线与x轴的交点为迭代一次后的点,一直反复迭代,直到f(θ) = 0(无限逼近)
所以对于求f(θ) = 0,牛顿法是一种,那么,怎么去用牛顿法来解决最大化ℓ(θ)呢?
沿着思路,当ℓ(θ)最大的时候,ℓ′(θ)=0,所以这样得到更新如下:

在逻辑回归中,Θ是一个向量,所以此时的牛顿法可以表达为:

∇θℓ(θ) 表示ℓ(θ)的对θi’s的偏导数,H称为黑塞矩阵(Hessian matrix),是一个n*n的矩阵,n是特征量的个数,
牛顿法的收敛速度比批处理梯度下降要快,它只用迭代很少次就能够很接近最小值,但是n很大的时候,每次迭代求黑塞矩阵和黑塞矩阵的逆代价很大.
最后简单的提一下感知机算法
感知机算法(The perceptron learning algorithm)
将逻辑回归修改一下,现在强制它的输出不是0就是1,则此时的 g就是一个临界函数(threshold function)

hθ(x) = g(θT x)则我们得到更新规则如下:

这就是感知机算法。
分类和逻辑回归(Classification and logistic regression)的更多相关文章
- 机器学习算法笔记1_2:分类和逻辑回归(Classification and Logistic regression)
形式: 採用sigmoid函数: g(z)=11+e−z 其导数为g′(z)=(1−g(z))g(z) 如果: 即: 若有m个样本,则似然函数形式是: 对数形式: 採用梯度上升法求其最大值 求导: 更 ...
- 斯坦福CS229机器学习课程笔记 part2:分类和逻辑回归 Classificatiion and logistic regression
Logistic Regression 逻辑回归 1.模型 逻辑回归解决的是分类问题,并且是二元分类问题(binary classification),y只有0,1两个取值.对于分类问题使用线性回归不 ...
- 逻辑回归模型(Logistic Regression)及Python实现
逻辑回归模型(Logistic Regression)及Python实现 http://www.cnblogs.com/sumai 1.模型 在分类问题中,比如判断邮件是否为垃圾邮件,判断肿瘤是否为阳 ...
- 斯坦福机器学习视频笔记 Week3 逻辑回归与正则化 Logistic Regression and Regularization
我们将讨论逻辑回归. 逻辑回归是一种将数据分类为离散结果的方法. 例如,我们可以使用逻辑回归将电子邮件分类为垃圾邮件或非垃圾邮件. 在本模块中,我们介绍分类的概念,逻辑回归的损失函数(cost fun ...
- 逻辑回归原理 面试 Logistic Regression
逻辑回归是假设数据服从独立且服从伯努利分布,多用于二分类场景,应用极大似然估计构造损失函数,并使用梯度下降法对参数进行估计.
- 吴恩达深度学习:2.9逻辑回归梯度下降法(Logistic Regression Gradient descent)
1.回顾logistic回归,下式中a是逻辑回归的输出,y是样本的真值标签值 . (1)现在写出该样本的偏导数流程图.假设这个样本只有两个特征x1和x2, 为了计算z,我们需要输入参数w1.w2和b还 ...
- 吴恩达机器学习笔记22-正则化逻辑回归模型(Regularized Logistic Regression)
针对逻辑回归问题,我们在之前的课程已经学习过两种优化算法:我们首先学习了使用梯度下降法来优化代价函数
- [Machine Learning] 逻辑回归 (Logistic Regression) -分类问题-逻辑回归-正则化
在之前的问题讨论中,研究的都是连续值,即y的输出是一个连续的值.但是在分类问题中,要预测的值是离散的值,就是预测的结果是否属于某一个类.例如:判断一封电子邮件是否是垃圾邮件:判断一次金融交易是否是欺诈 ...
- 李宏毅机器学习笔记3:Classification、Logistic Regression
李宏毅老师的机器学习课程和吴恩达老师的机器学习课程都是都是ML和DL非常好的入门资料,在YouTube.网易云课堂.B站都能观看到相应的课程视频,接下来这一系列的博客我都将记录老师上课的笔记以及自己对 ...
随机推荐
- Linux 去重 先sort再uniq
从uniq命令的帮助信息中可以看到,该命令只过滤相邻的重复行. 如果要去掉所有重复行,需要先排序,或者使用uniq -u $ uniq --h Usage: uniq [OPTION]... [INP ...
- jQuery AJAX 与 jQuery 事件
jQuery 本身即是为事件处理而特别设计的,jQuery 事件处理方法是 jQuery 中的核心函数. $(function() { ... }); 是如下格式的缩写: $(document).re ...
- QUnit使用
什么是单元测试 每个单元测试就是一段用于测试一个模块或接口是否能达到预期结果的代码. QUnitjs 概念Qunit是一款强大的用于帮助调试代码的,JavaScript单元测试框架.是jQuery的官 ...
- BZOJ4540 Hnoi2016 序列 【莫队+RMQ+单调栈预处理】*
BZOJ4540 Hnoi2016 序列 Description 给定长度为n的序列:a1,a2,-,an,记为a[1:n].类似地,a[l:r](1≤l≤r≤N)是指序列:al,al+1,-,ar- ...
- WPF 竖排文字(转)
---恢复内容开始--- 想做一个WPF 文字竖排 类似上图.用在TabItem的header上面. <TextBlock FontSize="30" Text=" ...
- 两分钟学会Android平台NDK编程(无须Eclipse和cygwin,可使用命令行打包多个so)
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/wangbin_jxust/article/details/37389383 之前在进行cocos2d ...
- 在Eclipse中配置Tomcat7.0
为了在Eclipse中进行struts2的测试,才发现自己机器上的Eclipse没有集成Tomcat,在网上找了半天,不是这个插件没有下载地址,就是那个有好多注意事项或者版本问题.结果,自己到tomc ...
- table样式的下拉框(angularjs)
前言 虽然使用的技术比较老了,但是思想却还是适用于现在的vue等框架. 一:实现的样式 二:实现包括的功能点 1:下拉框内容是表格,类似于一个弹窗 表格内容最多六行,超出的显示滚动条,表头固定,可滚动 ...
- Docker安装ShowDoc
ShowDoc就是一个非常适合IT团队的在线文档分享工具,它可以加快团队之间沟通的效率. 一.下载showDoc资源 打开 https://github.com/star7th/showdoc 复制其 ...
- CentOS6.5安装中文支持
本人在安装CentOS6.5时选择是英文版,安装后打开文档,发现好些文档成了乱码了. 这个问题的原因是没有中文支持. 解决方法: 1.安装中文支持包 # yum groupinstall " ...