文章转自【机器学习炼丹术】

线性回归解决的是回归问题,逻辑回归相当于是线性回归的基础上,来解决分类问题。

1 公式

线性回归(Linear Regression)是什么相比不用多说了。格式是这个样子的:

\(f_{w,b}(x)=\sum_i{w_ix_i}+b\)

而逻辑回归(Logistic Regression)的样子呢?

\(f_{w,b}(x)=\sigma(\sum_i{w_ix_i}+b)\)

要记住的第一句话:逻辑回归可以理解为在线性回归后加了一个sigmoid函数。将线性回归变成一个0~1输出的分类问题。

2 sigmoid

sigmoid函数就是:

\(\sigma(z)=\frac{1}{1+e^{-z}}\)

函数图像是:



线性回归得到大于0的输出,逻辑回归就会得到0.5~1的输出;

线性回归得到小于0的输出,逻辑回归就会得到0~0.5的输出;


这篇文章的重点,在于线性回归的参数估计使用的最小二乘法,而而逻辑回归使用的是似然估计的方法。(当然,两者都可以使用梯度下降的方法)。


3 似然估计逻辑回归参数

举个例子,现在我们有了一个训练数据集,是一个二分类问题:



上面的\(x^1\)是样本,下面的\(C_1\)是类别,总共有两个类别。

现在假设我们有一个逻辑回归的模型:

\(f_{w,b}(x)=\sigma(\sum_i{w_ix_i}+b)\)

那么\(f_{w,b}(x^1)\)的结果,就是一个0~1的数,我们可以设定好,假设这个数字就是是类别\(C_1\)的概率,反之,1减去这个数字,就是类别\(C_2\)的概率。

似然简单的理解,就是让我们上面的数据集出现的概率最大

我们来理解一下:

  1. \(x_1\)是\(C_1\)的概率是\(f_{w,b}(x^1)\);
  2. \(x_2\)是\(C_1\)的概率是\(f_{w,b}(x^2)\);
  3. \(x_3\)是\(C_2\)的概率是\(1-f_{w,b}(x^3)\);
  4. ……
  5. \(x_N\)是\(C_1\)的概率是\(f_{w,b}(x^N)\);

样本之间彼此独立,那么上面那个数据集的概率是什么?是每一个样本的乘积,这个就是似然Likelihood:

我们希望这个w,b的参数估计值,就是能获得最大化似然的那个参数。也就是:

加上负号之后,就可以变成最小化的问题。当然,加上一个log并不会影响整个的w,b的估计值。因为\(L(w,b)\)最大的时候,\(log(L(w,b))\)也是最大的,log是个单调递增的函数。所以可以得到下面的:

【注意:所有的log其实是以e为底数的自然对数】

log又可以把之前的乘积和,转换成加法。

\(log(L(w,b))=log(f(x^1))+log(f(x^2))+log(1-f(x^3))...\)

然后,为了更加简化这个算是,我们将\(C_1, C_2\)数值化,变成1和0,然后每一个样本的真实标签用\(y\)来表示,所以就可以得到:

\(log(L(w,b))=\sum_i^N{ylog(f(x^i))+(1-y)log(1-f(x^i))}\)

【有点像是二值交叉熵,然而其实就是二值交叉熵。。】

  • 当y=1,也就是类别是\(C_1\)的时候,这个是\(log(f(x^i))\)
  • 当y=0,也就是类别是\(C_2\)的时候,这个是\(1-log(f(x^i))\)

所以其实我们得到的损失函数是:

\(loss=-log(L(w,b))=-\sum_i^N{ylog(f(x^i))+(1-y)log(1-f(x^i))}\)

之前说了,要找到让这个loss最小的时候的w和b,那怎么找?

【无情万能的梯度下降】

所以计算\(\frac{\partial loss}{\partial w}\),然后乘上学习率就好了。这里就不继续推导了,有耐心的可以慢慢推导,反正肯定能推出来的。

这里放个结果把:

\(\frac{-\partial lnL(w,b)}{\partial w_i}=\sum_n^N{-(y^n-f_{w,b}(x^n))x_i^n}\)

  • 其中\(w_i\)为第i个要估计的参数,第i个特征;
  • \(x^n_i\)是第n个样本的第i个特征的值;
  • \(y^n\)是第n个样本的真实类别,0或者1。

