数学建模社区-数学中国

标题: 实现Logistic回归模型学习的梯度下降法 [打印本页]

作者: 2744557306    时间: 2025-1-23 19:06
标题: 实现Logistic回归模型学习的梯度下降法
在实现Logistic回归模型的学习过程中,梯度下降法是一种常用的优化算法。Logistic回归用于二分类问题,通过使用sigmoid函数来预测样本属于某一类的概率。以下是如何用Python实现Logistic回归,并使用梯度下降法来学习模型参数
0 g$ S7 k' {+ i& B" E/ H7 h: Q% L; `1 |* m$ Q. e% p
### Logistic 回归原理
+ T1 c5 D1 B  @6 S1 x- W) ^0 x, O4 G. P1 ^) _( \3 n( i# W
1. **Sigmoid 函数**:( N1 A, u, R. n9 b7 v" [; U
   \[9 \0 ]& {( y7 \4 z8 C. [
   \sigma(z) = \frac{1}{1 + e^{-z}}# d* r& z: T" u; ?# D
   \]/ l# V, v1 h8 g1 D6 ]% N
   这个函数将任何实数映射到(0, 1)区间,用于计算预测概率。% _% e8 b8 Y" u  \8 F: |
7 m! ^/ x5 y, u* O3 b
2. **损失函数**:0 q. ?1 f( k2 G' b" e" A
   Logistic回归的损失函数是对数损失函数(Log Loss):
8 o/ [; A" y" D$ a+ V   \[
/ c+ n, G* k$ r1 p. N   J(\theta) = -\frac{1}{m} \sum_{i=1}^{m} [y^{(i)} \log(h_\theta(x^{(i)})) + (1 - y^{(i)}) \log(1 - h_\theta(x^{(i)}))]
- C! H0 h( A: f4 g   \]5 p( [% m) O/ y4 _! t8 i
   其中 \( h_\theta(x) = \sigma(\theta^T x) \)。% m+ v. @+ Z* q* Q! a( y

4 T, a6 y8 y6 H  X. ]- r3. **梯度下降法**:
! |4 n1 n( n6 X* N) q   梯度下降更新参数的公式为:3 ~1 ]( U3 I  T# A- K# r
   \[" y0 Y- @' m9 U3 M
   \theta := \theta - \alpha \nabla J(\theta)- v7 H& v; K, f
   \]
0 f4 Z5 I- i5 @+ x" a0 t   其中,\(\alpha\)是学习率,\(\nabla J(\theta)\)是损失函数的梯度。
$ Q( I" t/ I* m: X; J+ a9 K# X: [: f* E% L0 [3 \
# k  ]6 |3 t$ a% }& T0 [
* S9 M/ {* F. a5 b! [- @- D
, K" S, H/ ~6 ?, I( `

my_logistic_regression.py

4.64 KB, 下载次数: 0, 下载积分: 体力 -2 点

售价: 2 点体力  [记录]  [购买]






欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5