手把手教你用 TensorFlow 实战线性回归问题

线性回归问题:Tensorflow2实战 文章目录前言环境一、基本原理和概念1.线性回归2.回归分析3.机器学习系统4.监督式机器学习5.标签和特征6.超参数7.梯度下降法二、进入实战1.准备数据2.构建模型3.训练模型4.进行预测总结 前言 最近准备入门图像识别领域,在了解图像识别的基本原理之后但是苦于一直不知道该如何开始自己的第一个项目, 在看了几种不同的网课之后,终于发现了《深度学习应用开发-TensorFlow实践》。这是大学mooc的一门课,讲解浅显易懂,并且很容易上手, 阅读详情

作者:来自读者投稿

来源:Python数据之道

TensorFlow 实战线性回归问题

线性回归 (Linear Regression) 是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析,用来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,运用十分广泛。线性回归问题也是机器学习的入门级知识,下面就和小编一起来学习一下用 Python + TensorFlow 如何实现线性回归吧!

1、线性回归方程

单变量的线性回归方程可以表示为:

y=w*x+b

本例我们将通过代码来生成一个人工数据集。随机生成一个近似采样随机分布,使得w=2.0,b=1,并加入一个噪声,噪声的最大振幅为0.4。即方程表示为:

y=2.0*x+1

2、人工数据集生成

%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
import tensorflow as tf
# 设置随机数种子
np.random.seed(5)
#采用np生成等差数列,生成100个点,每个点取值在-1到1之间
x_data = np.linspace(-1,1,100)
# y=2x+1,其中,噪声的维度与x_data一致
y_data = 2*x_data + 1.0 + np.random.randn(*x_data.shape)*0.4
#画出随机生成的数据散点图
plt.scatter(x_data,y_data)
#画出我们想要学习的线性函数y=2x+1
plt.plot(x_data, 2*x_data+1.0, color='red',linewidth=3)

3、构建模型

首先定义训练数据的占位符,x 是特征值,y 是标签值

x = tf.placeholder("float",name="x")
y = tf.placeholder("float",name="y")

定义模型函数

def model(x,w,b):
    return tf.multiply(x,w) + b

定义模型结构,创建变量

#构建线性函数斜率,变量w
w = tf.Variable(1.0,name="w0")
#构建线性函数截距,变量b
b = tf.Variable(0.0,name="b0")
#pred是预测值,前向计算
pred = model(x,w,b)

4、训练模型

设置训练参数

#迭代次数
train_epochs = 10
#学习率
learning_rate = 0.05

5、定义损失函数和优化器

损失函数用于描述预测值与真实值之间的误差,从而指导模型的收敛方向

#采用均方差作为损失函数
loss_function = tf.reduce_mean(tf.square(y-pred))

定义优化器,初始化一个 GradientDescentOptimizer

设置学习率和优化目标:最小化损失

#梯度下降优化器
optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(loss_function)

6、创建会话

声明会话

sess = tf.Session()

变量初始化

init = tf.global_variables_initializer()
sess.run(init)

7、迭代训练

模型训练阶段,设置迭代次数,每次通过将样本逐个输入模型,进行梯度下降优化操作,每轮迭代后,绘制出模型曲线

#开始训练,轮数为epoch,采用SGD随机梯度下降方法
for epoch in range(train_epochs):
    for xs,ys in zip(x_data,y_data):
        _,loss = sess.run([optimzer.loss_function],feed_dict={x:xs,y:ys})
    b0temp = b.eval(session=sess)
    w0temp = w.eval(session=sess)
    plt.plot(x_data,w0temp*x_data+b0temp)

从图中可以看出,该例子所拟合的模型较简单,训练 3 次以后已经接近收敛。对于复杂的模型需要更多次的训练才能收敛。

8、训练结果的可视化

plt.scatter(x_data,y_data,label='Original data')
plt.plot(x_data,x_data*sess.run(w)+sess.runn(b),label='Fitted line',color='r')

打印结果

print("w: ",sess.run(w)) # w应该在2附近
print("b: ",sess.run(b)) # b应该在1附近

