分类问题和线性回归问题问题很像,只是在分类问题中,我们预测的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. 机器学习算法笔记1_2:分类和逻辑回归(Classification and Logistic regression)

    形式: 採用sigmoid函数: g(z)=11+e−z 其导数为g′(z)=(1−g(z))g(z) 如果: 即: 若有m个样本,则似然函数形式是: 对数形式: 採用梯度上升法求其最大值 求导: 更 ...

  2. 斯坦福CS229机器学习课程笔记 part2:分类和逻辑回归 Classificatiion and logistic regression

    Logistic Regression 逻辑回归 1.模型 逻辑回归解决的是分类问题,并且是二元分类问题(binary classification),y只有0,1两个取值.对于分类问题使用线性回归不 ...

  3. 逻辑回归模型(Logistic Regression)及Python实现

    逻辑回归模型(Logistic Regression)及Python实现 http://www.cnblogs.com/sumai 1.模型 在分类问题中,比如判断邮件是否为垃圾邮件,判断肿瘤是否为阳 ...

  4. 斯坦福机器学习视频笔记 Week3 逻辑回归与正则化 Logistic Regression and Regularization

    我们将讨论逻辑回归. 逻辑回归是一种将数据分类为离散结果的方法. 例如,我们可以使用逻辑回归将电子邮件分类为垃圾邮件或非垃圾邮件. 在本模块中,我们介绍分类的概念,逻辑回归的损失函数(cost fun ...

  5. 逻辑回归原理 面试 Logistic Regression

    逻辑回归是假设数据服从独立且服从伯努利分布,多用于二分类场景,应用极大似然估计构造损失函数,并使用梯度下降法对参数进行估计.

  6. 吴恩达深度学习:2.9逻辑回归梯度下降法(Logistic Regression Gradient descent)

    1.回顾logistic回归,下式中a是逻辑回归的输出,y是样本的真值标签值 . (1)现在写出该样本的偏导数流程图.假设这个样本只有两个特征x1和x2, 为了计算z,我们需要输入参数w1.w2和b还 ...

  7. 吴恩达机器学习笔记22-正则化逻辑回归模型(Regularized Logistic Regression)

    针对逻辑回归问题,我们在之前的课程已经学习过两种优化算法:我们首先学习了使用梯度下降法来优化代价函数

  8. [Machine Learning] 逻辑回归 (Logistic Regression) -分类问题-逻辑回归-正则化

    在之前的问题讨论中,研究的都是连续值,即y的输出是一个连续的值.但是在分类问题中,要预测的值是离散的值,就是预测的结果是否属于某一个类.例如:判断一封电子邮件是否是垃圾邮件:判断一次金融交易是否是欺诈 ...

  9. 李宏毅机器学习笔记3:Classification、Logistic Regression

    李宏毅老师的机器学习课程和吴恩达老师的机器学习课程都是都是ML和DL非常好的入门资料,在YouTube.网易云课堂.B站都能观看到相应的课程视频,接下来这一系列的博客我都将记录老师上课的笔记以及自己对 ...

随机推荐

  1. Xcode 在读写上提速100倍

  2. Machine Learning|Andrew Ng|Coursera 吴恩达机器学习笔记(完结)

    Week 1: Machine Learning: A computer program is said to learn from experience E with respect to some ...

  3. IOS开发 CocoaPods 使用 pod Install 出现 Updating local specs repositories

    pod install 换成pod install --verbose --no-repo-update这个命令,前面的命令被墙了

  4. Openflow1.3

    Openflow1.3 协议标准

  5. caffe学习笔记教程

    1 官网:http://caffe.berkeleyvision.org/ 2 豆丁网中:http://www.docin.com/p-871820917.html 3 下载的caffe中,.../d ...

  6. docker下的Jenkins安装和体验【转】

    原文地址:http://blog.csdn.net/boling_cavalry/article/details/78942408 作为一款优秀的持续集成工具,jenkins在日常的项目中经常会用到, ...

  7. 一图说明offsetTop、top、clientTop、scrollTop等

    offsetParent:该属性返回一个对象的引用,这个对象是距离调用offsetParent的元素最近的(在包含层次中最靠近的),已进行过CSS定位的容器元素. 如果这个容器元素未进行CSS定位, ...

  8. Clairewd’s message(哈希模板+)

    个人心得:一开始就是知道用哈希,但是无从下手,很明显是对哈希不太了解和思维不太好. 先来看一下这一题涉及到的哈希吧和这题的思路吧,思路就是对所给的密文用原文和翻译后进行hash处理,那么必然存在后面那 ...

  9. 《DSP using MATLAB》示例Example 6.27

    代码: % r = 0.9; theta = (pi/180)*[-55:5:-35, 35:5:55]'; p = r*exp(j*theta); a = poly(p); b = 1; w = [ ...

  10. Mac OS安装php-redis扩展

    下载php-redis(用于php5.x的版本),地址:https://nodeload.github.com/nicolasff/phpredis/zip/master. 如果是php7.2,选择p ...