Logistic Regression 逻辑回归

1.模型

逻辑回归解决的是分类问题,并且是二元分类问题(binary classification),y只有0,1两个取值。对于分类问题使用线性回归不行,因为直线无法将样本正确分类。

1.1 Sigmoid Function

因为 y∈{0,1},我们也希望 hθ(x)∈{0,1}。第一种选择是 logistic函数或S型函数(logistic function/sigmoid function)。g(z)值的范围在0-1之间,在z=0时为0.5,z无穷小g(z)趋近0,z无穷大g(z)趋近1。

其公式为:

图像为:

同时g(z)的倒数有以下这个特性,即g(z)的倒数刚好等于 g(z)(1-g(z)):

假设 hθ(x) 的公式为:

1.2 threshold function

logistic函数是曲线,如果想更加明确地将输出分为0、1两类,就要用到阶梯函数/临界函 (threshold function)。很简单直白的定义:

如果使用threshold函数替换logistic函数,则算法称为感知学习算法(Perceptron learning algorithm)

2.策略

下面根据逻辑回归模型,调整 θ 对其进行拟合。首先进行以下假设:

两个式子可以改写成一个式子:

逻辑回归使用的策略是最大化对数似然函数。似然函数 likelihood function 与对数似然函数分别为:

注:似然函数,就是计算整个训练集中每组 x,y 成立的可能性,即将每一组 x(i),y(i) 发生的概率相乘。

求对数是为了计算方便

3.算法

逻辑回归的目的是使可能性最大,即 maximizing 最大化似然函数的值。(线性回归是为了使代价最小,即minimizing代价函数的值,求最低点)

3.1 gradient ascent 梯度上升

先假设只有一个训练样本,对函数 l(θ) 求偏导可得:

如果有多个样本,同样需要使用梯度算法。但和线性回归有一个区别:为了使函数最大化,要将之前更新算法中的 “-“ 改为“+“,“下降“改为“上升“。

将上面单个训练样本J(θ)的导数进行向量化得到 随机梯度上升算法 的更新原则(随机没有求和,批量有求和):

这和上一讲中的最小二乘法更新规则的表达式一样,但是其中 hθ(x) 却不同。最小二乘法中的 hθ(x) 是线性函数,而此表达式中的 hθ(x) 是sigmoid函数。

3.2 Newton’s method 牛顿方法

极值点就是导数为0的地方,所以最大化对数似然函数的另一个求法是求对数似然函数导数为0的点。

(1)考虑最简单情况:θ是一个实数,首先找到一个实数域上的方程 f,f(θ)=0。

从起始点θ0开始,找到f(θ0)处的切线,与坐标轴相交于θ1。再从求 f(θ1) 处的切线,与坐标轴相交于θ2。不断迭代,直到切线斜率为0。

如果将 θ0 和 θ1 两点之间的距离记为Δ,可以通过求Δ来判断下一个θ在哪。根据 tan() 的特性,有:

所以牛顿方法执行更新规则:

如果想要找到 θ 使得 l(θ) 最大,那么 θ 满足 l′(θ) = 0,可以将牛顿方法运用其中,将 l′(θ)替代上式中的 f(θ),得到:

注:如果想要使用牛顿方法最小化而不是最大化一个函数,公式怎么改?答案是不改,因为最小和最大值处对应的导数都是0。
(2)考虑一般化情况,θ 是一个向量。则一般化的牛顿方法(也称作Newton-Raphson method) 为:

H表示黑塞矩阵(Hessian matrix),是二阶导数矩阵。

3.2 牛顿方法的优缺点

优点:牛顿方法比梯度上升算法减少了迭代次数,通常来说有更快的收敛速度,相对来说经过很少次迭代就能接近最小值。也称为二次收敛 quadratic conversions,即收敛速度几乎翻倍。

缺点:每次迭代都要重新计算 Hessian矩阵的逆,如果在大规模数据中涉及很多特征,将花费巨大计算代价并且变慢。

Google 是利用逻辑回归预测搜索广告的点击率。

https://blog.csdn.net/TRillionZxY1/article/details/77099955