w:1.90116

b:1.02581

注意:数据每次运行都可能有所不同。

9、利用模型进行预测

x_test = 3.21
predict = sess.run(pred,feed_dict={x:x_test})
print("预测值:%f" % predict)
target = 2*x_test + 1.0
print("目标值:%f" % target)

预测值:7.128515

目标值:7.420000

10、小结

采用 TensorFlow 进行算法设计与训练的核心步骤为:

  • 准备数据

  • 构建模型

  • 训练模型

  • 进行预测

上述步骤是我们使用 TensorFlow 进行算法设计和训练的核心步骤,适应于所有机器学习的项目。

- end -





用TensorFlow解决线性回归问题 我们都很关心房价,对于一套房子,它到底值多少钱呢?我们能否建立一个模型来测算一套房子的价格?影响房子价格的因素比较多,如面积、地理位置、朝向、楼层、学位等。为了简化问题,我们暂且只考虑面积因素。我们到链家上找一些数据,下表是后海宝能太古城的面积与价格数据: 面积(平米) 价格(万) 43 448 46 500 47 520 59 62 阅读详情

相关推荐

tensorflow实战—多变量线性回归

数据集: 用波士顿房价作为数据集,波士顿房价数据集(Boston House Price Dataset)使用sklearn.datasets.load_boston即可加载相关数据。该数据集包含美国人口普查局收集的美国马萨诸塞州波士顿住房价格的有关信息, 数据集很小,只有506个案例。该数据集是一个回归问题。每个类的观察值数量是均等的,共有 506 个观察,13 个输入变量和1个输出变量。 ...

zqzq19950725的博客 1619

TensorFlow笔记之多元线性回归

记录使用TensorFlow1.x和TensorFlow2.x完成多元线性回归的过程。

qq_53715621的博客 981

TensorFlow 2 实现线性回归和非线性回归

1. 线性回归 1.1 导库 import numpy as np import keras from keras.models import Sequential from keras.layers import Dense import matplotlib.pyplot as plt 1.2 生成数据   其中np.random.rand是生成[0, 1]的数据。np.random.ran...

herosunly的博客 1万+

16- TensorFlow实现线性回归和逻辑回归 (TensorFlow系列) (深度学习)

定义线性模型# 定义损失函数# 定义优化器# 定义优化过程# 把需要求导的计算过程放入gradient pape中执行,会自动实现求导# 计算梯度# 更新w, b# 定义预测变量# 定义损失# y_pred 是概率,存在可能性是0, 需要进行截断# 定义优化器# 计算预测值pred = sigmoid(x) # 结果为概率#计算梯度# 更新W, B# 计算准确率# 需要把概率转换为类别# 概率大于0.5 可以判断为正例。

March_A的博客 2068

TensorFlow2 入门指南 | 02 回归问题实战之线性回归

TensorFlow2从零到一,手牵手带你入门TensorFlow2。

不积跬步,无以至千里! 4515

【Creator】cocoscreator 2.4 apk还原为工程 (1)

Cocos Creator 2.4 还原图片 meta文件

jokesuser的博客 2260

TensorFlow 2.0 model的predict()方法详解以及自定义predict实现预测数据和真实数据配对输出

TensorFlow模型训练过程中`fit()`可以直接设置`validation_data`为test数据集来测试模型的性能。但是通常我们要绘制模型的真实数据和预测数据的展示图,就需要输出模型的预测值。在使用Dataset作为模型输入时,由于其具有迭代器特征以及自动的shuffle,会使得预测值和真实值的数据排序顺序不一致,这时可以自定义predict过程,实现预测值和真实值的配对输出

yue81560的博客 5万+

配置VS Code使用Linux服务器上的Matlab

