什么是逻辑回归?

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,所以取最小值时的θ为要求的最佳参数。

 

梯度下降法求的最小值

θ更新过程:

θ更新过程可以写成:

  

 

正则化Regularization

过拟合问题

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

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

问题的主因

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

解决方法

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

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

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

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

3)减少样本(样本太多了,可以适当减少样本,当然要随机进行)

4)减少迭代次数,有时候迭代次数过多,会导致过度拟合(一个是拟合了更多的数据,一个是权值迭代次过多)

5)交叉验证,在训练数据集或验证集上做验证,可以调节迭代次数,从而预防过拟合或欠拟合

正则化方法

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

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

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

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

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

lambda是正则项系数:

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

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

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

参考文献:http://52opencourse.com/133/coursera

转载于:https://www.cnblogs.com/hitwhhw09/p/4630494.html

回归分析中的正则化问题相关推荐

  1. 彻底搞懂机器学习中的正则化

    正则化在机器学习当中是十分常见的,本次就来比较完整地总结一下~ 首先列一下本篇文章所包含的内容目录,方便各位查找: LP范数 L1范数 L2范数 L1范数和L2范数的区别 Dropout Batch ...

  2. 学习笔记:深度学习中的正则化

    点击上方"视学算法",星标公众号 重磅干货,第一时间送达 作者:草yang年华 一.正则化介绍 问题:为什么要正则化? NFL(没有免费的午餐)定理: 没有一种ML算法总是比别的好 ...

  3. R语言使用car包的influencePlot函数将回归分析中的离群点(outlier)、杠杆(leverage)和影响(influence)的信息组合成一个高度信息量丰富的合成图

    R语言使用car包的influencePlot函数将回归分析中的离群点(outlier).杠杆(leverage)和影响(influence)的信息组合成一个高度信息量丰富的合成图 目录

  4. 一文读懂机器学习中的正则化

    来源:Poll的笔记 本文约2600字,建议阅读5分钟 还在被正则化困扰?本文为你答疑解惑! 目录 LP范数 L1范数 L2范数 L1范数和L2范数的区别 Dropout Batch Normaliz ...

  5. 深度学习中的正则化技术(附Python代码)

    作者:SHUBHAM JAIN 翻译:和中华 校对:丁楠雅 本文约3500字,建议阅读20分钟. 本文简单介绍了什么是正则化以及在深度学习任务中可以采用哪些正则化技术,并以keras代码具体讲解了一个 ...

  6. spss回归分析_回归分析中的简单斜率检验:用SPSS或jamovi实现

    哈哈,不简单的"简单效应",How old are you? 之前的两篇文章,我们已经深入探讨了如何用SPSS做方差分析中的简单效应检验,并且最终得到结论:要用GLM语句,不需要再 ...

  7. 回归分析中自变量共线性_具有大特征空间的回归分析中的变量选择

    回归分析中自变量共线性 介绍 (Introduction) Performing multiple regression analysis from a large set of independen ...

  8. 收藏 | 一文读懂机器学习中的正则化

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:作者丨Poll的笔记 来源丨数据派THU 编辑丨极市平台 A ...

  9. 收藏 | 彻底搞懂机器学习中的正则化

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:http://www.cnblogs.com/maybe20 ...

最新文章

  1. 数据结构与算法(2-1)线性表之顺序存储(顺序表)
  2. 实现大规模图计算的算法思路
  3. Android的开机流程及对应源码位置分析
  4. hibernate教程--二级缓存详解
  5. 【NLP】darmatch: 一个非常高效的多模式字符串匹配工具
  6. Android之定时器实现的几种方式和removeCallbacks失效问题详解
  7. 校验输入框的内容不能重复_答应我,用了这个jupyter插件,别再重复造轮子了
  8. 计算机不能进入桌面,电脑开机无法进入桌面,请高手解决。
  9. win7分区软件_小编给你传授 win7系统给硬盘分区的修复方案 -win7系统使用教程...
  10. ES11新特性_BigInt---JavaScript_ECMAScript_ES6-ES11新特性工作笔记066
  11. C#通过字符串分割字符串Split
  12. 数据结构上机实践第二周项目2- 程序的多文件组织
  13. Unity3D:HTTP请求模块
  14. 推荐一款自己开发的剪映字幕翻译工具
  15. 微信公众平台开发网页开发
  16. 苹果UDID泄露续:为什么UDID泄露会引起这么大反响?
  17. 转:有关Forth语言
  18. Javascript技巧之对话窗口
  19. MFC中关于char[]转换成LPCWSTR的问题
  20. Java多线程-线程的创建(Thread类的基本使用)

热门文章

  1. poj 1905 Expanding Rods(二分)
  2. Tech.Ed 2008
  3. 单独获取ShopEx商品类型中的扩展参数,如配货时间
  4. Centos7 更新gcc版本
  5. BZOJ1010 [HNOI2008]玩具装箱toy 动态规划 斜率优化
  6. Eclipse不给提示no default proposals
  7. 《光棍节程序员闯关秀》闯关攻略
  8. 非平坦结构元matlab,基于MATLAB的巴特沃思型数字滤波器设计.doc
  9. echarts y轴数据过长处理
  10. springboot+sockjs进行消息推送(一对一模式)