逻辑斯蒂回归以及它的梯度下降法

本文介绍了逻辑斯蒂回归模型,包括二项和多项逻辑斯蒂回归,探讨了模型优缺点,以及在分类问题中的应用。通过极大似然估计法求解模型参数,并详细阐述了梯度下降法的算法思想和推导过程,同时对比了不同类别设置下的导数形式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

预测任务分为:

  1. 回归问题:输入、输出变量为连续变量。
  2. 分类问题:输出变量为有限个离散变量。
  3. 标注问题:输入、输出变量为变量序列。

前面提到用感知机进行分类时,得到了是离散变量。但是实际上是因为 s i g n sign sign函数,如果用这个函数,不就是线性回归了嘛!
逻辑斯蒂回归(logistic distribution)模型适用于多类分类问题,它是对数线性模型,属于判别模型。它源自于逻辑斯蒂分布。
优点:计算代价不高,易于理解和实现。
缺点:容易欠拟合,分类精度可能不高。

逻辑斯蒂分布

首先我们需要知道什么是 s i g m o i d sigmoid sigmoid函数?
s i g m o i d sigmoid sigmoid是一个在生物学中常见的S型生长曲线, s i g m o i d sigmoid sigmoid函数常被用作神经网络的激活函数。
θ ( x ) = 1 1 + e − x \theta(x)=\frac{1}{1+e^{-x}} θ(x)=1+ex1
在这里插入图片描述
这个曲线以点 ( u , 1 2 ) (u,\frac{1}{2}) (u,21)为中心对称,而且在中心附近增长速度较快,在两端增长速度较慢。取值范围为 ( 0 , 1 ) (0,1) (0,1),它可以将一个实数映射到 ( 0 , 1 ) (0,1) (0,1)的区间,可以用来做二分类。逻辑斯蒂函数,也就是逻辑斯蒂分布的分布函数与它一样。密度函数是一个凸函数。
在这里插入图片描述

个人认为sigmoid函数和logisitic函数差别不大
参考:https://baike.baidu.com/item/Sigmoid%E5%87%BD%E6%95%B0/7981407
https://baike.baidu.com/item/%E9%80%BB%E8%BE%91%E6%96%AF%E8%B0%9B%E5%88%86%E5%B8%83/19127203#reference-[1]-19510388-wrap

模型

请添加图片描述
之前的是在 w T x + b w^{T}x+b wTx+b外面加上 s i g n sign sign函数,现在直接将 s i g n sign sign函数替换为 s i g m o i d sigmoid sigmoid函数,上图为 θ ( ⋅ ) \theta(·) θ()。两者的区别在于损失函数的计算。

二项逻辑斯蒂回归模型

顾名思义,解决二分类问题。
在这里插入图片描述
当然有时候为了方便计算,我们把
b b b放入 w w w x x x多一个 1 1 1还是很好理解的,矩阵展开就行了。公式6.5分子分母除以分子,就变得和 s i g m o i d sigmoid sigmoid函数一致。公式6.6直接是因为sigmoid的对称性,由公式6.6推来。

多项逻辑斯蒂回归模型

用于多分类问题:
在这里插入图片描述

策略

在逻辑斯蒂回归模型中,单看等式左边 P ( Y = y ∣ x ) P(Y=y|x) P(Y=yx)很明显是一个条件概率。等式右边直接用 θ ( ⋅ ) \theta(·) θ()代替,明显是个关于 w w w的公式,因为实际问题中 x x x是已知的。
如果 θ θ θ是已知确定的, x x x是变量,这个函数叫做概率函数(probability function),它描述对于不同的样本点 x x x,其出现概率是多少。
如果 x x x是已知确定的, θ θ θ是变量,这个函数叫做似然函数(likelihood function), 它描述对于不同的模型参数,出现 x x x这个样本点的概率是多少。似然问题:关于模型的参数 θ θ θ是未知的。所以逻辑斯蒂回归求解模型参数是一个似然问题。

用极大似然估计法估计模型参数。极大似然估计法,通俗理解来说,就是利用已知的样本结果信息,反推最具有可能(最大概率)导致这些样本结果出现的模型参数值!

我们希望得到一个好的模型,策略就是每一个样本分类正确的概率能够尽可能大(你也不想你的分类可信度低或者错误分类概率变大吧,所以样本和正确分类事件要同时满足哦),每个样本还是独立同分布的。那么策略就是
m a x ∏ P ( x , Y = y ) = m a x ∏ P ( Y = y ∣ x ) P ( x ) max \prod P(x,Y=y)=max\prod P(Y=y|x)P(x) max

### 逻辑回归中梯度下降算法的实现方法与原理 #### 原理概述 逻辑回归是一种用于分类问题的基础模型[^1]。该模型通过估计给定输入特征下属于某一类别的概率来工作。为了优化这个模型,通常采用梯度下降法最小化损失函数。 对于单个训练样本而言,其对应的代价函数可以表示为: \[L(a, y) = -(y\log(a) + (1-y)\log(1-a))\] 这里 \(a\) 表示由逻辑回归产生的预测输出,而 \(y\) 则代表实际类别标签[^4]。 当处理整个数据集时,则需累积所有个体样本上的误差形成总的成本函数\(J(\theta)\),并利用它来进行参数更新操作: \[w := w - \alpha \frac{\partial J(w, b)}{\partial w}\] \[b := b - \alpha \frac{\partial J(w, b)}{\partial b}\] 其中 \(\alpha\) 是学习率,决定了每次迭代过程中调整权重的程度;\(\frac{\partial}{\partial w}\) 和 \(\frac{\partial}{\partial b}\) 分别对应于关于权重矩阵W以及偏置项B求导的结果[^5]。 #### 实现过程 下面给出一段Python代码片段展示如何基于上述理论框架实现简单的二元逻辑回归及其梯度下降优化流程: ```python import numpy as np def sigmoid(z): """Sigmoid activation function""" return 1 / (1 + np.exp(-z)) def compute_cost(X, y, theta): m = len(y) h = sigmoid(np.dot(X, theta)) cost = (-1/m)*(np.sum((y * np.log(h)) + ((1-y)*np.log(1-h)))) grad = (1/m) * np.dot(X.T,(h-y)) return cost,grad def gradient_descent(X, y, theta, alpha, num_iters): costs = [] for _ in range(num_iters): cost, grad = compute_cost(X, y, theta) # Update parameters using gradients computed above. theta -= alpha * grad costs.append(cost) return theta, costs ``` 这段程序首先定义了一个辅助性的`sigmoid()`函数用来计算激活值,接着实现了成本函数`compute_cost()`以评估当前模型的好坏程度,并返回相应的梯度信息以便后续调用者能够据此修改参数向量`\theta`。最后,在`gradient_descent()`里执行多次循环逐步逼近最优的位置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值