0、需求 Linux服务器上安装有Matlab 无图形界面,只能使用命令行工具,编辑文件不方便 1、VS Code插件安装 在扩展商店中搜索matlab,会出现Matlab Extension Pack,里面有整理好的matlab扩展 这里只安装了第一排的三个扩展 2、设置(Windows、Mac的设置类似,只是不同系统的文件路径不同) 安装好扩展,重启VS Code后,进行设置 打开:文件→首选项→设置(或快捷键ctrl+,),搜索matlab,结果如下图所示;直接打开完整json配置文件(图

赵彬的博客 5011

使用TensorFlow实现简单的线性回归(LinearRegression)

线性模型基本形式 : 线性回归属于回归算法,表达监督学习的过程。通过属性的线性组合来预测函数:f(x)=w1x1+w2x2+...+wdxd+b \bbox[,5px,border:1px solid black] { {f(x)} = {w_1x_1+w_2x_2+...+w_dx_d}+{b} }一般向量形式写成:f(x)=wTx+b \bbox[,5px,border:1px solid

Rogel_Liu的博客 2837

使用基于物质点法(MPM)的Anura3D模拟沙柱坍塌

本博客使用开源软件Anura3D软件模拟了一个沙柱坍塌的过程,这个软件是基于基于物质点法(MPM)设计的

weixin_59902634的博客 4050

[Bug已解决] CUDA error 尽管 CUDA 可用且 GPU 受支持-通用排查 RuntimeError 解决方案

[Bug已解决] CUDA error 尽管 CUDA 可用且 GPU 受支持-通用排查 RuntimeError 解决方案

一键难忘的博客 2416

线性回归详解及Tensorflow实战

0x01 线性回归概述 线性回归()是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法 其表达形式为y = w'x+e,e为误差服从均值为0的正态分布 线性回归可能是统计学和机器学习中最著名和最容易理解的算法之一 在统计学中,线性回归是一种对标量响应和一个或多个解释变量(也称为因变量和自变量)之间的关系进行建模的线性方法 一个解释变量的情况称为简单线性回归(simple linear regression) 对于多个,这个过...

weixin_43211186的博客 1858

2026年AI视频生成大模型全景指南:国内外主流工具深度对比与选型建议

AI视频生成技术在2025年至2026年间取得了突破性进展,从"能用"进化到"好用",商业化应用加速落地。中美双轨竞争格局基本成型,国内模型在技术追赶和本土化体验方面展现出强劲竞争力。对于用户而言,选择合适的AI视频生成工具需要综合考虑技术性能、使用门槛、成本预算和具体需求。零基础新手推荐海艺AI、通义万相等低门槛工具;进阶创作者可根据需求选择可灵AI、即梦AI、海艺AI等;专业开发者和企业用户可考虑智谱清影的开源能力或可灵AI的商业化服务。

nmdbbzcl的博客 2851

实战五:手把手教你用TensorFlow进行房价预测

实战TensorFlow房价预测 目录 房价预测模型介绍 使用TensorFlow实现房价预测模型 使用TensorBoard可视化模型数据流图 一、房价预测模型介绍 1.前置知识 2.单变量房价预测问题 问题描述: 根据房屋面积x来预测其销售价格y # 导包 # pandas是一个BSD开源协议许可的,面向python用户的高性能和易于上手的数据结构化和数据分析工具 # seaborn是一...

Mind_programmonkey的博客 8439

在Ubuntu系统中安装和使用wxPython进行Python图形用户界面(GUI)开发

在本文中,我将向您展示如何在Ubuntu系统上安装和使用wxPython,并提供一些示例代码来帮助您开始使用这个强大的工具。在MyFrame的构造函数中,我们创建了一个wx.Panel和一个按钮,并将按钮的点击事件绑定到一个自定义的方法on_button_click上。最后,我们创建了一个wx.App的实例,创建了一个MyFrame对象并显示它,最后通过调用app.MainLoop()启动应用程序的主事件循环。这只是一个简单的示例,但它演示了如何使用wxPython创建一个基本的GUI应用程序。

qq_37934722的博客 1040

Android 埋点信息分析——statsd框架

StatsPullAtomService 用以采集数据,并将数据填充到参数中,在StatsManager.PullAtomCallbackInternal 中会转换成 Parcel 格式传入到 native。 StatsCallbackPuller::PullInternal 中会回调StatsManager.PullAtomCallbackInternal 的onPullAtom,该函数中会回调StatsCallbackPuller::PullInternal 中定义的PullResultRecei

私房菜 2631

【深度学习】Tensorflow完成线性回归对比机器学习LinearRegression()

首先构建一个线性的点状图 import warnings warnings.filterwarnings('ignore') import numpy as np import matplotlib.pyplot as plt %matplotlib inline from sklearn.linear_model import LinearRegression import tensorflow...

Allen . Liu 1157

手势识别器:实现手部动作识别器

在本篇文章中,我们将使用Python来实现一个简单的手部动作识别器。然后,我们通过循环从摄像头获取每一帧图像,并对每一帧图像进行处理。我们提取手部关键点并计算手势的特征向量,然后将其添加到特征列表和标签列表中。接下来,我们再次从摄像头获取每一帧图像,并进行手势识别。我们提取手部关键点并计算手势的特征向量,然后使用训练好的分类器来预测手势,并在图像上显示出来。在这个实现中,我们将使用MediaPipe库来检测和跟踪手部关键点,然后使用K最近邻(K-Nearest Neighbors)算法对手势进行分类。

BitSlinger的博客 241

基于TensorFlow框架的线性回归实现

线性回归是一种预测分析方法,用于确定两个或多个变量之间关系的强度和方向。最简单的线性回归模型是一元线性回归,只涉及一个自变量和一个因变量,其模型表达式为:其中,() 是因变量,() 是自变量,() 是截距,() 是斜率,而 () 是误差项。当我们有更多的自变量时,模型就变成了多元线性回归。线性回归的目标是找到最佳拟合线,使得预测值与实际值之间的差异最小,这种差异通常通过损失函数来量化,最常用的损失函数是均方误差(MSE)。

ciweic的博客 1549

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

tensorflow实现LinearRegression

撰写时间:2017.5.18这篇博文记录的是如何使用tensorflow实现LR,其中没有使用tensorflow提供的learn包里面的函数.因为如果使用函数包里面的API,不仅数据格式处理麻烦,而且扩展性不强.所以就自己实现了一下.运行环境:ubuntu14.04,python2.7,tensorflow0.12 数据集:波士顿房价 loss:平方损失函数 优化方法:梯度下降下面直接贴代码

selous的专栏 2683

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

TensorFlow——实现简单的线性回归

一、线性回归原理 根据数据建立回归模型,w1x1+w2x2+…..+b = y,通过真实值与预测值之间建立误差,使用梯度下降优化得到损失最小对应的权重和偏置。最终确定模型的权重和偏置参数。最后可以用这些参数进行预测。 二、案例:实现线性回归的训练 1 .案例确定 假设随机指定100个点,只有一个特征 数据本身的分布为 y = 0.7 * x + 0.8 这里将数据分布的规...

weixin_42008209的博客 8723

TensorFlow2 手把手实现线性回归

TensorFlow2 手把手实现线性回归.

我是小白呀的博客 5609

用TensorFlow实现线性回归(包括过程中出现的问题及解决方法)

用TensorFlow实现线性回归实验

吃鱼从来不吐刺的博客 6546

数据挖掘从入门到放弃(七):TensorFlow和keras实现线性回归LinearRegression

从实践出发学习TensorFlow和teras机器学习框架,分别用tf和keras实现线性模型,两者区别在于前者相当于手推了线性回归模型,后者使用单层的感知机,很便捷。相同内容更新在:h...

数据一哥,公众号:数据社 1万+

线性回归问题TensorFlow实战

使用Tensorflow进行算法设计与训练的核心步骤 准备数据 构建模型 训练模型 进行预测 上述是使用Tensorflow进行算法设计与训练的核心步骤,下面使用一个简单的例子来讲解这几个步骤 线性回归的步骤 Model–set a function Goodness of function(衡量函数的好坏) how? Loss Function(使用损失函数来衡量函数的好坏) Bes...

burning1996的博客 393
上一篇: 模型部署神器:高中生也能读懂的Docker入门教程
下一篇: 速度提升、准确率更胜一筹,周志华等人提出可微XGBoost算法sGBM
Wang_AI
博客等级 码龄12年 997粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值