机器学习入门11 - 逻辑回归 (Logistic Regression)
原文链接:https://developers.google.com/machine-learning/crash-course/logistic-regression/
逻辑回归会生成一个介于 0 到 1 之间(不包括 0 和 1)的概率值,而不是确切地预测结果是 0 还是 1。
1- 计算概率
许多问题需要将概率估算值作为输出。
逻辑回归是一种极其高效的概率计算机制,返回的是概率(输出值始终落在 0 和 1 之间)。
可以通过如下两种方式使用返回的概率:
- “按原样”:“原样”使用返回的概率(例如,用户点击此广告的概率为 0.00023)。
- “转换成二元类别”:将返回的概率转换成二元值(例如,这封电子邮件是垃圾邮件)。
S型函数
S型函数会生成一个介于 0 和 1 之间的值。
定义:
$y = \frac{1}{1 + e^{-z}}$
曲线图:
可以看出,S型函数的生成值恰好符合“逻辑回归返回的输出值范围”。
将S型函数应用在机器学习中,用数学方法表示为:
$y' = \frac{1}{1 + e^{-(z)}}$
其中:
- y' 是逻辑回归模型针对特定样本的输出。
- z 表示使用逻辑回归训练的模型的线性层的输出,是 b + w1x1 + w2x2 + … wNxN
- w 的值是该模型学习的权重,b 是偏差。
- x 的值是特定样本的特征值。
此时,具有机器学习标签的 S 型函数的曲线图:

