使用tensorflow实现最简单的线性回归算法

 1         #线性回归:用线性模型y=Wx+b拟合sin
 2         import numpy as np
 3         import matplotlib.pyplot as plt
 4         import tensorflow as tf
 5
 6         #数据,标签
 7         x_data  = np.linspace(-2*np.pi,2*np.pi,300)
 8         noise = np.random.normal(-0.01,0.05,x_data.shape)
 9         y_label = np.sin(x_data) + noise
10         plt.rcParams[‘font.sans-serif‘]=[‘FangSong‘] # 用来正常显示中文标签
11         plt.rcParams[‘axes.unicode_minus‘]=False# 用来正常显示负号
12         plt.title(‘线性模型y=Wx+b拟合sin‘)
13         plt.legend()
14         plt.grid(True)
15         plt.plot(x_data, y_label, ‘b.‘, label=‘测试数据‘)
16
17         #静态图定义
18         mg = tf.Graph()
19         with mg.as_default():
20             #图输入
21             X = tf.placeholder("float")
22             Y = tf.placeholder("float")
23
24             #训练权重w,b
25             W = tf.Variable(np.random.randn(), name="weight")
26             b = tf.Variable(np.random.randn(), name="bias")
27
28             #线性模型y=Wx+b
29             pred = tf.add(tf.multiply(X, W), b)
30
31             #损失函数:使用样本方差
32             cost = tf.reduce_sum(tf.pow(pred-Y, 2)) / (len(x_data)-1)
33
34             #使用梯度下降法优化
35             optimizer = tf.train.GradientDescentOptimizer(0.01).minimize(cost)
36
37             #初始化图变量
38             init = tf.group(tf.global_variables_initializer(),
39                             tf.local_variables_initializer())
40
41         with tf.Session(graph=mg) as sess:
42             sess.run(init)
43             for epoch in range(500):
44                 for (x, y) in zip(x_data, y_label):
45                     sess.run(optimizer, feed_dict={X: x, Y: y})
46                 if (epoch+1) % 10 == 0:
47                     c = sess.run(cost, feed_dict={X: x_data, Y:y_label})
48                     print(‘epoch={:} cost={:0.6f} W={:0.6f} b={:0.6f}‘.format(epoch+1,c,sess.run(W),sess.run(b)))
49             training_cost = sess.run(cost, feed_dict={X: x_data, Y: y_label})
50             print(‘训练结果 cost={:0.6f} W={:0.6f} b={:0.6f}‘.format(training_cost,sess.run(W),sess.run(b)))
51             plt.plot(x_data, sess.run(W) * x_data + sess.run(b),‘r--‘ , label=‘拟合数据‘)
52             plt.legend()
53         plt.show()


使用tensorflow实现最简单的线性回归算法

原文地址:https://www.cnblogs.com/ace007/p/10360547.html

时间: 2024-09-30 15:17:42

使用tensorflow实现最简单的线性回归算法的相关文章

机器学习--线性回归算法的原理及优缺点

一.线性回归算法的原理 回归是基于已有数据对新的数据进行预测,比如预测股票走势.这里我们主要讲简单线性回归.基于标准的线性回归,可以扩展出更多的线性回归算法. 假设我们找到了最佳拟合的直线方程 : , 则对每一个样本点    ,根据我们的直线方程,预测值为:,其对应的真值为   . 我们希望    和   的差距尽量小,这里我们用   表达   和  的距离, 考虑所有样本则为: 我们的目标是使   尽可能小,而    ,所以我们要找到  a .b  ,使得  尽可能小. 被称为损失函数或效用函

简单线性回归算法

