| |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| -> 人工智能 -> 梯度下降/牛顿法实现逻辑回归 -> 正文阅读 |
|
|
[人工智能]梯度下降/牛顿法实现逻辑回归 |
|
数据集及完整代码详见此链接https://download.csdn.net/download/cc__cc__/28820647 文章目录一、训练数据可视化1.读取训练数据
2.训练数据可视化
二、逻辑回归算法简介
三、梯度下降法实现逻辑回归本次实验共尝试3种梯度下降方法,即批量梯度下降法、随机梯度下降法、小批量随机梯度下降法,其中单样本梯度计算代码如下:
此外,3种方法参数θ的更新均使用theta = theta - alpha * batch_grad,代码详见gradient_descents.py 1.批量梯度下降法(BGD)批量梯度下降法在更新参数时使用所有的样本来进行更新,运行train.py并传递相应的参数如下图所示。
2.随机梯度下降法(SGD)随机梯度下降法与批量梯度下降法原理类似,区别在于每次只随机选取一个样本求梯度更新参数。在实验中借助random.randint函数随机选择100个训练样本中的1个样本求梯度。
为了便于比较,当SGD迭代与BGD相近的时间(1000s)时终止迭代,运行train.py并传递相应的参数如下图所示。 3.小批量梯度下降法(Mini-Batch-GD)小批量梯度下降法是批量梯度下降法和随机梯度下降法的折中,对于m个样本选取其中的x(1<x<m)个样本进行迭代。在实验中借助random.sample函数随机选择100个训练样本中的10个样本求梯度。
同样地,当mini-GD迭代与BGD相近的时间(1000s)时终止迭代,运行train.py并传递相应的参数如下图所示。
四、牛顿法实现逻辑回归使用牛顿法同样需要根据error×feature求出梯度:
此外,需要表示出海森矩阵:
在更新参数θ时涉及求海森矩阵(H)的逆矩阵,借助numpy中的函数实现:theta = theta - np.dot(np.linalg.pinv(H), batch_grad),代码详见newton_methods.py 五、借助Pytorch框架实现逻辑回归除了上述实现方法,还可直接借助pytorch框架以torch.nn.BCEWithLogitsLoss()作为损失函数,分别调用Adam、RMSprop、Adagrad优化器实现逻辑回归。 |
|
|
|
|
| 上一篇文章 下一篇文章 查看所有文章 |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| 360图书馆 购物 三丰科技 阅读网 日历 万年历 2026年1日历 | -2026/1/1 18:26:25- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |