程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2023-06(4)

实现一元线性回归拟合-梯度下降实现python

发布于2020-02-14 21:06     阅读(822)     评论(0)     点赞(30)     收藏(5)


对于给定训练集
  • 1
x = [4,8,5,10,12]
y = [20,50,30,70,60]
  • 1
参数的定义以及设置
  • 1
#初始化参数
theta0 = theta1 = 0
#学习率
alpha = 0.00001
#迭代次数
cnt = 0
error0 = error1 = 0
#指定一个阈值,用于检查两次误差
thershold = 0.0000001
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
迭代进行
  • 1

while True:
    #定义梯度 diff[0]-theta0 diff[1]-theta1
    diff = [0,0]
    m = len(x)
    for i in range(m):
        diff[0] = y[i] - (theta0+theta1*x[i])
        diff[1] =(y[i] - (theta0+theta1*x[i]))*x[i]
    theta0 = theta0 + alpha * diff[0]
    theta1 = theta1 + alpha * diff[1]
    #误差计算
    for i in range(m):
        error1 += (y[i] - (theta0+theta1*x[i]))**2
    error1 /= m
    if abs(error1 - error0) < thershold:
        break
    else:error0 = error1
    cnt += 1
    pass
print('theta0',theta0)
print('theta1',theta1)
print('cnt',cnt)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
结果预测
  • 1
print(predict(theta0,theta1,8))
    发布了32 篇原创文章 · 获赞 77 · 访问量 4152


    所属网站分类: 技术文章 > 博客

    作者:大壮

    链接:https://www.pythonheidong.com/blog/article/231557/f1532b4a139a2d4af7ba/

    来源:python黑洞网

    任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

    30 0
    收藏该文
    已收藏

    评论内容:(最多支持255个字符)