/**  * 简单线性回归算法  * @param array y轴数据  * @param array x轴数据  * @returns array(slope,intercept,r2)  */ function linearRegression(y, x) {     var lr = {};     var n = y.length;     var sum_x = 0;     var sum_y = 0;     var sum_xy = 0;     var sum_xx = 0;

使用tensorflow进行简单的线性回归

使用tensorflow进行简单的线性回归 标签(空格分隔): tensorflow 数据准备 使用np.random.uniform()生成x方向的数据 使用np.random.uniform()生成bias数据 直线方程为y=0.1x + 0.2 使用梯度下降算法 代码 import numpy as np import tensorflow as tf path = 'D:\tensorflow_quant\ailib\log_tmp' # 生成x数据 points = 100 vecto

第二篇[机器学习] 学习机器学习,从最简单的线性回归开始

机器学习,分为监督学习和无监督学习,监督学习里有回归和分类,分类有线性回归和逻辑回归. 从最简单的线性回归开始: 通过已有数据需要预测的线性方程: 实际值和预测值的误差,求最小误差函数(最小二乘法): 1.梯度下降法: 其中ε是步长,步长越大,下降越快,但是可能到不了局部最小值,步长越小,下降越慢,计算越多 2.正规方程直接求解: 最小二乘法正规方程组的详细推导: https://zhuanlan.zhihu.com/p/28190949?utm_medium=social&utm_source

scikit-learn 线性回归算法库小结

scikit-learn对于线性回归提供了比较多的类库,这些类库都可以用来做线性回归分析,本文就对这些类库的使用做一个总结,重点讲述这些线性回归算法库的不同和各自的使用场景. 线性回归的目的是要得到输出向量YY和输入特征XX之间的线性关系,求出线性回归系数θθ,也就是 Y=XθY=Xθ.其中YY的维度为mx1,XX的维度为mxn,而θθ的维度为nx1.m代表样本个数,n代表样本特征的维度. 为了得到线性回归系数θθ,我们需要定义一个损失函数,一个极小化损失函数的优化方法,以及一个验证算法的方法.

《BI那点儿事》Microsoft 线性回归算法

原文:<BI那点儿事>Microsoft 线性回归算法 Microsoft 线性回归算法是 Microsoft 决策树算法的一种变体,有助于计算依赖变量和独立变量之间的线性关系,然后使用该关系进行预测.该关系采用的表示形式是最能代表数据序列的线的公式.例如,以下关系图中的线是数据最可能的线性表示形式. 关系图中的每个数据点都有一个与该数据点与回归线之间距离关联的错误.回归方程式中的系数 a 和 b 可以调整回归线的角度和位置.可以对 a 和 b 进行调整,直到与所有点都关联的错误总数达到最低值

通过机器学习的线性回归算法预测股票走势(用Python实现)

在本人的新书里,将通过股票案例讲述Python知识点,让大家在学习Python的同时还能掌握相关的股票知识,所谓一举两得.这里给出以线性回归算法预测股票的案例,以此讲述通过Python的sklearn库实现线性回归预测的技巧. 本文先讲以波士顿房价数据为例,讲述线性回归预测模型的搭建方式,随后将再这个基础上,讲述以线性预测模型预测股票的实现代码.本博文是从本人的新书里摘取的,新书预计今年年底前出版,敬请大家关注. 正文开始(长文预警) ------------------------------

Spark MLlib Linear Regression线性回归算法

1.Spark MLlib Linear Regression线性回归算法 1.1 线性回归算法 1.1.1 基础理论 在统计学中,线性回归(Linear Regression)是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析.这种函数是一个或多个称为回归系数的模型参数的线性组合. 回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析.如果回归分析中包括两个或两个以上的自变量,且因变量和自变量之间

简单的PHP算法题(带扩充)

简单的PHP算法题(待完善…) 只打印0 具体个数由输入的参数n决定 如n=5就打印00000 根据n值打印n个0 打印一行 0101010101010101010101 具体个数由输入的参数n决定 如test.php?n=3打印010 根据n值打印010101… 实现1 00 111 0000 11111 for if 实现 <?php for ($i = 0; $i < 10; $i++) { for ($j = 0; $j <= $i; $j++) { if ($i % 2 ==