机器学习算法之 logistic、Softmax 回归

逻辑回归本质是分类问题,而且是二分类问题,不属于回归,但是为什么又叫回归呢。我们可以这样理解,逻辑回归就是用回归的办法来做分类。它是在线性回归的基础上,通过Sigmoid函数进行了非线性转换,从而具有更强的拟合能力

sigmoid 函数

https://blog.csdn.net/fenglepeng/article/details/104829873

Logistic回归分类器

为了实现Logistic回归分类器,我们可以在每个特征上都乘以一个回归系数,然后把所有的结果值相加,将这个总和代入Sigmoid函数中,进而得到一个范围在0~1之间的数值。任何大于0.5的数据被分入1类,小于0.5即被归入0类。所以,Logistic回归也可以被看成是一种概率估计。

\begin{aligned}p&=h_\theta(x)=g(\theta^Tx)=\frac{1}{1+e^{-\theta^Tx}} \end{aligned}

所以说,Logistic回归分类器可以看成线性回归与sigmoid的混合函数,是一个二分类的模型(这里是取的0和1,有的算法是+1和-1)

\hat{y}=\left\{\begin{matrix} 0,P(\hat{y}=1)>p\\ 1,P(\hat{y}=0)>p \end{matrix}\right.

在用于分类时,实际上是找一个阈值,大于阈值的属于1类别,小于的属于0类别。(阈值是可根据具体情况进行相应变动的)

Logistic回归及似然函数

我们假设

\begin{aligned}P(y=1|x;\theta)&=h_\theta(x) \\P(y=0|x;\theta)&=1-h_\theta(x) \end{aligned}

把两个式子结合起来

\begin{aligned}P(y|x;\theta)&=(h_\theta(x))^y(1-h_\theta(x))^{(1-y)}\end{aligned}

运用极大似然估计得到似然函数

\begin{aligned}L(\theta)&=p(\vec{y}|X;\theta) \\&=\prod_{i=1}^{m}p(y^{(i)}|x^{(i)};\theta) \\&=\prod_{i=1}^{m}(h_\theta(x^{(i)}))^{y^{(i)}}(1-h_\theta(x^{(i)}))^{(1-y^{(i)})}\end{aligned}

累乘不好求,我们可以求其对数似然函数。最值的问题,求导(第三行到第四行使用了sigmoid函数求导)

\begin{aligned}l(\theta)&=\log L(\theta) \\&=\sum_{i=1}^m(y^{(i)}\log h_\theta(x^{(i)})+(1-y^{(i)})\log(1-h_\theta(x^{(i)}))) \\\frac{\partial l(\theta)}{\partial\theta_j}&=\sum_{i=1}^m(\frac{y^{(i)}}{h_\theta(x^{(i)})}-\frac{1-y^{(i)}}{1-h_\theta(x^{(i)})})\cdot\frac{\partial h_\theta(x^{(i)})}{\partial\theta_j} \\&=\sum_{i=1}^m(\frac{y^{(i)}}{g(\theta^Tx^{(i)})}-\frac{1-y^{(i)}}{1-g(\theta^Tx^{(i)})})\cdot\frac{\partial g(\theta^Tx^{(i)})}{\partial\theta_j} \\&=\sum_{i=1}^m(\frac{y^{(i)}}{g(\theta^Tx^{(i)})}-\frac{1-y^{(i)}}{1-g(\theta^Tx^{(i)})})\cdot g(\theta^Tx^{(i)})(1-g(\theta^Tx^{(i)}))\cdot\frac{\partial\theta^Tx^{(i)}}{\partial\theta_j} \\&=\sum_{i=1}^m(y^{(i)}(1-g(\theta^Tx^{(i)}))-(1-y^{(i)})g(\theta^Tx^{(i)}))\cdot x_j^{(i)} \\&=\sum_{i=1}^m(y^{(i)}-g(\theta^Tx^{(i)}))\cdot x_j^{(i)}\end{aligned}

求解,使用批量梯度下降法BGD

\theta_j=\theta_j+\alpha\sum_{i=1}^m(y^{(i)}-h_\theta(x^{(i)}))x_j^{(i)}

或者随机梯度下降法SGD

\theta_j=\theta_j+\alpha(y^{(i)}-h_\theta(x^{(i)}))x_j^{(i)}

可以发现逻辑回归与线性回归梯度下降求解的形式类似,唯一的区别在于假设函数hθ(x)不同,线性回归假设函数为θTx,逻辑回归假设函数为Sigmoid函数。

线性回归模型服从正态分布,逻辑回归模型服从二项分布(Bernoulli分布),因此逻辑回归不能应用最小二乘法作为目标/损失函数,所以用梯度下降法。

极大似然估计与Logistic回归损失函数

我们要让对数似然函数最大,也就是他的相反数 -l(\theta )最小。而 -l(\theta ) 最小化,则可以看成损失函数,求其最小化:

loss = -l(\theta )

似然函数:

\begin{aligned}L(\theta)&=\prod_{i=1}^mp(y^{(i)}|x^{(i)};\theta) =\prod_{i=1}^mp_i^{y^{(i)}}(1-p_i)^{1-y^{(i)}} \end{aligned}

logistic函数

\begin{aligned}p_i&=h_\theta(x^{(i)}) =\frac{1}{1+e^{-\theta^Tx^{(i)}}} \end{aligned}

带入得

\begin{aligned}\\l(\theta)&=\ln L(\theta) \\&=\sum_{i=1}^m\ln[p_i^{y^{(i)}}(1-p_i)^{1-y^{(i)}}] \\&=\sum_{i=1}^m\ln[(\frac{1}{1+e^{-f_i}})^{y^{(i)}}(\frac{1}{1+e^{f_i}})^{1-y^{(i)}}] \\loss(y^{(i)},\hat{y^{(i)}})&=-l(\theta) \\&=\sum_{i=1}^m[y^{(i)}\ln(1+e^{-f_i})+(1-y^{(i)})\ln(1+e^{f_i})] \\&=\begin{cases}\sum_{i=1}^m\ln(1+e^{-f_i}), &y^{(i)}=1 \\ \sum_{i=1}^m\ln(1+e^{f_i}), &y^{(i)}=0\end{cases} \\\Rightarrow loss(y^{(i)},\hat{y^{(i)}})&=\sum_{i=1}^m\ln(1+e^{(1-2y^{(i)})\theta^Tx^{(i)}}), y^{(i)}=\begin{cases}1 \\ 0\end{cases}\end{aligned}

这个结果就是交叉熵损失函数。

总结

就一句话:通过以上过程,会发现逻辑回归的求解,跟线性回归的求解基本相同。

多分类问题(Multi-class classification)

        对于分类多于2个的问题, 可以将其看做二分类问题,即以其中一个分类作为一类,剩下的其他分类作为另一类,多分类问题的假设函数为 

h_{0}^{i}(x)=p(y=i|x;\theta)

one-vs-all/rest 问题解决方法:

  • 训练一个逻辑回归分类器,预测 i 类别 y=i 的概率;
  • 对一个新的输入值x,为了作出类别预测,分别在k个分类器运行输入值,选择h最大的类别 

Softmax回归模型  

Softmax回归是logistic回归的一般化模型,适用于k(k>2)分类的问题,第k类的参数为向量\theta_k,组成的二维矩阵为\theta _{k*n}(k为类别数,n为特征数,即为每一个类别构建一个\theta_k,用到的是ova思想)。

参考链接:机器学习之单标签多分类及多标签多分类

Softmax函数的本质就是将一个k维的任意实数向量映射成为另一个k维的实数向量,其中向量中的每个元素的取值都介于(0,1)之间。

Softmax回归的概率函数为:

p(y=k|x;\theta)=\frac{e^{\theta_k^Tx}}{\sum_{l=1}^{K}e^{\theta_l^{T}x}}, k=1,2,...,K
注释: e^{\theta_k^Tx}计算的是,他属于第k类的回归值,\sum_{l=1}^{K}e^{\theta_l^{T}x}计算的是他属于每个类别的累加,用e的指数是为了加大 大的类别的影响

Softmax回归的似然估计

似然函数:

\begin{aligned}L(\theta)&=\prod_{i=1}^m\prod_{k=1}^Kp(y=k|x^{(i)};\theta)^{y_k^{(i)}} \\&=\prod_{i=1}^m\prod_{k=1}^K(\frac{e^{\theta_k^Tx}}{\sum_{l=1}^Ke^{\theta_l^Tx}})^{y_k^{(i)}}\end{aligned}

对数似然函数:

\begin{aligned}l(\theta)&=\ln L(\theta) \\&=\sum_{i=1}^m\sum_{k=1}^Ky_k^{(i)}(\theta_k^Tx^{(i)}-\ln\sum_{l=1}^Ke^{\theta_l^Tx^{(i)}}) \\l(\theta)&=\sum_{k=1}^Ky_k(\theta_k^Tx-\ln\sum_{l=1}^Ke^{\theta_l^Tx})\end{aligned}

 

 推导和Logistic回归类似,只是将分类的个数从2扩展到k的情形。Softmax算法的损失函数:

梯度下降法

总结

  • 线性回归模型一般用于回归问题,逻辑回归和Softmax回归模型一般用于分类问题;
  • 求θ的主要方式是梯度下降算法,该算法是参数优化的重要手段,主要使用SGD或MBGD;
  • 逻辑回归/Softmax回归模型是实际问题中解决分类问题的最重要的方法;
  • 广义线性模型对样本的要求不必一定要服从正态分布,只要服从指数分布簇(二项分布、Poisson分布、Bernoulli分布、指数分布等)即可;广义线性模型的自变量可以是连续的也可以是离散的。
     

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/454551.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html上传预览图片原理,关于html中图片上传预览的实现

functionchange() {varpicdocument.getElementById("preview"),filedocument.getElementById("f");//得到后缀名varextfile.value.substring(file.value.lastIndexOf(".")1).toLowerCase();//gif在IE浏览器暂时无法显示if(ext!png&&ext!…

程序员成功之路

程序员成功之路 ——The road ahead for programmer(演讲稿) 一、我很羡慕在座的各位同学,因为你们是中国未来的程序员,而我不是,我一直很遗憾。 比尔盖茨曾经写过一本书叫做《未来之路》The road ahead, 那么今天我选…

【温故知新】——原生js中常用的四种循环方式

一、引言 本文主要是利用一个例子,讲一下原生js中常用的四种循环方式的使用与区别: 实现效果: 在网页中弹出框输入0 网页输出“欢迎下次光临”在网页中弹出框输入1 网页输出“查询中……”在网页中弹出框输入2 网页输出“取款中……”在…

部署egg需要用到pm2吗_使用宝塔面板部署校园综合服务平台项目

本文档为校园综合服务平台服务端的安装部署教程,欢迎star小程序端下载地址:https://github.com/landalfYao/help.git后台服务端下载地址:https://github.com/landalfYao/helpserver.git后台客户端下载地址:https://github.com/lan…

机器学习算法之线性回归

一、什么是回归算法 回归算法是一种有监督算法 回归算法是一种比较常用的机器学习算法,用来建立“解释”变量(自变量X)和观测值(因变量Y)之间的关系;从机器学习的角度来讲,用于构建一个算法模型(函数)来做属性(X)与标签(Y)之间的映射关系&a…

html中怎么写多选框,如何在HTML中实现“选择所有”复选框?

checkboxes document.getElementsByName(foo);for(var checkbox in checkboxes)checkbox.checked source.checked;} Toggle AllBar 1 Bar 2Bar 3 Bar 4最新情况:这个for each...in构造在Safari 5或Chrome 5中似乎不起作用,至少在本例中是这样的。这段代…

Console-算法[for]-国王与老人的六十四格

ylbtech-Arithmetic:Console-算法[for]-国王与老人的六十四格1.A,案例-- -- ylb:算法-- Type:算法[for]-- munu:国王与老人的六十四格-- 20:32 2012/3/16-- 案例:印度有个国王,他拥有超人的权力和巨大的财富。但权力和财富最终让他…

程序人生感悟

<本来不想写的&#xff0c;实在不想看到某些人误人子弟&#xff0c;混淆视听&#xff0c;耽误了中国IT的未来&#xff0c;所以一吐为快) 一些人总是发出一些错误的声音&#xff0c;形成了劣胜优汰可怕的现象。他们在误导着中国&#xff0c;把我们的后继军训练成软件蓝领―…

python的excel库_Python-Excel 模块哪家强?

0. 前言 从网页爬下来的大量数据需要清洗&#xff1f; 成堆的科学实验数据需要导入 Excel 进行分析&#xff1f; 有成堆的表格等待统计&#xff1f; 作为人生苦短的 Python 程序员&#xff0c;该如何优雅地操作 Excel&#xff1f; 得益于前人的辛勤劳作&#xff0c;Python 处理…

html如何设置滑轮效果,HTML中鼠标滚轮事件onmousewheel处理

滚轮事件是不同浏览器会有一点点区别&#xff0c;一个像Firefox使用DOMMouseScroll ,ff也可以使用addEventListener方法绑定DomMouseScroll事件&#xff0c;其他的浏览器滚轮事件使用mousewheel&#xff0c;下面我来给大家具体介绍。Firefox使用DOMMouseScroll&#xff0c;其他…

在OOW2009上寻宝撞大运续(床上篇)

历时5天的Oracle Open World 2009终于&#xff0c;终于结束了。今天最后的节目是去听一场金融分析师的会议&#xff0c;“只”开了不到6个钟。去的时候是毛毛雨&#xff0c;回来的时候终于看到了一缕阳光。说夕阳无限好不大合适。用Larry Ellison的说法是“太阳落下的地方也是太…

skynet记录6:定时器

稍后填坑 kernel中&#xff0c;每一次时钟中断会trap到kernel code&#xff0c;这个时间间隔称之为jiffies&#xff0c;每秒钟发生的次数为HZ 如果是4核&#xff0c;分配到每个核就是HZ/4 cat /boot/config-uname -r | grep ^CONFIG_HZ 输出&#xff1a; CONFIG_HZ250 cat /pro…

html图片平铺不重复整个页面,JSP网页背景图片怎样不平铺,不重复出现啊...

2016-07-10 13:12最佳答案1,Q:怎样把别人网页上的背景音乐保存下来?A:浏览该网页后,在你的 Windows\Temporary Internet Files 文件夹下可以找到该背景音乐的缓存文件&#xff0c;拷贝出来即可使用。如果还是找不见该文件&#xff0c;可以打开网页的源文件&#xff0c;找到音乐…

特征图注意力_从数据结构到算法:图网络方法初探

作者 | 朱梓豪来源 | 机器之心原文 | 从数据结构到算法&#xff1a;图网络方法初探如果说 2019 年机器学习领域什么方向最火&#xff0c;那么必然有图神经网络的一席之地。其实早在很多年前&#xff0c;图神经网络就以图嵌入、图表示学习、网络嵌入等别名呈现出来&#xff0c;其…

FFMPEG 源码分析

FFMPEG基本概念&#xff1a; ffmpeg是一个开源的编解码框架&#xff0c;它提供了一个音视频录制&#xff0c;解码和编码库。FFMPEG是在linux下开发的&#xff0c;但也有windows下的编译版本。 ffmpeg项目由以下几部分组成: ffmpeg 视频文件转换命令行工具,也支持经过实时电视…

面试之 Redis汇总

简介 Redis 持久化机制 RDB&#xff08;Redis DataBase&#xff09; AOF&#xff08;Append-only file&#xff09; Redis 4.0 对于持久化机制的优化 补充&#xff1a;AOF 重写 二者的区别 二者优缺点 Memcache与Redis的区别都有哪些&#xff1f; 缓存雪崩、缓存穿透、…

Oracle 10g 问题集锦

监听服务中Oracle数据库之中使用最主要的一个服务&#xff0c;但是这个服务经常会出现错误&#xff0c;包括以后在工作之中此服务也会出现错误&#xff0c;故给出两种常见错误的解决方案&#xff08;故障1、故障2&#xff09; 故障1: 注册表使用了优化软件&#xff08;如&#…

iOS linker command failed with exit code 1 (use -v to see invocation)多种解决方案汇总

有时可能会遇到这种错误&#xff0c;关键是这种错误&#xff0c;有时只有这一句话&#xff0c;也不会给更多错误信息。 网上找了一些&#xff0c;总结了如下&#xff1a;&#xff08;PS&#xff1a;以下是按照解决简易程度排序&#xff0c;不代表出现概率&#xff09; 1、bitco…

计算机二级python选择题题库_2018年计算机二级python题库精编(1)

1正则中的^符号&#xff0c;用在一对中括号中则表示要匹配() A.字符串的开始 B.除中括号内的其它字符 C.字符串的结束 D.仅中括号内含有的字符 2静态成员变量称为类变量&#xff0c;非静态成员变量称为实例变量&#xff0c;下列关于一个类的静态成员的描述中&#xff0c;不正确…

非常好用!世界上最快最好的视频压缩转换工具(精品)

测试了20多款 各种视频压缩 截取软件 真的是这款最快 快好用 效果也好&#xff01;&#xff01;&#xff01; 最快的视频转换压缩工具。 WisMencoder 能够把您的电脑上的所有视频格式&#xff0c;包括avi,mpg,rmvb,wmv,mp4,mov,dat等格式以最快的速度和最高的质量转换为…