当前位置: 首页 > news >正文

神经网络基础-神经网络补充概念-08-逻辑回归中的梯度下降算法

概念

逻辑回归是一种用于分类问题的机器学习算法,而梯度下降是优化算法,用于更新模型参数以最小化损失函数。在逻辑回归中,我们使用梯度下降算法来找到最优的模型参数,使得逻辑回归模型能够更好地拟合训练数据。

逻辑回归中的梯度下降算法的步骤:

在这里插入图片描述

伪代码

初始化参数向量 theta
重复迭代直到收敛或达到最大迭代次数:计算模型预测值 h_theta(x)计算损失函数 J(theta)计算梯度 ∂J(theta)/∂theta更新参数 theta: theta := theta - learning_rate * gradient

代码实现

import numpy as npdef sigmoid(z):return 1 / (1 + np.exp(-z))def compute_loss(X, y, theta):m = len(y)h = sigmoid(X.dot(theta))loss = (-1/m) * np.sum(y * np.log(h) + (1 - y) * np.log(1 - h))return lossdef gradient_descent(X, y, theta, learning_rate, num_iterations):m = len(y)losses = []for _ in range(num_iterations):h = sigmoid(X.dot(theta))gradient = X.T.dot(h - y) / mtheta -= learning_rate * gradientloss = compute_loss(X, y, theta)losses.append(loss)return theta, losses# 生成一些模拟数据
np.random.seed(42)
X = np.random.randn(100, 2)
X = np.hstack((np.ones((X.shape[0], 1)), X))
theta_true = np.array([1, 2, 3])
y = (X.dot(theta_true) + np.random.randn(100) * 0.2) > 0# 初始化参数和超参数
theta = np.zeros(X.shape[1])
learning_rate = 0.01
num_iterations = 1000# 执行梯度下降
theta_optimized, losses = gradient_descent(X, y, theta, learning_rate, num_iterations)# 打印优化后的参数
print("优化后的参数:", theta_optimized)# 绘制损失函数下降曲线
import matplotlib.pyplot as plt
plt.plot(losses)
plt.xlabel('迭代次数')
plt.ylabel('损失')
plt.title('损失函数下降曲线')
plt.show()
http://www.lryc.cn/news/124905.html

相关文章:

  • npm ERR! cb.apply is not a function
  • iShot Pro for Mac 2.3.9最新中文版
  • FiboSearch Pro – Ajax Search for WooCommerce 商城AJAX实时搜索插件
  • k8s dns 解析service异常
  • P6464 [传智杯 #2 决赛] 传送门
  • 如何通过CSS选择器选择一个元素的子元素?如何选择第一个子元素和最后一个子元素?
  • 智能家居(2)---串口通信(语音识别)控制线程封装
  • MySql主从复制1032错误(Slave_IO_Running: Yes Slave_SQL_Running: No)
  • 毕业论文格式设置总结
  • 7-3 整数四则运算
  • React 全栈体系(一)
  • SpringBoot代理访问本地静态资源400 404
  • Java导出数据到Excel
  • IDEA常用设置与maven项目部署
  • 想学好网络技术,这一张纸就够了
  • list的使用和模拟实现
  • Kubernetes 部署DolphinScheduler 创建租户失败
  • uniapp 获取 view 的宽度、高度以及上下左右左边界位置
  • 财务数据分析之现金流量表模板分享
  • 日常BUG——通过命令行创建vue项目报错
  • CSS3 新特性
  • 微信记录---推荐系统---23/8/14 小总结
  • 学习笔记整理-正则表达式-01-认识正则
  • windows10/11 修改docker镜像存储目录
  • AI黑马挑战赛,探索研发新趋势丨IDCF
  • 关于onload事件
  • 合并单元格
  • Spring Boot @Validated 验证注解的使用
  • 如何理解“对矩阵进行初等行变换不改变其列向量的线性关系”?
  • 书店行业小程序开发攻略