import numpy as np # 对给定的离散样本预测构建函数:y=wx+b 计算w b 使得预测y 与 真实的label 最小 ,这里采用均方误差 即 差的平方 做数据研究 points = np.loadtxt('./data.csv', delimiter=',') # print(points,points[0,0],len(points)) def loss(w, b, points): loss = 0 for i in range(len(points)): x = points[i,0] y = points[i,1] # loss = wx+b-label label 也就是数据集点的y值 也就是label loss += (w * x + b - y)**2 return loss/len(points) # 计算loss对w 和 b 的导数 并更新w_new b_new def get_w_b(w_current,b_current,points,lr): w_gradient = 0 b_gradient = 0 # loss 对w导数 对b导数 # 2 * (w * x + b - y) * x 2 * (w * x + b - y) # 计算初始的w b 遍历完所有点最后的累计变化值 for i in range(len(points)): x = points[i,0] y = points[i,1] w_gradient += 2/len(points) * (w_current * x + b_current - y) * x # w_current ++ b_gradient += 2/len(points) * (w_current * x + b_current - y) # b_current ++ # 计算w b累计变化与w b初始值的变化值 w_new = w_current - lr * w_gradient b_new = b_current - lr * b_gradient return w_new, b_new # 迭代 更新 w b def times_update_w_b(w,b,points,lr,num): w_current=w b_current=b for i in range(num): w_current,b_current = get_w_b(w_current,b_current,points,lr) return w_current,b_current def main(points): lr = 0.0001 num = 1000 w = 0 b = 0 minloss = loss(w, b, points) print('当w={0},b={1}时候,loss为{2}'.format(w,b,minloss)) w_new,b_new = times_update_w_b(w,b,points,lr,num) minloss = loss(w_new,b_new,points) print('尊敬的雇主,您好,经过本数据研究小组的测算,贵公司要求预测的参数w={0},b={1}时候,可以使得我们构建的模型得到最小的loss为{2}'.format(w_new,b_new,minloss)) if __name__ == '__main__': main(points)
tensorflow 线性回归推导
时间:2019年09月15日 19:03:35 | 作者 :老马 | 分类 : 业余爱好 | 浏览:839 | 评论:0
本站致力于揭露全国影视投资诈骗案件 避免更多老百姓受骗上当
经历分享 请投稿 |
相关文章
- 2019-09-28图片数据标准化预处理 常用到的两个参数值 mean std 平均值 与 方差 常量
- 2019-09-28tensorflow 谷歌机器学习 之 自定义数据集 之 图片数据 转化为 可处理的tensor类型数据集
- 2019-09-17在训练模型model.compile()中计算loss的常用函数都有哪些?
- 2019-09-17tensorflow学了一个阶段了,做一个小总结
- 2019-09-17机器深度学习tensorflow工具编写手写数字识别程序第二版本带可视化图标
- 2019-09-16 tensorflow算法:手写数字识别练习题
- 2019-09-14关于 pad_Sequence embedding用法 (未完待更新)
- 2019-09-13影视正负面评论数据预处理为向量的方法:one_hot pad_squences举例
- 2019-09-13tensorflow库自动求导函数GradientTape使用
- 2019-09-12tensorflow循环神经网络 之 自定义模型和层完毕后建立训练逻辑的几个重要函数compile、fit、evaluate的使用方法
网络世界,不加微信QQ手机,留言沟通
发表评论