美文网首页程序员简友广场
Python实现梯度下降算法拟合线性数据

Python实现梯度下降算法拟合线性数据

作者: 26da861f0374 | 来源:发表于2019-04-02 21:17 被阅读1次

    本文通过Python编写梯度下降算法来拟合给定的100个点数据,文秘提供了.py源码。


    一、线性回归

    本文的目标是根据给定的100个离散数据,利用梯度下降算法得到线性回归方程。

                                                         y=w*x+b

    因此,关键是求出w和b的值。

    此处利用的是梯度下降算法来求得w和b,首先写出损失函数,即均方差。

                                                        loss=(\hat{y}-y)^2

    即:                                    loss=(w*x+b-y)^2


    二、计算梯度

                                                    w=w-\eta  \frac{\varphi loss}{\varphi w} \

                                                    b=b-\eta \frac{\varphi loss}{\varphi b}

    其中:\eta 为学习率,常设置为0.001;

                                    \frac{\varphi loss}{\varphi w} =2*x*(w*x+b-y)

                                        \frac{\varphi loss}{\varphi b} =2*
(w*x+b-y)


    三、部分代码

    首先计算100个点的平均损失函数。其中,x=points[i,0]代表一个数据点的横坐标。

    然后,计算梯度部分,并更新梯度,然后返回b和w的数组。


    四、 代码地址

    链接:https://pan.baidu.com/s/1kXbgSoCwxhEWuHIQaXOjBg

    提取码:c08b

    -----------------************************---------------------

    申明:本文借鉴于“深度学习与Pytorch入门实战教程”。

    转载请注明出处,谢谢。

    相关文章

      网友评论

        本文标题:Python实现梯度下降算法拟合线性数据

        本文链接:https://www.haomeiwen.com/subject/hvunbqtx.html