logistic回归详解(二):损失函数(cost function)详解
项目github地址:bitcarmanlee easy-algorithm-interview-and-practice
欢迎大家star,留言,一起学习进步
有监督学习
机器学习分为有监督学习,无监督学习,半监督学习,强化学习。对于逻辑回归来说,就是一种典型的有监督学习。
既然是有监督学习,训练集自然可以用如下方式表述:
{(x1,y1),(x2,y2),⋯,(xm,ym)}\{(x^1,y^1),(x^2,y^2),\cdots,(x^m,y^m)\}{(x1,y1),(x2,y2),⋯,(xm,ym)}
对于这m个训练样本,每个样本本身有n维特征。再加上一个偏置项x0x_0x0, 则每个样本包含n+1维特征:
x=[x0,x1,x2,⋯,xn]Tx = [x_0,x_1,x_2,\cdots,x_n]^Tx=[x0,x1,x2,⋯,xn]T
其中 x∈Rn+1x\in R^{n+1}x∈Rn+1, x0=1x_0=1x0=1, y∈{0,1}y\in\{0,1\}y∈{0,1}
李航博士在统计学习方法一书中给分类问题做了如下定义:
分类是监督学习的一个核心问题,在监督学习中,当输出变量Y取有限个离散值时,预测问题便成为分类问题。这时,输入变量X可以是离散的,也可以是连续的。监督学习从数据中学习一个分类模型或分类决策函数,称为分类器(classifier)。分类器对新的输入进行输出的预测(prediction),称为分类(classification).
在logistic回归详解一(http://blog.csdn.net/bitcarmanlee/article/details/51154481)中,我们花了一整篇篇幅阐述了为什么要使用logistic函数: hθ(x)=g(θTx)=11+e−θTxh_{\theta}(x) = g(\theta^{T}x) = \frac{1}{1+e^{-\theta^{T}x}}hθ(x)=g(θTx)=1+e−θTx1
其中一个重要的原因,就是要将Hypothesis(NG课程里的说法)的输出映射到0与1之间,既:
0≤hθ(x)≤10\le h_{\theta}(x)\le 10≤hθ(x)≤1
同样是李航博士统计学习方法一书中,有以下描述:
统计学习方法都是由模型,策略,和算法构成的,即统计学习方法由三要素构成,可以简单表示为:
方法=模型+策略+算法方法 = 模型 + 策略 + 算法方法=模型+策略+算法
对于logistic回归来说,模型自然就是logistic回归,策略最常用的方法是用一个损失函数(loss function)或代价函数(cost function)来度量预测错误程度,算法则是求解过程,后期会详细描述相关的优化算法。
logistic函数求导
KaTeX parse error: No such environment: align at position 7: \begin{̲a̲l̲i̲g̲n̲}̲ g'(z) & = \fra…
此求导公式在后续推导中会使用到
常见的损失函数
机器学习或者统计机器学习常见的损失函数如下:
1.0-1损失函数 (0-1 loss function)
L(Y,f(X))={1,Y ≠f(X)0,Y = f(X)L(Y,f(X))= \begin{cases} 1 , & \text {Y $\neq$ f(X)} \\ 0, & \text{Y = f(X)} \end{cases} L(Y,f(X))={1,0,Y = f(X)Y = f(X)
2.平方损失函数(quadratic loss function)
L(Y,f(X))=(Y−f(x))2L(Y,f(X)) = (Y - f(x))^2L(Y,f(X))=(Y−f(x))2
3.绝对值损失函数(absolute loss function)
L(Y,f(x))=∣Y−f(X)∣L(Y,f(x)) = |Y - f(X)|L(Y,f(x))=∣Y−f(X)∣
4.对数损失函数(logarithmic loss function) 或对数似然损失函数(log-likehood loss function)
L(Y,P(Y∣X))=−logP(Y∣X)L(Y,P(Y|X)) = -logP(Y|X)L(Y,P(Y∣X))=−logP(Y∣X)
逻辑回归中,采用的则是对数损失函数。如果损失函数越小,表示模型越好。
说说对数损失函数与平方损失函数
在逻辑回归的推导中国,我们假设样本是服从伯努利分布(0-1分布)的,然后求得满足该分布的似然函数,最终求该似然函数的极大值。整体的思想就是求极大似然函数的思想。而取对数,只是为了方便我们的在求MLE(Maximum Likelihood Estimation)过程中采取的一种数学手段而已。
损失函数详解
根据上面的内容,我们可以得到逻辑回归的对数似然损失函数cost function:
cost(hθ(x),y)={−log(hθ(x))if y=1−log(1−hθ(x))if y=0cost(h_{\theta}(x),y) = \begin{cases} -log(h_{\theta}(x)) & \text {if y=1} \\ -log(1-h_{\theta}(x)) & \text{if y=0} \end{cases} cost(hθ(x),y)={−log(hθ(x))−log(1−hθ(x))if y=1if y=0
稍微解释下这个损失函数,或者说解释下对数似然损失函数:
当y=1时,假定这个样本为正类。如果此时hθ(x)=1h_\theta(x)=1hθ(x)=1,则单对这个样本而言的cost=0,表示这个样本的预测完全准确。那如果所有样本都预测准确,总的cost=0
但是如果此时预测的概率hθ(x)=0h_\theta(x)=0hθ(x)=0,那么cost→∞cost\to\inftycost→∞。直观解释的话,由于此时样本为一个正样本,但是预测的结果P(y=1∣x;θ)=0P(y=1|x;\theta) = 0P(y=1∣x;θ)=0, 也就是说预测 y=1的概率为0,那么此时就要对损失函数加一个很大的惩罚项。
当y=0时,推理过程跟上述完全一致,不再累赘。
将以上两个表达式合并为一个,则单个样本的损失函数可以描述为:
cost(hθ(x),y)=−yilog(hθ(x))−(1−yi)log(1−hθ(x))cost(h_{\theta}(x),y) = -y_ilog(h_{\theta}(x)) - (1-y_i)log(1-h_{\theta}(x))cost(hθ(x),y)=−yilog(hθ(x))−(1−yi)log(1−hθ(x))
因为 yiy_iyi 只有两种取值情况,1或0,分别令y=1或y=0,即可得到原来的分段表示式。
全体样本的损失函数可以表示为:
cost(hθ(x),y)=∑i=1m−yilog(hθ(x))−(1−yi)log(1−hθ(x))cost(h_{\theta}(x),y) = \sum_{i=1}^{m} -y_ilog(h_{\theta}(x)) - (1-y_i)log(1-h_{\theta}(x))cost(hθ(x),y)=i=1∑m−yilog(hθ(x))−(1−yi)log(1−hθ(x))
这就是逻辑回归最终的损失函数表达式
logistic回归详解(二):损失函数(cost function)详解相关推荐
- 逻辑回归损失函数(cost function)
转载:https://www.cnblogs.com/richqian/p/4511557.html 逻辑回归模型预估的是样本属于某个分类的概率,其损失函数(Cost Function)可以像线型回归 ...
- EXT核心API详解(二)-Array/Date/Function/Number/String
EXT核心API详解(二)-Array/Date/Function/Number/String Array类 indexOf( Object o ) Number object是否在数组中,找不到返 ...
- SpringSecurity权限管理框架系列(六)-Spring Security框架自定义配置类详解(二)之authorizeRequests配置详解
1.预置演示环境 这个演示环境继续沿用 SpringSecurit权限管理框架系列(五)-Spring Security框架自定义配置类详解(一)之formLogin配置详解的环境. 2.自定义配置类 ...
- Softmax回归——logistic回归模型在多分类问题上的推广
Softmax回归 Contents [hide] 1 简介 2 代价函数 3 Softmax回归模型参数化的特点 4 权重衰减 5 Softmax回归与Logistic 回归的关系 6 Softma ...
- 用python做逻辑回归梯度上升_机器学习实例---4.1、Logistic回归基础篇之梯度上升算法...
一 前言 本文从Logistic回归的原理开始讲起,补充了书上省略的数学推导.本文可能会略显枯燥,理论居多,Sklearn实战内容会放在下一篇文章.自己慢慢推导完公式,还是蛮开心的一件事. 二 Log ...
- 深度学习系列--1.入坑模型: 线性回归,logistic 回归,softmax分类器
惭愧啊,读研的时候学得正是模式识别:当看着书本上都是公式推导.博士师兄们也都在公式推导研究新算法的时候,排斥心理到了顶点,从此弃疗. 工作三年,重新捡起,因为更关注实际操作,所以选择了<pyth ...
- logistic回归和softmax回归
logistic回归 在 logistic 回归中,我们的训练集由 个已标记的样本构成:.由于 logistic 回归是针对二分类问题的,因此类标记 . 假设函数(hypothesis functi ...
- 【机器学习】对数线性模型之Logistic回归、SoftMax回归和最大熵模型
来源 | AI小白入门 作者 | 文杰 编辑 | yuquanle 完整代码见:原文链接 1. Logistic回归 分类问题可以看作是在回归函数上的一个分类.一般情况下定义二值函数,然而二值函数 ...
- [PyTorch]手动实现logistic回归(只借助Tensor和Numpy相关的库)
文章目录 实验要求 一.生成训练集 二.数据加载器 三.手动构建模型 3.1 logistic回归模型 3.2 损失函数和优化算法 3.3 模型训练 四.训练结果 实验要求 人工构造训练数据集 手动实 ...
- logit回归模型假设_一文让你搞懂Logistic回归模型
注:本文是我和夏文俊同学共同撰写的 现考虑二值响应变量 ,比如是否购车,是否点击,是否患病等等,而 是相应的自变量或者称特征.现希望构建一个模型用于描述 和 的关系,并对 进行预测. 线性模型可以吗? ...
最新文章
- 后台开发真的不需要看《tcpip详解》吗
- SQL Server 死锁的告警监控
- 深圳python如何评价_Python分析18万条《八佰》影评,看看观众怎么说?
- 使用 webpack 4 和 Babel 构建 React 应用(2018)
- 通过excel模板文件根据数据库数据修改其中的单元格数据
- XML学习笔记01【xml_基础、xml_约束】
- Html5 Canvas斗地主游戏
- PHP: 手把手编写自己的 MVC 框架实例教程
- 数据结构——二叉树的层次遍历进阶
- MySQL 添加列,修改列,删除列 的SQL写法
- mysql 查询auto_increment_MySQL查询数据表的Auto_Increment(自增id)
- 程序员编程艺术:第三章续、Top K算法问题的实现
- 安卓自定义注解支持和示例实现
- 接口做的好怎么形容_大连SIEMENS西门子M174接口plc模块
- 常用PAM模块--完全笔记
- Linux常用shell种类
- 互联网公司纷纷裁员,大家都在说互联网行业进入了寒冬期,你怎么看待这个说法?
- 图灵革命如何颠覆我们对世界的认知?
- 安全优雅的RESTful API签名实现方案
- 基于DSP的声反馈抑制系统的研究与实现_爱学术——免费下载