IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 逻辑回归(Logistic Regression) -> 正文阅读

[数据结构与算法]逻辑回归(Logistic Regression)

逻辑回归(Logistic Regression)

1 变量表

符号含义
m m m训练集样本数量
n n n特征数量
( x ( i ) , y ( i ) ) ({{x}^{(i)}},{{y}^{(i)}}) (x(i),y(i))训练集中第 i i i个样本, y ( i ) ∈ { 1 , 0 } {y}^{(i)}\in{\{1,0\}} y(i){1,0}
x ( i ) {x}^{(i)} x(i) i i i个输入值
y ^ ( i ) \hat{y}^{(i)} y^?(i) i i i个输出值
x j ( i ) {x}^{(i)}_j xj(i)? i i i个输入值的第 j j j个特征
h h h假设函数

2 逻辑回归模型

在这里插入图片描述

图1 逻辑回归模型

图1中, h h h代表 h y p o t h e s i s hypothesis hypothesis 假设(📑在机器学习中一般这么叫,andrew觉得不太好听~),它一般是模型输入的函数,在二分类逻辑回归模型中, h h h的表达方式为 :
{ h θ ( x ( i ) ) = g ( z ) = 1 1 + e ? z z = θ T x ( i ) (1) \begin{cases} h_{\theta} (x^{(i)})=g(z)=\frac{1}{1+{{e}^{-z}}}\\ z=\theta^Tx^{(i)} \end{cases} \tag{1} {hθ?(x(i))=g(z)=1+e?z1?z=θTx(i)?(1)

其中,
θ = [ θ 0 , θ 1 , ? ? ? , θ n ] T x ( i ) = [ x ( 0 ) , x ( 1 ) , ? ? ? , x ( n ) ] T \begin{aligned} \theta &=[\theta_{0},\theta_{1},···,\theta_{n}]^T\\ x^{(i)}&=[x^{(0)},x^{(1)},···,x^{(n)}]^T \end{aligned} θx(i)?=[θ0?,θ1?,???,θn?]T=[x(0),x(1),???,x(n)]T?

θ 0 , θ 1 , ? ? ? , θ n \theta_0, \theta_1 ,···,\theta_n θ0?,θ1?,???,θn?模型参数 x 0 ( i ) x_{0}^{(i)} x0(i)?规定为1。 g ( z ) g(z) g(z)如图2所示:

在这里插入图片描述

图2

实际上, h θ ( x ( i ) ) h_{\theta} (x^{(i)}) hθ?(x(i))的作用是对于给定的输入变量 x ( i ) x^{(i)} x(i),根据选择的参数计算输出变量 y ^ ( i ) = 1 \hat{y}^{(i)}=1 y^?(i)=1的可能性(estimated probablity)即:
h θ ( x ( i ) ) = P ( y ^ ( i ) = 1 ∣ x ( i ) ; θ ) (2) h_\theta \left( x^{(i)} \right)=P\left( \hat{y}^{(i)}=1|x^{(i)};\theta \right)\tag{2} hθ?(x(i))=P(y^?(i)=1x(i);θ)(2)

判定边界 0.5 0.5 0.5时,模型输出表达式为:
y ^ ( i ) = { 1 , h θ ( x ( i ) ) ≥ 0.5 ?? ( θ T x ( i ) ≥ 0 ) 0 , h θ ( x ( i ) ) < 0.5 ?? ( θ T x ( i ) < 0 ) (3) \hat{y}^{(i)}= \begin{cases} 1,h_{\theta} (x^{(i)})\ge0.5\ \ (\theta^Tx^{(i)}\ge0)\\ 0,h_{\theta} (x^{(i)})< 0.5\ \ (\theta^Tx^{(i)}< 0) \end{cases}\tag{3} y^?(i)={1,hθ?(x(i))0.5??(θTx(i)0)0,hθ?(x(i))<0.5??(θTx(i)<0)?(3)

3 代价函数(Cost Function)

建模误差,指的是模型输出值(预测或估计值)与训练集中实际值之间的差距,即:
e r r o r = y ^ ( i ) ? y ( i ) (4) error=\hat{y}^{(i)}-y^{(i)}\tag{4} error=y^?(i)?y(i)(4)

考虑模型所有的输出值与实际值的差距,通常用代价函数来综合评估建模误差逻辑回归模型的代价函数表达式一般为:
{ J ( θ ) = 1 m ∑ i = 1 m c o s t ( y ^ ( i ) , y ( i ) ) c o s t ( y ^ ( i ) , y ( i ) ) = ? y ( i ) log ? ( h θ ( x ( i ) ) ) ? ( 1 ? y ( i ) ) log ? ( 1 ? h θ ( x ( i ) ) ) (5) \begin{cases} J ( \theta) = \frac{1}{m}\sum\limits_{i=1}^m cost(\hat{y}^{(i)},y^{(i)}) \\ cost(\hat{y}^{(i)},y^{(i)})=-{{y}^{(i)}}\log \left( {h_\theta}\left( {{x}^{(i)}} \right) \right)-\left( 1-{{y}^{(i)}} \right)\log \left( 1-{h_\theta}\left( {{x}^{(i)}} \right) \right) \tag{5} \end{cases} ????J(θ)=m1?i=1m?cost(y^?(i),y(i))cost(y^?(i),y(i))=?y(i)log(hθ?(x(i)))?(1?y(i))log(1?hθ?(x(i)))?(5)

c o s t ( y ^ ( i ) , y ( i ) ) cost(\hat{y}^{(i)},y^{(i)}) cost(y^?(i),y(i)) h θ ( x ( i ) ) h_\theta\left( {{x}^{(i)}} \right) hθ?(x(i))的变化情况如图3所示:
在这里插入图片描述

图3

由图3可知:
??当实际的 y ( i ) = 1 y^{(i)}=1 y(i)=1 h θ ( x ( i ) ) {h_\theta}( x ^{(i)}) hθ?(x(i))也为 1 时误差为 0,当 y ( i ) = 1 y^{(i)}=1 y(i)=1 h θ ( x ( i ) ) {h_\theta}( x ^{(i)}) hθ?(x(i))不为1时误差随着 h θ ( x ( i ) ) {h_\theta}( x ^{(i)}) hθ?(x(i))变小而变大。
??当实际的 y ( i ) = 0 y^{(i)}=0 y(i)=0 h θ ( x ( i ) ) {h_\theta}( x ^{(i)}) hθ?(x(i))也为 0 时代价为 0,当 y ( i ) = 0 y^{(i)}=0 y(i)=0 h θ ( x ( i ) ) {h_\theta}( x ^{(i)}) hθ?(x(i))不为 0时误差随着 h θ ( x ( i ) ) {h_\theta}( x ^{(i)}) hθ?(x(i))变大而变大。

n = 1 n=1 n=1时, J ( θ 0 , θ 1 ) J (\theta_0, \theta_1) J(θ0?,θ1?)示意如图4所示:
在这里插入图片描述

图4 n=1时损失函数示意图

4 求解模型参数

求解模型参数的过程可以表示为无约束最优化问题,即:
m i n θ ∈ R n J ( θ ) (6) \mathop{min}\limits_{\theta \in R^n}J(\theta) \tag{6} θRnmin?J(θ)(6)
故, θ = a r g m i n θ ∈ R n J ( θ ) \theta=arg \mathop{min}\limits_{\theta \in R^n}J(\theta) θ=argθRnmin?J(θ)

4.1 梯度下降(Gradient Descent)

梯度下降是一个用来求函数最小值的方法,该方法通过不断的迭代模型参数,使得目标函数(这里即为代价函数 J J J)达到局部最小值。

梯度下降的迭代公式为:
{ θ 0 : = θ 0 ? α ? ? θ 0 J ( θ ) θ 1 : = θ 1 ? α ? ? θ 1 J ( θ ) ? ? ? θ n : = θ n ? α ? ? θ n J ( θ ) (7) \begin{cases} {\theta_{0}}:={\theta_{0}}-\alpha \frac{\partial }{\partial {\theta_{0}}} J(\theta) \\ {\theta_{1}}:={\theta_{1}}-\alpha \frac{\partial }{\partial {\theta_{1}}} J(\theta) \\···\\{\theta_{n}}:={\theta_{n}}-\alpha \frac{\partial }{\partial {\theta_{n}}} J(\theta) \end{cases}\tag{7} ??????????θ0?:=θ0??α?θ0???J(θ)θ1?:=θ1??α?θ1???J(θ)???θn?:=θn??α?θn???J(θ)?(7)

其中, α \alpha α称为学习率 ? ? θ j J ( θ ) = 1 m ∑ i = 1 m ( h θ ( x ( i ) ) ? y ( i ) ) x j ( i ) \frac{\partial }{\partial {\theta_{j}}}J(\theta)=\frac{1}{m}\sum\limits_{i=1}^{m}{({{h}_{\theta }}({{x}^{(i)}})-{{y}^{(i)}})}x_{j}^{(i)} ?θj???J(θ)=m1?i=1m?(hθ?(x(i))?y(i))xj(i)?
( 7 ) (7) (7)写成矩阵形式为:
θ : = θ ? α ? J ( θ ) (8) \theta:=\theta-\alpha \nabla J(\theta) \tag{8} θ:=θ?α?J(θ)(8)
其中, ? J ( θ ) = [ ? ? θ 0 J ( θ ) , ? ? θ 1 J ( θ ) , ? ? ? , ? ? θ n J ( θ ) ] T \nabla J(\theta)=[\frac{\partial }{\partial {\theta_{0}}}J(\theta),\frac{\partial }{\partial {\theta_{1}}}J(\theta),···,\frac{\partial }{\partial {\theta_{n}}}J(\theta)]^T ?J(θ)=[?θ0???J(θ),?θ1???J(θ),???,?θn???J(θ)]T

参数可取方法
模型参数初始值随机选取
学习率 0.01 → 0.03 → 0.1 → ? ? ? ? ? ? 0.01\rightarrow0.03\rightarrow0.1\rightarrow······ 0.010.030.1??????
迭代停止条件代价函数收敛

判断代价函数 J ( θ ) J(\theta) J(θ)收敛的办法一般为画出“代价函数值——迭代次数”图,如图5所示。即每进行一次式 ( 7 ) (7) (7)的计算,便进行一次式 ( 5 ) (5) (5)的计算。
在这里插入图片描述

图5 损失函数值随迭代次数变化示意图

4.2 其他算法

共轭梯度法、BFGS(变尺度法)、L-BFGS(限制变尺度法)······

5 一对多(one-vs-all)

y ( i ) ∈ { 1 , 0 } → y ( i ) ∈ { 1 , 2 , 3 , ? ? ? , k , ? ? ? } {y}^{(i)}\in{\{1,0\}} \to{y}^{(i)}\in{\{1,2,3,···,k,···\}} y(i){1,0}y(i){1,2,3,???,k,???}时:
??将 y ( i ) = 1 {y}^{(i)}=1 y(i)=1标记为正向类,将 y ( i ) ≠ 1 {y}^{(i)}\ne1 y(i)?=1标记为负向类,构建二分类逻辑回归模型 h θ ( 1 ) ( x ( i ) ) h_\theta^{( 1 )}\left( x^{(i)} \right) hθ(1)?(x(i))
??将 y ( i ) = 2 {y}^{(i)}=2 y(i)=2标记为正向类,将 y ( i ) ≠ 2 {y}^{(i)}\ne2 y(i)?=2标记为负向类,构建二分类逻辑回归模型 h θ ( 2 ) ( x ( i ) ) h_\theta^{\left( 2\right)}\left( x^{(i)} \right) hθ(2)?(x(i))
??······
??将 y ( i ) = k {y}^{(i)}=k y(i)=k标记为正向类,将 y ( i ) ≠ k {y}^{(i)}\ne k y(i)?=k标记为负向类,构建二分类逻辑回归模型 h θ ( k ) ( x ( i ) ) h_\theta^{\left( k\right)}\left( x^{(i)} \right) hθ(k)?(x(i))
??······
( 2 ) (2) (2)转化为:
h θ ( k ) ( x ( i ) ) = p ( y ( i ) = k ∣ x ( i ) ; θ ) (9) h_\theta^{\left( k\right)}\left( x^{(i)} \right)=p\left( y^{(i)}=k|x^{(i)};\theta \right)\tag{9} hθ(k)?(x(i))=p(y(i)=kx(i);θ)(9)

( 3 ) (3) (3)转化为:
{ y ^ ( i ) = k h θ ( k ) ( x ( i ) ) = max ? i ? h θ ( k ) ( x ( i ) ) (10) \begin{cases} \hat{y}^{(i)}=k\\ h_\theta^{\left( k \right)}(x^{(i)})=\mathop{\max}\limits_i\,h_\theta^{\left( k \right)}\left( x^{(i)} \right) \tag{10} \end{cases} {y^?(i)=khθ(k)?(x(i))=imax?hθ(k)?(x(i))?(10)

( 10 ) (10) (10)即为一对多逻辑回归模型的输出表达式。


补充说明📝:

??? 最优化相关知识后面看情况再补上。(ps:上课笔记丢了,难受n+1😭)
??? B a t c h Batch Batch梯度下降是指计算代价函数时用到了训练集所有样本。
??? 机器学习中的“梯度下降”实际上是指最速下降算法,即搜索方向为负梯度方向学习率即为搜索步长
??? 在逻辑回归模型中,代价函数 J ( θ ) J(\theta) J(θ)凸函数,故求得的局部最小值即为全局最小值。
??? 学习率取值不合适可能导致代价函数发散、不收敛或收敛速度慢等问题。


学习和温习记录,欢迎各位一起交流讨论,如有错误的地方或者建议,恳请在评论区批评和指导,博客不定期修改和更新。
  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-12-24 18:44:08  更:2021-12-24 18:44:53 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 16:45:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码