此文章为初学机器学习时,对Andrew NG《机器学习》课程整理所写,也参考了其他CSDN同学的笔记,写的较为粗糙,很多网友帮助我指正了问题,现在重新更新向量化部分,并加入实践篇。


什么是逻辑回归?

Logistic回归与多重线性回归实际上有很多相同之处,最大的区别就在于它们的因变量不同,其他的基本都差不多。正是因为如此,这两种回归可以归于同一个家族,即广义线性模型(generalizedlinear model)。

这一家族中的模型形式基本上都差不多,不同的就是因变量不同。

  • 如果是连续的,就是多重线性回归;
  • 如果是二项分布,就是Logistic回归;
  • 如果是Poisson分布,就是Poisson回归;
  • 如果是负二项分布,就是负二项回归。

Logistic回归的因变量可以是二分类的,也可以是多分类的,但是二分类的更为常用,也更加容易解释。所以实际中最常用的就是二分类的Logistic回归。

Logistic回归的主要用途:

  • 寻找危险因素:寻找某一疾病的危险因素等;
  • 预测:根据模型,预测在不同的自变量情况下,发生某病或某种情况的概率有多大;
  • 判别:实际上跟预测有些类似,也是根据模型,判断某人属于某病或属于某种情况的概率有多大,也就是看一下这个人有多大的可能性是属于某病。

Logistic回归主要在流行病学中应用较多,比较常用的情形是探索某疾病的危险因素,根据危险因素预测某疾病发生的概率,等等。例如,想探讨胃癌发生的危险因素,可以选择两组人群,一组是胃癌组,一组是非胃癌组,两组人群肯定有不同的体征和生活方式等。这里的因变量就是是否胃癌,即“是”或“否”,自变量就可以包括很多了,例如年龄、性别、饮食习惯、幽门螺杆菌感染等。自变量既可以是连续的,也可以是分类的。

常规步骤

Regression问题的常规步骤为:

  1. 寻找h函数(即hypothesis);
  2. 构造J函数(损失函数);
  3. 想办法使得J函数最小并求得回归参数(θ)

构造预测函数h

Logistic回归虽然名字里带“回归”,但是它实际上是一种分类方法,主要用于两分类问题(即输出只有两种,分别代表两个类别),所以利用了Logistic函数(或称为Sigmoid函数),函数形式为:

Sigmoid 函数在有个很漂亮的“S”形,如下图所示(引自维基百科):

下面左图是一个线性的决策边界,右图是非线性的决策边界。

对于线性边界的情况,边界形式如下:

构造预测函数为:

函数的值有特殊的含义,它表示结果取1的概率,因此对于输入x分类结果为类别1和类别0的概率分别为:

构造损失函数J

Cost函数和J函数如下,它们是基于最大似然估计推导得到的。

下面详细说明推导的过程:

(1)式综合起来可以写成:

取似然函数为:

对数似然函数为:

最大似然估计就是求使取最大值时的θ,其实这里可以使用梯度上升法求解,求得的θ就是要求的最佳参数。但是,在Andrew Ng的课程中将取为下式,即:

因为乘了一个负的系数-1/m,所以取最小值时的θ为要求的最佳参数。

梯度下降法求的最小值

θ更新过程:

θ更新过程可以写成:

向量化Vectorization

Vectorization是使用矩阵计算来代替for循环,以简化计算过程,提高效率。

如上式,Σ(...)是一个求和的过程,显然需要一个for语句循环m次,所以根本没有完全的实现vectorization。

下面介绍向量化的过程:

假设模型:

公式为:

将上述公式向量化:

其中 ,由于(h-y)维度是m*1,X也是m*1,所以需对X转置。

具体推导过程请参考:Vectorized Logistic Regression

正则化Regularization

过拟合问题

对于线性回归或逻辑回归的损失函数构成的模型,可能会有些权重很大,有些权重很小,导致过拟合(就是过分拟合了训练数据),使得模型的复杂度提高,泛化能力较差(对未知数据的预测能力)。

