iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python机器学习之随机梯度下降法如何实现
  • 845
分享到

Python机器学习之随机梯度下降法如何实现

2023-07-05 06:07:29 845人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

本文小编为大家详细介绍“python机器学习之随机梯度下降法如何实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python机器学习之随机梯度下降法如何实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。随机梯

本文小编为大家详细介绍“python机器学习之随机梯度下降法如何实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python机器学习之随机梯度下降法如何实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

随机梯度下降法

为什么使用随机梯度下降法?

如果当我们数据量和样本量非常大时,每一项都要参与到梯度下降,那么它的计算量时非常大的,所以我们可以采用随机梯度下降法。

Python机器学习之随机梯度下降法如何实现

随机梯度下降法中的学习率必须是随着循环的次数增加而递减的。如果eta取一样的话有可能在非常接近我们的最优值时会跳过,所以随着迭代次数的增加,学习率eta要随之减小,我们可以用模拟退火的思想实现(如下图所示),t0和t1是一个常数,定值,其通常是根据经验取得一些值。

Python机器学习之随机梯度下降法如何实现

随机梯度下降法的实现

随机梯度下降法的公式如下图所示,其中挑出一个样本出来计算。

Python机器学习之随机梯度下降法如何实现

先创建x,y,以下取10000个样本

import numpy as npm = 10000x = np.random.random(size=m)y = x*3 + 4 + np.random.nORMal(size=m)

写入函数

def dj_sgd(theta, x_i, y_i): # 传入一个样本,获取对应的梯度    return x_i.T.dot(x_i.dot(theta)-y_i)*2 # MSEdef sgd(X_b, y, initial_theta, n_iters): # 求出整个theta的函数    def learning_rate(i_iter):        t0 = 5        t1 = 50        return t0/(i_iter+t1)    theta = initial_theta    i_iter = 1        while i_iter <= n_iters:        index = np.random.randint(0, len(X_b))        x_i = X_b[index]        y_i = y[index]        gradient = dj_sgd(theta, x_i, y_i) # 求导数        theta = theta - gradient*learning_rate(i_iter) # 求步长        i_iter += 1    return theta

调用函数,求出截距和系数

Python机器学习之随机梯度下降法如何实现

以上随机梯度的缺点是不能照顾到每一点,因此需要进行改进。

以下对其中的函数进行修改。

def dj_sgd(theta, x_i, y_i): # 传入一个样本,获取对应的梯度    return x_i.T.dot(x_i.dot(theta)-y_i)*2 # MSEdef sgd(X_b, y, initial_theta, n_iters): # 求出整个theta的函数    def learning_rate(i_iter):        t0 = 5        t1 = 50        return t0/(i_iter+t1)    theta = initial_theta    m = len(X_b)        for cur_iter in range(n_iters): # 每一次循环都把样本打乱,n_iters的代表整个样本看几轮        random_indexs = np.random.permutation(m)        X_random = X_b[random_indexs]        y_random = y[random_indexs]        for i in range(m):            theta = theta - learning_rate(cur_iter*m+i) * (dj_sgd(theta, X_random[i], y_random[i]))        return theta

与前边运算结果进行对比,其耗时更长。

Python机器学习之随机梯度下降法如何实现

读到这里,这篇“Python机器学习之随机梯度下降法如何实现”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网Python频道。

--结束END--

本文标题: Python机器学习之随机梯度下降法如何实现

