TensorFlow 中的线性回归17 Mar 2025 | 5 分钟阅读 线性回归是一种基于监督学习的机器学习算法。它执行回归函数。回归基于自变量对目标预测值进行建模。它主要用于检测变量之间的关系和预测。 线性回归是一个线性模型;例如,一个假设输入变量 (x) 和单个输出变量 (y) 之间存在线性关系的模型。 特别是,y 可以通过输入变量 (x) 的线性组合来计算。 线性回归是一种流行的统计方法,它允许我们从一组连续数据中学习函数或关系。 例如,我们得到了一些 x 的数据点和对应的 y,我们需要知道它们之间的关系,这称为假设。 在线性回归的情况下,假设是一条直线,即, h (x) = wx + b 其中 w 是一个称为权重的向量,而 b 是一个称为偏置的标量。 权重和偏置被称为模型的参数。 我们需要从数据集中估计 w 和 b 的值,以便生成的假设产生至少成本“j”,该成本已由下面的成本函数定义。![]() 其中 m 是特定数据集中的数据点。 这个成本函数称为均方误差。 为了优化参数以使 j 的值最小,我们将使用一种常用的优化器算法,称为梯度下降。 以下是梯度下降的伪代码 其中 ? 是一个超参数,称为学习率。 线性回归的实现我们将开始在 Tensorflow 中导入必要的库。 我们将将 Numpy 与 Tensorflow 一起用于计算,并将 Matplotlib 用于绘图目的。 首先,我们必须导入包 为了使预测的随机数相同,我们必须为 Tensorflow 和 Numpy 定义固定的种子。 现在,我们必须生成一些随机数据来训练线性回归模型。 让我们可视化训练数据。 # 训练数据图 输出 ![]() 现在,我们将通过定义占位符 x 和 y 来开始构建我们的模型,以便在训练过程中将训练样本 x 和 y 输入到优化器中。 现在,我们可以为偏置和权重声明两个可训练的 TensorFlow 变量,使用以下方法随机初始化它们 现在我们定义模型的超参数,学习率和 Epochs 的数量。 现在,我们将构建假设、成本函数和优化器。 我们不会手动实现梯度下降优化器,因为它内置在 TensorFlow 中。 之后,我们将使用该方法初始化变量。 现在我们在 TensorFlow 会话中开始训练过程。 输出如下 Epoch: 50 cost = 5.8868037 W = 0.9951241 b = 1.2381057 Epoch: 100 cost = 5.7912708 W = 0.9981236 b = 1.0914398 Epoch: 150 cost = 5.7119676 W = 1.0008028 b = 0.96044315 Epoch: 200 cost = 5.6459414 W = 1.0031956 b = 0.8434396 Epoch: 250 cost = 5.590798 W = 1.0053328 b = 0.7389358 Epoch: 300 cost = 5.544609 W = 1.007242 b = 0.6455922 Epoch: 350 cost = 5.5057884 W = 1.008947 b = 0.56223 Epoch: 400 cost = 5.473068 W = 1.01047 b = 0.46775345 Epoch: 450 cost = 5.453845 W = 1.0118302 b = 0.42124168 Epoch: 500 cost = 5.421907 W = 1.0130452 b = 0.36183489 Epoch: 550 cost = 5.4019218 W = 1.0141305 b = 0.30877414 Epoch: 600 cost = 5.3848578 W = 1.0150996 b = 0.26138115 Epoch: 650 cost = 5.370247 W = 1.0159653 b = 0.21905092 Epoch: 700 cost = 5.3576995 W = 1.0167387 b = 0.18124212 Epoch: 750 cost = 5.3468934 W = 1.0174294 b = 0.14747245 Epoch: 800 cost = 5.3375574 W = 1.0180461 b = 0.11730932 Epoch: 850 cost = 5.3294765 W = 1.0185971 b = 0.090368526 Epoch: 900 cost = 5.322459 W = 1.0190894 b = 0.0663058 Epoch: 950 cost = 5.3163588 W = 1.0195289 b = 0.044813324 Epoch: 1000 cost = 5.3110332 W = 1.0199218 b = 0.02561669 现在,看看结果。 输出 Training cost= 5.3110332 Weight= 1.0199214 bias=0.02561663 请注意,在这种情况下,权重和偏置都是标量。 这是因为我们仅在训练数据中检查了一个因变量。 如果训练数据集中有 m 个因变量,则权重将是一个一维向量,而偏置将是一个标量。 最后,我们将绘制结果 输出 ![]() 下一主题CNN 介绍 |
我们请求您订阅我们的新闻通讯以获取最新更新。