【小白学AI】线性回归与逻辑回归(似然参数估计)的更多相关文章

  1. 【Coursera】线性回归和逻辑回归

    一.线性回归 1.批量梯度下降法 每次对参数进行一次迭代时,都要扫描一遍输入全集 算法可以收敛到局部最优值 当迭代多次之后,每次迭代参数的改变越小 2.随机梯度下降法 对于一个输入样本,对参数进行一次 ...

  2. Matlab实现线性回归和逻辑回归: Linear Regression & Logistic Regression

    原文:http://blog.csdn.net/abcjennifer/article/details/7732417 本文为Maching Learning 栏目补充内容,为上几章中所提到单参数线性 ...

  3. 【数据分析】线性回归与逻辑回归(R语言实现)

    文章来源:公众号-智能化IT系统. 回归模型有多种,一般在数据分析中用的比较常用的有线性回归和逻辑回归.其描述的是一组因变量和自变量之间的关系,通过特定的方程来模拟.这么做的目的也是为了预测,但有时也 ...

  4. Spark MLlib回归算法------线性回归、逻辑回归、SVM和ALS

    Spark MLlib回归算法------线性回归.逻辑回归.SVM和ALS 1.线性回归: (1)模型的建立: 回归正则化方法(Lasso,Ridge和ElasticNet)在高维和数据集变量之间多 ...

  5. 线性回归、逻辑回归(LR)

    线性回归 回归是一种极易理解的模型,就相当于y=f(x),表明自变量 x 和因变量 y 的关系.最常见问题有如 医生治病时的望.闻.问.切之后判定病人是否生了什么病,其中的望闻问切就是获得自变量x,即 ...

  6. Machine Learning 学习笔记 (1) —— 线性回归与逻辑回归

    本系列文章允许转载,转载请保留全文! [请先阅读][说明&总目录]http://www.cnblogs.com/tbcaaa8/p/4415055.html 1. 梯度下降法 (Gradien ...

  7. Coursera DeepLearning.ai Logistic Regression逻辑回归总结

    既<Machine Learning>课程后,Andrew Ng又推出了新一系列的课程<DeepLearning.ai>,注册了一下可以试听7天.之后每个月要$49,想想还是有 ...

  8. 机器学习_线性回归和逻辑回归_案例实战:Python实现逻辑回归与梯度下降策略_项目实战:使用逻辑回归判断信用卡欺诈检测

    线性回归: 注:为偏置项,这一项的x的值假设为[1,1,1,1,1....] 注:为使似然函数越大,则需要最小二乘法函数越小越好 线性回归中为什么选用平方和作为误差函数?假设模型结果与测量值 误差满足 ...

  9. 机器学习(三)—线性回归、逻辑回归、Softmax回归 的区别

    1.什么是回归?  是一种监督学习方式,用于预测输入变量和输出变量之间的关系,等价于函数拟合,选择一条函数曲线使其更好的拟合已知数据且更好的预测未知数据. 2.线性回归  于一个一般的线性模型而言,其 ...

  10. 机器学习之感知器和线性回归、逻辑回归以及SVM的相互对比

    线性回归是回归模型 感知器.逻辑回归以及SVM是分类模型 线性回归:f(x)=wx+b 感知器:f(x)=sign(wx+b)其中sign是个符号函数,若wx+b>=0取+1,若wx+b< ...

随机推荐

  1. web开发技术-过滤器

    纪录自己的学习过程,帮助记忆 1.简介 过滤器是服务器端的一个组件,可以接收用户端的请求和响应信息,并且对这些信息进行过滤 过滤器不处理结果,只做一些辅助性操作 2.过滤器的工作原理 3.过滤器的生命 ...

  2. UVA 393

    The Doors Description You are to find the length of the shortest path through a chamber containing o ...

  3. EF 自定义校验设置和捕获异常

    一.定义 public class MyItem: IValidatableObject { [Key] public long Id { get; set; } [Range(0, 100, Err ...

  4. Web自动化框架之五一套完整demo的点点滴滴(excel功能案例参数化+业务功能分层设计+mysql数据存储封装+截图+日志+测试报告+对接缺陷管理系统+自动编译部署环境+自动验证false、error案例)

    标题很大,想说的很多,不知道从那开始~~直接步入正题吧 个人也是由于公司的人员的现状和项目的特殊情况,今年年中后开始折腾web自动化这块:整这个原因很简单,就是想能让自己偷点懒.也让减轻一点同事的苦力 ...

  5. 突然兴起复习一下Swift3.0

    /// 参考Swift3.0.1文档 /// 摘录来自: Apple Inc. "The Swift Programming Language (Swift 3.0.1)". iB ...

  6. 201621123035 《Java程序设计》第1周学习总结

    1.本周学习总结 本周学习内容:Java平台概论.认识JDK规范与操作.了解JVM.JRE与JDK.撰写Java原始码.path是什么 关键词:JVM.JRE.JDK 联系:JVM是Java虚拟机的缩 ...

  7. PAT 1065 单身狗(25)(STL-map+思路+测试点分析)

    1065 单身狗(25 分) "单身狗"是中文对于单身人士的一种爱称.本题请你从上万人的大型派对中找出落单的客人,以便给予特殊关爱. 输入格式: 输入第一行给出一个正整数 N(≤  ...

  8. 选择语句=》OO函数实现

    let a; let b; if (a==="A") { b='定向' }else if (a==='B') { b='开放' }else if(a==='C') { b='全部' ...

  9. 基于epoll封装的事件回调miniserver

    epoll技术前两节已经阐述过了,目前主要做一下封装,很多epoll的服务器都是采用事件回调方式处理, 其实并没有什么复杂的,我慢慢给大家阐述下原理. 在networking.h和networking ...

  10. ruby -- 修改rubymine的字体大小

     rubymine编辑器默认的字体特别小,如何修改rubymine当中的字体大小?  首先,进入 setting\ide setting\editor\colors&fonts\font    ...