下面左图即为欠拟合,中图为合适的拟合,右图为过拟合。

问题的主因

过拟合问题往往源自过多的特征。

解决方法

1)减少特征数量(减少特征会失去一些信息,即使特征选的很好)

  • 可用人工选择要保留的特征;
  • 模型选择算法;

2)正则化(特征较多时比较有效)

  • 保留所有特征,但减少θ的大小

正则化方法

正则化是结构风险最小化策略的实现,是在经验风险上加一个正则化项或惩罚项。正则化项一般是模型复杂度的单调递增函数,模型越复杂,正则化项就越大。

从房价预测问题开始,这次采用的是多项式回归。左图是适当拟合,右图是过拟合。

直观来看,如果我们想解决这个例子中的过拟合问题,最好能将的影响消除,也就是让。假设我们对进行惩罚,并且令其很小,一个简单的办法就是给原有的Cost函数加上两个略大惩罚项,例如:

这样在最小化Cost函数的时候,

正则项可以取不同的形式,在回归问题中取平方损失,就是参数的L2范数,也可以取L1范数。取平方损失时,模型的损失函数变为:

lambda是正则项系数:

  • 如果它的值很大,说明对模型的复杂度惩罚大,对拟合数据的损失惩罚小,这样它就不会过分拟合数据,在训练数据上的偏差较大,在未知数据上的方差较小,但是可能出现欠拟合的现象;
  • 如果它的值很小,说明比较注重对训练数据的拟合,在训练数据上的偏差会小,但是可能会导致过拟合。

正则化后的梯度下降算法θ的更新变为:

正则化后的线性回归的Normal Equation的公式为:

其他优化算法

  • Conjugate gradient method(共轭梯度法)
  • Quasi-Newton method(拟牛顿法)
  • BFGS method
  • L-BFGS(Limited-memory BFGS)

后二者由拟牛顿法引申出来,与梯度下降算法相比,这些算法的优点是:

  • 第一,不需要手动的选择步长;
  • 第二,通常比梯度下降算法快;

但是缺点是更复杂。

多类分类问题

对于多类分类问题,可以将其看做成二类分类问题:保留其中的一类,剩下的作为另一类。

对于每一个类 i 训练一个逻辑回归模型的分类器,并且预测y = i时的概率;对于一个新的输入变量x, 分别对每一个类进行预测,取概率最大的那个类作为分类结果:

参考链接

 http://blog.csdn.net/dongtingzhizi/article/details/15962797

Coursera公开课笔记: 斯坦福大学机器学习第六课“逻辑回归(Logistic Regression)”

Coursera公开课笔记: 斯坦福大学机器学习第七课“正则化(Regularization)” 

Vectorized Logistic Regression

