本系列是理解一些开源项目中已经存在的例子,并配上一些读书笔记,分享出来,也许对其他一些初学者有用, 如果对于分享出来的代码,有问题. 欢迎大家提问交流.
下面的代码节选至:
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/tools/docker/notebooks/2_getting_started.ipynb
#@test {"output": "ignore"} import tensorflow as tf import numpy as np import matplotlib.pyplot as plt %matplotlib inline # Set up the data with a noisy linear relationship between X and Y. num_examples = 50 X = np.array([np.linspace(-2, 4, num_examples), np.linspace(-6, 6, num_examples)]) #生成矩阵大小为2*50的正态分布的随机数, randn生成的数据数满足:均值为0,方差为1 #用生成的随机数,给X添加噪音 X += np.random.randn(2, num_examples) x, y = X #给x补上bias x_with_bias = np.array([(1., a) for a in x]).astype(np.float32) losses = [] training_steps = 50 learning_rate = 0.002 with tf.Session() as sess: # Set up all the tensors, variables, and operations. input = tf.constant(x_with_bias) target = tf.constant(np.transpose([y]).astype(np.float32)) weights = tf.Variable(tf.random_normal([2, 1], 0, 0.1)) tf.global_variables_initializer().run() yhat = tf.matmul(input, weights) yerror = tf.subtract(yhat, target) #l2不是我们常说的l2 regularaztion(正则化),而是平方差也就是标准误差,更接近L2范式 loss = tf.nn.l2_loss(yerror) #如何识别weights就是可以update的变量,然后通过调整来逼近最小值? #https://stackoverflow.com/questions/34477889/holding-variables-constant-during-optimizer update_weights = tf.train.GradientDescentOptimizer(learning_rate).minimize(loss) for _ in range(training_steps): # Repeatedly run the operations, updating the TensorFlow variable. update_weights.run() losses.append(loss.eval()) # Training is done, get the final values for the graphs betas = weights.eval() #基于最新的Weights计算Y的估计值 yhat = yhat.eval() # Show the fit and the loss over time. fig, (ax1, ax2) = plt.subplots(1, 2) #调整2个子图的水平间距 plt.subplots_adjust(wspace=.3) #设置整个画布的大小(inches) fig.set_size_inches(10, 4) #x, y的抽样统计,因为有误差,所以会围绕线条波动 ax1.scatter(x, y, alpha=.7) # X 和 Y的估值画点, 估值是计算出来的,所以会落在线条上 # c="g" => short color code (rgbcmyk), g is green ax1.scatter(x, np.transpose(yhat)[0], c="g", alpha=.6) #画线条(只计算起止的2个点, 2点定一线) line_x_range = (-4, 6) ax1.plot(line_x_range, [betas[0] + a * betas[1] for a in line_x_range], "g", alpha=0.6) #Loss逐渐减少的趋势画图 ax2.plot(range(0, training_steps), losses) ax2.set_ylabel("Loss") ax2.set_xlabel("Training steps") plt.show()
相关推荐
机器学习大作业-基于线性回归的PM2.5预测项目python源码(95分以上)个人经导师指导并认可通过的高分大作业设计项目。主要针对计算机相关专业的正在做期末大作业设计的学生和需要项目实战练习的学习者,可作为课程...
线性回归是一种基础且重要的统计学与机器学习方法,它用于预测一个连续数值型的输出变量,基于一个或多个输入变量。线性回归的核心思想是寻找一条直线(在一维情况下)或超平面(在多维情况下)来最好地拟合数据,这...
在机器学习领域,预测天气是一项复杂且具有挑战性的任务,涉及到大量的数据分析和模式识别。本主题将探讨如何利用逻辑回归和线性回归这两种常见的预测模型来进行天气预报。 首先,我们来了解一下逻辑回归。逻辑回归...
机器学习-线性回归的测试数据,只是为了我那个博客提供数据而已。
机器学习大作业-Python实现基于线性回归的PM2.5预测项目源码(高分期末大作业),个人经导师指导并认可通过的98分大作业设计项目,主要针对计算机相关专业的正在做课程设计、期末大作业的学生和需要项目实战练习的...
机器学习大作业-基于线性回归的PM2.5预测系统python源码(期末大作业)个人经导师指导并认可通过的98分大作业设计项目,主要针对计算机相关专业的正在做课程设计、期末大作业的学生和需要项目实战练习的学习者。...
机器学习大作业-机器学习分类-回归-聚类算法项目源码(共八次高分作业项目).zip 已获老师指导并通过的高分大作业设计项目,可作为期末大作业和课程设计,纯手打高分项目,小白实战没难度。 机器学习大作业-机器...
线性学习预测网店销售额的数据集
在本项目中,我们探索了如何使用Rust编程语言实现两个经典的机器学习算法:k-means聚类算法和线性回归。Rust以其强大的类型系统、内存安全特性和高性能著称,使其成为开发高效计算密集型算法的理想选择,如机器学习...
机器学习--基于线性回归的PM2.5预测 介绍 机器学习大作业--基于线性回归的PM2.5预测 收集合肥地区过去一段时间(例如过去一年每个月的平均值)的空气质量(例如pm2.5值),然后构建回归模型,能够预测今年某个月的...
机器学习--基于线性回归的PM2.5预测 介绍 机器学习大作业--基于线性回归的PM2.5预测 收集合肥地区过去一段时间(例如过去一年每个月的平均值)的空气质量(例如pm2.5值),然后构建回归模型,能够预测今年某个月的...
机器学习大作业-Python实现基于线性回归的PM2.5预测项目源码(95分以上),个人经导师指导并认可通过的高分大作业设计项目。主要针对计算机相关专业的正在做期末大作业设计的学生和需要项目实战练习的学习者,可作为...
1、资源内容:SJTU机器学习大作业-关于线性回归模型和分类问题的应用 线性回归主要是解决波士顿房价预测问题 2、代码特点:内含运行结果,不会运行可私信,参数化编程、参数可方便更改、代码编程思路清晰、注释明细...
线性回归是机器学习中最基础且重要的算法之一,它在各种数据分析和预测任务中发挥着关键作用。本教程将深入探讨线性回归的原理、应用和实现,通过项目实战和源码解读帮助读者掌握这一核心技能。 首先,线性回归是一...
实验介绍 ...本实验介绍线性回归算法,并通过小实验简单认识一下线性回归算法 。 实验1:用线性回归找到最佳拟合直线 实验2:局部加权线性回归找到最佳拟合直线 实验3:使用scikit-learn实现线性回归算法
机器学习
完成一个线性回归的算法,其中train.npz是数据 读取数据的方式为: import numpy as np data = np.load("train.npz") x_array,y_array = data['x'],data['y'] 其中x_array是对2000组特征,每个特征为五维,y_array是...
### 机器学习之线性回归详解 #### 一、引言与背景介绍 在机器学习领域,线性回归是一种常用的基础算法,适用于处理各种回归任务。然而,在实际应用中,并不是所有的数据都能够很好地通过简单的线性关系进行描述。...