斯坦福CS229机器学习课程笔记 part2:分类和逻辑回归 Classificatiion 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机器学习课程笔记 part3:广义线性模型 Greneralized Linear Models (GLMs)

    指数分布族 The exponential family 因为广义线性模型是围绕指数分布族的.大多数常用分布都属于指数分布族,服从指数分布族的条件是概率分布可以写成如下形式:η 被称作自然参数(nat ...

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

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

  4. 分类和逻辑回归(Classification and logistic regression)

    分类问题和线性回归问题问题很像,只是在分类问题中,我们预测的y值包含在一个小的离散数据集里.首先,认识一下二元分类(binary classification),在二元分类中,y的取值只能是0和1.例 ...

  5. 斯坦福CS229机器学习课程笔记 Part1:线性回归 Linear Regression

    机器学习三要素 机器学习的三要素为:模型.策略.算法. 模型:就是所要学习的条件概率分布或决策函数.线性回归模型 策略:按照什么样的准则学习或选择最优的模型.最小化均方误差,即所谓的 least-sq ...

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

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

  7. CS229笔记:分类与逻辑回归

    逻辑回归 对于一个二分类(binary classification)问题,\(y \in \left\{0, 1\right\}\),如果直接用线性回归去预测,结果显然是非常不准确的,所以我们采用一 ...

  8. 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 7 Regularization 正则化

    Lecture7 Regularization 正则化 7.1 过拟合问题 The Problem of Overfitting7.2 代价函数 Cost Function7.3 正则化线性回归  R ...

  9. CS229 机器学习课程复习材料-线性代数

    本文是斯坦福大学CS 229机器学习课程的基础材料,原始文件下载 原文作者:Zico Kolter,修改:Chuong Do, Tengyu Ma 翻译:黄海广 备注:请关注github的更新,线性代 ...

随机推荐

  1. L134

    这种成功和后来的研究(表明记忆本身并不是先天决定的)使爱立信总结到,记忆的行为与其说是一种习得的行为不如说是一种先天的行为. 这点我们不清楚-构思物体和找出数字模型的能力,回答问题(最好的诗人和哲学家 ...

  2. 使用Reaver破解开启了WPS功能的wifi密码(wpa/wpa2)

    来自wikipeida: Wi-Fi保护设置(简称WPS,全称Wi-Fi Protected Setup)是一个无线网络安全标准,旨在让家庭用户使用无线网络时简化加密步骤.此标准由Wi-Fi联盟(Wi ...

  3. php服务端setcookie()原理

    1.什么是 Cookie? cookie 常用于识别用户.cookie 是服务器留在用户计算机中的小文件.每当相同的计算机通过浏览器请求页面时,它同时会发送 cookie.通过 PHP,您能够创建并取 ...

  4. 机器学习(八)—Apriori算法

    摘要:本文对Apriori算法进行了简单介绍,并通过Python进行实现,进而结合UCI数据库中的肋形蘑菇数据集对算法进行验证. “啤酒与尿布”的例子相信很多人都听说过吧,故事是这样的:在一家超市中, ...

  5. 【MFC】CDC::BitBlt介绍

    CDC::BitBlt介绍 2011-11-04 08:25 19576人阅读 评论(6) 收藏 举报 摘自: http://blog.csdn.net/bberdong/article/detail ...

  6. BZOJ - 2957 (分块/线段树)

    题目链接 本质是维护斜率递增序列. 用分块的方法就是把序列分成sqrt(n)块,每个块分别用一个vector维护递增序列.查询的时候遍历所有的块,同时维护当前最大斜率,二分找到每个块中比当前最大斜率大 ...

  7. MySql必知必会实战练习(六)游标

    游标主要用于交互式应用,滚动屏幕上的数据,并对数据进行浏览或做出更改 看一下下面的例子: drop procedure IF EXISTS processorders; create procedur ...

  8. Thinking in Java 4th(Java编程思想第四版)文档、源码、习题答案

    Thinking in Java 4th 中.英文两版pdf文档,书中源码及课后习题答案.链接:https://pan.baidu.com/s/1BKJdtgJ3s-_rN1OB4rpLTQ 密码:2 ...

  9. RESTful 服务示例

    WCF服务轻量级服务,可供JS调用 返回值格式:XML.Json 工程结构: 示例代码: using System; using System.Collections.Generic; using S ...

  10. Linux性能评测工具之一:gprof篇介绍

    转:http://blog.csdn.net/stanjiang2010/article/details/5655143 这些天自己试着对项目作一些压力测试和性能优化,也对用过的测试工具作一些总结,并 ...