逻辑回归 - 理论篇相关推荐

  1. 吴恩达机器学习之逻辑回归理论部分

    一.特征函数 对应分类问题,我们先针对二分类问题进行讨论,对应计算机而言,分类即将数据按其特征值不同分为不同的集合,仅对应二分类问题,我们只需考虑分为:正类和负类,为此我们引入特征函数. y=1 - ...

  2. 逻辑回归--理论与python实例

    一.逻辑回归介绍 逻辑回归又称logistic回归分析,是一种广义的线性回归分析模型,常用于数据挖掘,疾病自动诊断,经济预测等领域.以胃癌病情分析为例,选择两组人群,一组是胃癌组,一组是非胃癌组,两组 ...

  3. 机器学习算法(四)逻辑回归理论与python实现+经典示例(从疝气病预测病马的死亡率)

    学习笔记更新 什么是逻辑回归? 简要介绍     逻辑回归是用来解决线性回归问题的,它将线性回归得到的结果通过逻辑函数映射到[0,1]之间,因此称逻辑回归.逻辑回归模型主要用于解决二分类问题,是一个分 ...

  4. 机器学习第7天:深入了解逻辑回归

    文章目录 一.逻辑回归是什么 二.逻辑回归的代价函数 1. 公式: 2. 公式推导过程: 2.1. 寻找预测函数 2.2. 构造代价函数 三.梯度下降法求J(θ)的最小值 四.代码展示 一.逻辑回归是 ...

  5. sklearn逻辑回归参数设置_【机器学习笔记】:逻辑回归实战练习(二)

    作者:xiaoyu 微信公众号:Python数据科学 知乎:python数据分析师 前言 前几篇介绍了逻辑回归在机器学习中的重要性:5个原因告诉你:为什么在成为数据科学家之前,"逻辑回归&q ...

  6. Python基于逻辑回归的糖尿病视网膜病变检测(数据集messidor_features.arff)

    一. 引言 本项目基于逻辑回归理论,运用Python语言对数据集messidor_features.arff进行分析,实现对糖尿病视网膜病变的检测.糖尿病视网膜病变(DR)是糖尿病最常见的微血管并发症 ...

  7. 逻辑回归(Logistic Regression)原理(理论篇)

    目录 一.逻辑回归简介及应用 二.逻辑回归的原理 (1)sigmoid函数 (2)输入和输出形式 (3)基于目标函数求解参数w 三.逻辑回归代码复现 一.逻辑回归简介及应用 logistic回归又称l ...

  8. 入门篇(二)模型:逻辑回归(一步步从原理到实现)

    <老饼讲解机器学习>专注于机器学习的学习网站http://ml.bbbdata.com/teach#187 目录 一.问题 二.逻辑回归的思想 三.模型表达式 四.损失函数 (一) 单个 ...

  9. 机器学习-算法背后的理论与优化(part1)--从线性回归到逻辑回归

    学习笔记,仅供参考,有错必纠 参考自:机器学习-算法背后的理论和优化: 从线性回归到逻辑回归 线性回归估算的是一个连续变量的条件期望: E ( y ∣ x ) = w T x (1) E(y|x)=w ...

最新文章

  1. angularJs在线API文档
  2. Docker学习之路 用commit命令创建镜像
  3. 一文盘点数据行业的动态演变
  4. 光线追踪技术的理论和实践(面向对象)
  5. oracle创建表空间及用户,Oracle创建表空间和用户
  6. 湖大计算机考研分数线,湖南大学2017年考研分数线已公布
  7. VB常用内部函数大全一览表(建议收藏)
  8. amd显卡风扇调节_为什么NVIDIA和AMD公版显卡纷纷摒弃涡轮散热器而采用多风扇散热设计?...
  9. vue 利用axios请求接口下载excel
  10. ftp一句話download
  11. 453.最小移动次数使数组元素相等
  12. VC9、VC11、VC14、VC15是啥?
  13. 关闭 kali 警报音
  14. 浅析javaIO的原理过程
  15. 浪潮信息服务器哪个好,华为服务器和浪潮服务器哪个好?
  16. 5.android系统裁剪
  17. 树莓派3b+ ubuntu-mate18.04系统安装 迅雷远程下载 搭建详解
  18. 数据库日常运维操作手册
  19. nodejs负载均衡(一):服务负载均衡
  20. ASP.NET开发框架之ABP

热门文章

  1. OSPF基础工作过程
  2. 阿里云的mysql问题
  3. yard码 / meter英里 / kilometer 千米/Knots 海里 换算
  4. 双减之后,体育培训升温,如何为孩子选择合适的体育项目?
  5. 华为智慧搜索 v9.1.2.300
  6. python turtle画房子代码里面的窗子,如何用python画房子_用python画一个小房子
  7. warning: function returns address of local variable(函数参数返回错误)
  8. sim卡无线上网公用服务器,云SIM卡池,云SIM卡解决方案,流量分发随身WIFI方案( 忻瑞科技)...
  9. 如何用svg画一个骚气的名字
  10. 周鸿祎:互联网成功十大案例