本文链接: https://www.lsjlt.com/news/350129.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python机器学习之随机梯度下降法如何实现
    本文小编为大家详细介绍“Python机器学习之随机梯度下降法如何实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python机器学习之随机梯度下降法如何实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。随机梯...
    99+
    2023-07-05
  • Python机器学习之随机梯度下降法的实现
    目录随机梯度下降法随机梯度下降法的实现随机梯度下降法 为什么使用随机梯度下降法? 如果当我们数据量和样本量非常大时,每一项都要参与到梯度下降,那么它的计算量时非常大的,所以我们可以采...
    99+
    2023-02-27
    Python随机梯度下降法 Python梯度下降法 Python梯度下降
  • python机器学习逻辑回归随机梯度下降法
    目录写在前面随机梯度下降法参考文献写在前面 随机梯度下降法就在随机梯度上。意思就是说当我们在初始点时想找到下一点的梯度,这个点是随机的。全批量梯度下降是从一个点接着一点是有顺序的,全...
    99+
    2024-04-02
  • 机器学习(二):线性回归之梯度下降法
    文章目录 专栏导读 1、梯度下降法原理 2、梯度下降法原理代码实现 3、sklearn内置模块实现 专栏导读 ✍ 作者简介:i阿极,CSDN Python领域新星创作者,...
    99+
    2023-09-07
    机器学习 线性回归 python 梯度下降法
  • python中逻辑回归随机梯度下降法怎么用
    这篇文章主要为大家展示了“python中逻辑回归随机梯度下降法怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“python中逻辑回归随机梯度下降法怎么用”这篇文章吧。随机梯度下降法随机梯度下...
    99+
    2023-06-25
  • Python实现梯度下降法的示例代码
    目录1.首先读取数据集2.初始化相关参数3.定义计算代价函数–>MSE4.梯度下降5.执行1.首先读取数据集 导包并读取数据,数据自行任意准备,只要有两列,可以分为...
    99+
    2024-04-02
  • python如何实现梯度下降求解逻辑回归
    线性回归1.线性回归函数似然函数的定义:给定联合样本值X下关于(未知)参数 的函数似然函数:什么样的参数跟我们的数据组合后恰好是真实值 2.线性回归似然函数对数似然: 3.线性回归目标函数(误差的表达式,我们的目的就是使得真实值与预...
    99+
    2023-05-14
    Python
  • 使用Python在实现一个梯度下降算法
    这期内容当中小编将会给大家带来有关使用Python在实现一个梯度下降算法,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究;3...
    99+
    2023-06-06
  • Python实现批量梯度下降法(BGD)拟合曲线
    1. 导入库 import numpy as np #矩阵运算 import matplotlib.pyplot as plt #可视化 import random #产生数据扰...
    99+
    2024-04-02
  • Python实现多元线性回归的梯度下降法
    目录1. 读取数据2.定义代价函数3. 梯度下降4.可视化展示1. 读取数据 首先要做的就是读取数据,请自行准备一组适合做多元回归的数据即可。这里以data.csv为例,这里做的是二...
    99+
    2024-04-02
  • 深入探究Python底层技术:如何实现梯度下降算法
    深入探究Python底层技术:如何实现梯度下降算法,需要具体代码示例引言:梯度下降算法是一种常用的优化算法,广泛应用于机器学习和深度学习领域。本文将深入探究Python底层技术,详细介绍了梯度下降算法的原理和实现过程,并提供具体的代码示例。...
    99+
    2023-11-08
    Python 底层技术 梯度下降算法
  • 图文详解梯度下降算法的原理及Python实现
    目录1.引例2.数值解法3.梯度下降算法4.代码实战:Logistic回归1.引例 给定如图所示的某个函数,如何通过计算机算法编程求f(x)min? 2.数值解法 传统方法是数值解...
    99+
    2024-04-02
  • Python机器学习之PCA降维算法的示例分析
    小编给大家分享一下Python机器学习之PCA降维算法的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、算法概述主成分分析 (Principal Com...
    99+
    2023-06-15
  • Python机器学习实战之k-近邻算法的实现
    目录K-近邻算法概述工作原理实施KNN算法示例:手写识别系统K-近邻算法概述 简单地说, k-近邻算法采用测量不同特征值之间的距离方法进行分类。 k-近邻算法 优点:精度高...
    99+
    2024-04-02
  • Python中如何用XGBoost和scikit-learn进行随机梯度增强
    这篇文章将为大家详细讲解有关Python中如何用XGBoost和scikit-learn进行随机梯度增强,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。集成决策树的一种简单技术涉及在训练数据集...
    99+
    2023-06-15
  • 使用Python实现小批量梯度下降算法的代码逻辑
    让theta=模型参数和max_iters=时期数。对于itr=1,2,3,...,max_iters:对于mini_batch(X_mini,y_mini): 批量X_mini的前向传递: 1、对小批量进行预测 2、使用参数的当...
    99+
    2024-01-22
    算法的概念
  • Python机器学习之如何基于Pytorch实现猫狗分类
    这篇文章给大家分享的是有关Python机器学习之如何基于Pytorch实现猫狗分类的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、环境配置安装Anaconda具体安装过程,请点击本文配置Pytorchpip&n...
    99+
    2023-06-15
  • Python DPED机器学习之实现照片美化
    目录前言环境部署项目结构tensorflow安装其他依赖安装VGG-19下载项目运行准备图片素材测试效果前言 最近发现了一个可以把照片美化的项目,自己玩了玩,挺有意思的,分享一下。 ...
    99+
    2024-04-02
  • Python机器学习之KNN近邻算法
    目录一、KNN概述二、使用Python导入数据三、numpy.array()四、实施KNN分类算法五、计算已知类别数据集中的点与当前点之间的距离六、完整代码七、数据处理、分析、测试八...
    99+
    2024-04-02
  • Python实现机器学习算法的分类
    Python算法的分类 对葡萄酒数据集进行测试,由于数据集是多分类且数据的样本分布不平衡,所以直接对数据测试,效果不理想。所以使用SMOTE过采样对数据进行处理,对数据去重,去空,处...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作