注意:z 也称为对数几率,因为 S 型函数的反函数表明,z 可定义为标签“1”的概率除以标签“0”的概率得出的值的对数: $z = log(\frac{y}{1-y})$
2- 模型训练
逻辑回归的损失函数
线性回归的损失函数是平方损失。逻辑回归的损失函数是对数损失函数,定义如下:
$Log Loss = \sum_{(x,y)\in D} -ylog(y') - (1 - y)log(1 - y')$
其中:
- (xy)ϵD 是包含很多有标签样本 (x,y) 的数据集。
- “y”是有标签样本中的标签。由于这是逻辑回归,因此“y”的每个值必须是 0 或 1。
- “y'”是对于特征集“x”的预测值(介于 0 和 1 之间)。
逻辑回归中的正则化
正则化在逻辑回归建模中极其重要。
如果没有正则化,逻辑回归的渐近性会不断促使损失在高维度空间内达到 0。
因此,大多数逻辑回归模型会使用以下两个策略之一来降低模型复杂性:
- L2 正则化。
- 早停法,即,限制训练步数或学习速率。
假设向每个样本分配一个唯一 ID,且将每个 ID 映射到其自己的特征。
如果未指定正则化函数,模型会变得完全过拟合。
这是因为模型会尝试促使所有样本的损失达到 0 但始终达不到,从而使每个指示器特征的权重接近正无穷或负无穷。
当有大量罕见的特征组合且每个样本中仅一个时,包含特征组合的高维度数据会出现这种情况。
3- 总结
- 逻辑回归模型会生成概率。
- 对数损失函数是逻辑回归的损失函数。
- 逻辑回归被很多从业者广泛使用。
4- 关键词
二元分类 (binary classification)
一种分类任务,可输出两种互斥类别之一。
例如,对电子邮件进行评估并输出“垃圾邮件”或“非垃圾邮件”的机器学习模型就是一个二元分类器。
逻辑回归 (logistic regression)
一种模型,通过将 S 型函数应用于线性预测,生成分类问题中每个可能的离散标签值的概率。
虽然逻辑回归经常用于二元分类问题,但也可用于多类别分类问题(其叫法变为多类别逻辑回归或多项回归)。
S 型函数 (sigmoid function)
一种函数,可将逻辑回归输出或多项回归输出(对数几率)映射到概率,以返回介于 0 到 1 之间的值。
S 型函数的公式如下:
$y = \frac{1}{1 + e^{-\sigma}}$
在逻辑回归问题中, $\sigma$非常简单:
$\sigma = b + w_1x_1 + w_2x_2 + … w_nx_n$
换句话说,S 型函数可将 转换为介于 0 到 1 之间的概率。
在某些神经网络中,S 型函数可作为激活函数使用。
早停法 (early stopping)
一种正则化方法,是指在训练损失仍可以继续降低之前结束模型训练。
使用早停法时,您会在验证数据集的损失开始增大(也就是泛化效果变差)时结束模型训练。
对数损失函数 (Log Loss)
二元逻辑回归中使用的损失函数。
L1 正则化 (L₁ regularization)
一种正则化,根据权重的绝对值的总和来惩罚权重。
在依赖稀疏特征的模型中,L1 正则化有助于使不相关或几乎不相关的特征的权重正好为 0,从而将这些特征从模型中移除。
与 L2 正则化相对。
L2 正则化 (L₂ regularization)
一种正则化,根据权重的平方和来惩罚权重。
L2 正则化有助于使离群值(具有较大正值或较小负值)权重接近于 0,但又不正好为 0。
(与 L1 正则化相对。)在线性模型中,L2 正则化始终可以改进泛化。
机器学习入门11 - 逻辑回归 (Logistic Regression)的更多相关文章
- 机器学习总结之逻辑回归Logistic Regression
机器学习总结之逻辑回归Logistic Regression 逻辑回归logistic regression,虽然名字是回归,但是实际上它是处理分类问题的算法.简单的说回归问题和分类问题如下: 回归问 ...
- Coursera公开课笔记: 斯坦福大学机器学习第六课“逻辑回归(Logistic Regression)” 清晰讲解logistic-good!!!!!!
原文:http://52opencourse.com/125/coursera%E5%85%AC%E5%BC%80%E8%AF%BE%E7%AC%94%E8%AE%B0-%E6%96%AF%E5%9D ...
- 机器学习 (三) 逻辑回归 Logistic Regression
文章内容均来自斯坦福大学的Andrew Ng教授讲解的Machine Learning课程,本文是针对该课程的个人学习笔记,如有疏漏,请以原课程所讲述内容为准.感谢博主Rachel Zhang 的个人 ...
- 机器学习(四)--------逻辑回归(Logistic Regression)
逻辑回归(Logistic Regression) 线性回归用来预测,逻辑回归用来分类. 线性回归是拟合函数,逻辑回归是预测函数 逻辑回归就是分类. 分类问题用线性方程是不行的 线性方程拟合的是连 ...
- 机器学习方法(五):逻辑回归Logistic Regression,Softmax Regression
欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 技术交流QQ群:433250724,欢迎对算法.技术.应用感兴趣的同学加入. 前面介绍过线性回归的基本知识, ...
- 逻辑回归(Logistic Regression)详解,公式推导及代码实现
逻辑回归(Logistic Regression) 什么是逻辑回归: 逻辑回归(Logistic Regression)是一种基于概率的模式识别算法,虽然名字中带"回归",但实际上 ...
- ML 逻辑回归 Logistic Regression
逻辑回归 Logistic Regression 1 分类 Classification 首先我们来看看使用线性回归来解决分类会出现的问题.下图中,我们加入了一个训练集,产生的新的假设函数使得我们进行 ...
- 【机器学习】Octave 实现逻辑回归 Logistic Regression
ex2data1.txt ex2data2.txt 本次算法的背景是,假如你是一个大学的管理者,你需要根据学生之前的成绩(两门科目)来预测该学生是否能进入该大学. 根据题意,我们不难分辨出这是一种二分 ...
- [笔记]机器学习(Machine Learning) - 02.逻辑回归(Logistic Regression)
逻辑回归算法是分类算法,虽然这个算法的名字中出现了"回归",但逻辑回归算法实际上是一种分类算法,我们将它作为分类算法使用.. 分类问题:对于每个样本,判断它属于N个类中的那个类或哪 ...
随机推荐
- NumPy学习_01 ndarray相关概念
1.NumPy库 NumPy = Numerical Python 是高性能科学计算和数据分析的基础库. pandas库充分借鉴了NumPy的相关概念,先行掌握NumPy库的用法,才能把pandas的 ...
- [转]JSOUP 抓取HTTPS/HTTP网页,校验问题
针对一般的http请求是不需要的校验的.但是https安全校验过总过不去.最后找到以下方法,终于成功. 让我们的站点信任所有站点,不需要引包,系统自带ssl证书校验,话不多数,贴代码. /** * 信 ...
- VB中将类标记为可序列化
引用名空间: Imports SystemImports System.Runtime.Serialization 在类前加特性: <Serializable> 更多内容: https:/ ...
- Java 字符编码(一)Unicode 字符编码
Java 字符编码(一)Unicode 字符编码 Unicode(http://www.unicode.org/versions/#TUS_Latest_Version) 是一个编码方案,说白了希望给 ...
- java学习(二)
学号 20189214 <Java程序设计>第二周学习总结 教材学习内容总结 java类 创建java对象需要类似的模板,即类(class) java对象也拥有属性和能够执行的动作. 属性 ...
- Finance财务软件(科目标签专题)
为了满足不同业务需求,对凭证中增加一些扩展内容,我们采用自定义科目标签的形式. 怎样自定义标签? 1. 增加科目掩码 这里的代码需要与模板表中tagLabel对应 这里的名称中对应掩码值,为16位整型 ...
- 面向对象(特殊成员 组合 self)
- 项目管理 - PM、 SRS、SOW简介及范例
PM在一个IT项目中的主要管理任务 http://blog.csdn.net/eaglezhang/article/details/1717171 计算机软件需求说明编制指南 http://blog. ...
- 基于百词斩和扇贝单词的背单词APP软件测试
概述 背单词APP是非常受大学生青睐的手机应用,但它的发展尚未成熟,存在一些缺陷.我们决定深入地分析一组典型的背单词APP:百词斩(A产品).扇贝单词(B产品),寻找当前背单词APP中的提升空间.下面 ...
- Meanshift均值漂移算法
通俗理解Meanshift均值漂移算法 Meanshift车手?? 漂移?? 秋名山??? 不,不,他是一组算法, 今天我就带大家来了解一下机器学习中的Meanshift均值漂移. Mea ...