【python手写算法】利用梯度下降实现线性拟合

这篇具有很好参考价值的文章主要介绍了【python手写算法】利用梯度下降实现线性拟合。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

利用梯度下降实现线性拟合,效果和sklearn LinearRegression()差不多。
学习率初始设置为0.1结果算高的,直接让我的参数变成了nan。(体会到了飞出去的感觉)
把学习率调小了之后就正常了

# coding=utf-8
import matplotlib.pyplot as plt
import numpy as np
if __name__ == '__main__':
    X =[12.46, 0.25, 5.22, 11.3, 6.81, 4.59, 0.66, 14.53, 15.49, 14.43,
        2.19, 1.35, 10.02, 12.93, 5.93, 2.92, 12.81, 4.88, 13.11, 5.8]
    Y =[29.01, 4.7, 22.33, 24.99, 18.85, 14.89, 10.58, 36.84, 42.36, 39.73,
        11.92, 7.45, 22.9, 36.62, 16.04, 16.56, 31.55, 20.04, 35.26, 23.59]
    w=1
    b=0.1
    a=0.01 # 学习率
    w_temp=-100
    b_temp=-100
    wchange = 100
    bchange = 100
    while abs(wchange)>1e-12 and abs(bchange)>1e-12:
        print(wchange)
        wchange=0
        bchange=0
        for i in range(len(X)):
            wchange+=(w*X[i]+b-Y[i])*X[i]
            bchange+=w*X[i]+b-Y[i]
        wchange/=len(X)
        bchange /= len(X)
        w_temp=w-a*wchange
        b_temp=b-a*bchange
        w=w_temp
        b=b_temp
    print("y=%.4f*x+%.4f" % (w, b))



    # 简单画图显示
    plt.scatter(X, Y, c="blue")
    Y_predict=[]
    for i in range(len(X)):
        Y_predict.append(w*X[i]+b)
    plt.plot(X, Y_predict, c="red")
    plt.show()
    print(Y_predict)

【python手写算法】利用梯度下降实现线性拟合,人工智能,python项目,python,算法,开发语言,机器学习
【python手写算法】利用梯度下降实现线性拟合,人工智能,python项目,python,算法,开发语言,机器学习文章来源地址https://www.toymoban.com/news/detail-550481.html

到了这里,关于【python手写算法】利用梯度下降实现线性拟合的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【算法系列】非线性最小二乘求解-梯度下降法

    ·【算法系列】卡尔曼滤波算法 ·【算法系列】非线性最小二乘求解-直接求解法 ·【算法系列】非线性最小二乘求解-梯度下降法 ·【算法系列】非线性最小二乘-高斯牛顿法  ·【算法系列】非线性最小二乘-列文伯格马夸尔和狗腿算法  文章目录 系列文章 文章目录 前言 一、

    2024年02月16日
    浏览(33)
  • python机器学习(三)特征预处理、鸢尾花案例--分类、线性回归、代价函数、梯度下降法、使用numpy、sklearn实现一元线性回归

    数据预处理的过程。数据存在不同的量纲、数据中存在离群值,需要稳定的转换数据,处理好的数据才能更好的去训练模型,减少误差的出现。 标准化 数据集的标准化对scikit-learn中实现的大多数机器学习算法来说是常见的要求,很多案例都需要标准化。如果个别特征或多或

    2024年02月16日
    浏览(31)
  • 线性回归梯度下降py实现

    2024年02月02日
    浏览(35)
  • 【深度学习实验】线性模型(二):使用NumPy实现线性模型:梯度下降法

    目录 一、实验介绍 二、实验环境 1. 配置虚拟环境 2. 库版本介绍 三、实验内容 0. 导入库 1. 初始化参数 2. 线性模型 linear_model 3. 损失函数loss_function 4. 梯度计算函数compute_gradients 5. 梯度下降函数gradient_descent 6. 调用函数               使用NumPy实现线性模型:梯度下降法

    2024年02月07日
    浏览(37)
  • 举例说明基于线性回归的单层神经网络网络(以梯度下降算法来求解权重的过程)...

    我们将通过一个简单的例子来说明基于线性回归的单层神经网络,以及如何使用梯度下降算法来求解权重。 假设我们有以下数据集,表示学生的学习时间(小时)与他们的考试分数: 学习时间(X):1, 2, 3, 4, 5 考试分数(Y):2, 4, 6, 8, 10 这是一个线性关系,我们可以使用线

    2024年02月16日
    浏览(74)
  • 优化算法之梯度下降|Matlab实现梯度下降算法

    题目要求: 使用Matab实现梯度下降法 对于函数: min ⁡ f ( x ) = 2 x 1 2 + 4 x 2 2 − 6 x 1 − 2 x 1 x 2 min f(x)=2 x_{1}^{2}+4 x_{2}^{2}-6 x_{1}-2 x_{1} x_{2} min f ( x ) = 2 x 1 2 ​ + 4 x 2 2 ​ − 6 x 1 ​ − 2 x 1 ​ x 2 ​ 试采用 MATLAB实现最速下降法求解该问题, 给出具体的迭代过程、 最终优化结果、

    2024年02月16日
    浏览(40)
  • [Machine learning][Part4] 多维矩阵下的梯度下降线性预测模型的实现

    目录 模型初始化信息: 模型实现: 多变量损失函数: 多变量梯度下降实现: 多变量梯度实现: 多变量梯度下降实现: 之前部分实现的梯度下降线性预测模型中的training example只有一个特征属性:房屋面积,这显然是不符合实际情况的,这里增加特征属性的数量再实现一次

    2024年02月06日
    浏览(35)
  • pytorch实现梯度下降算法例子

    如题,利用pytorch,通过代码实现机器学习中的梯度下降算法,求解如下方程: f ′ ( x , y ) = x 2 + 20 y 2 {f}\\\'(x,y) = x^2 + 20 y^2 f ′ ( x , y ) = x 2 + 20 y 2 的最小值。 Latex语法参考:https://blog.csdn.net/ViatorSun/article/details/82826664 输出结果: 最终结果为:(x,y,z)=(397.85867, 0.00000, 158291.51945),迭

    2024年02月15日
    浏览(29)
  • RANSAC算法在Python中的实现与应用探索:线性拟合与平面拟合示例

    第一部分:RANSAC算法与其应用 在我们的日常生活和多个领域中,如机器学习,计算机视觉,模式识别等,处理数据是一个非常重要的任务。尤其是当我们需要从嘈杂的数据中获取信息或拟合模型时。有时候,数据可能包含异常值或噪声,这可能会对我们的结果产生重大影响。

    2024年02月13日
    浏览(31)
  • 机器学习——线性回归、梯度下降

    监督学习 :学习数据带有标签 无监督学习 :没有任何的标签,或者有相同的标签 其他:强化学习、推荐系统等 还是房价预测的例子, 训练集如下: 定义各个变量的含义如下: m——代表训练集中实例的数量 x——代表特征/输入变量 y——代表目标变量/输出变量 (x,y)——代

    2024年02月07日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包