当前位置: 首页 > news >正文

旅游网站建设费用个人网站开发网

旅游网站建设费用,个人网站开发网,重庆seo计费管理,云海建设工程有限公司网站线性回归:从理论到实现 1. 什么是线性回归? 线性回归是一种用于预测因变量(目标值)和自变量(特征值)之间关系的基本模型。它假设目标值(y)是特征值(x)的线性…

线性回归:从理论到实现

1. 什么是线性回归?

线性回归是一种用于预测因变量(目标值)和自变量(特征值)之间关系的基本模型。它假设目标值(y)是特征值(x)的线性组合,公式如下:

y=w⋅x+b

其中:

  • w 是权重(也称为斜率),表示自变量对因变量的影响程度。
  • b 是偏置(也称为截距),表示当自变量为零时因变量的值。
  • x 是自变量(输入数据)。
  • y 是预测的目标值(输出)。
2. 线性回归的工作流程

线性回归的目标是找到最优的 wb,使得预测的 y 值与真实的目标值之间的差距最小。这个差距通常用 均方误差(MSE,Mean Squared Error)来衡量。为了最小化 MSE,通常使用 梯度下降算法 来迭代更新 wb

3. 代码实现:用 PyTorch 实现线性回归

我们接下来用代码一步步实现一个线性回归模型。PyTorch 是一个非常强大的深度学习框架,它能够方便地实现梯度计算、自动求导和优化操作。

3.1 数据准备

我们使用 numpy 来生成模拟数据。这里我们假设目标值 y 是一个线性函数,公式为 y = 2 * x + 1,并添加一些噪声以模拟实际中的数据误差。

import numpy as np  # numpy数组库
import matplotlib.pyplot as plt  # 画图库
import torch  # torch基础库
import torch.nn as nn  # torch神经网络库# 数据准备
x_sample = np.linspace(0, 5, 64)  # 生成64个均匀分布的点,范围在0到5之间
noise = np.random.randn(64)  # 生成高斯噪声
y_sample = 2 * x_sample + 1 + noise  # 模拟 y = 2 * x + 1,并加上噪声# 将数据转换为适合 PyTorch 处理的格式
x_numpy = x_sample.reshape(-1, 1).astype('float32')  # 转换为列向量
y_numpy = y_sample.reshape(-1, 1).astype('float32')  # 转换为列向量# 转换为 PyTorch 张量
x_train = torch.from_numpy(x_numpy)
y_train = torch.from_numpy(y_numpy)
3.2 模型和损失函数

PyTorch 提供了一个非常方便的 nn.Linear 模块来实现线性回归。我们将输入特征数和输出特征数都设为1,因为这是一个简单的一元线性回归问题。

# 模型和损失函数
model = nn.Linear(in_features=1, out_features=1)  # 输入特征为1,输出特征也为1
loss_fn = nn.MSELoss()  # 使用均方误差作为损失函数
optimizer = torch.optim.SGD(model.parameters(), lr=0.01)  # 使用随机梯度下降,学习率为0.01
3.3 模型训练

为了训练我们的模型,我们需要执行以下几个步骤:

  1. 前向传播:将输入数据传入模型,得到预测输出 y_pred
  2. 计算损失:将模型的预测输出与真实值进行比较,计算损失。
  3. 反向传播:通过误差计算得到梯度,更新模型参数。
  4. 更新参数:使用优化器(这里使用的是随机梯度下降,SGD)来调整权重和偏置,使得损失减小。
# 模型训练
epochs = 500  # 设置训练迭代次数
loss_history = []  # 记录每次迭代的损失for i in range(epochs):y_pred = model(x_train)  # 前向计算,得到预测值loss = loss_fn(y_pred, y_train)  # 计算损失optimizer.zero_grad()  # 清零梯度loss.backward()  # 反向传播,计算梯度optimizer.step()  # 优化器更新参数loss_history.append(loss.item())  # 记录损失if i % 100 == 0:  # 每100个 epoch 输出一次损失print(f'Epoch {i}, Loss: {loss.item():.4f}')
3.4 提取最终的模型参数

经过 500 轮迭代后,模型的权重和偏置已经收敛到一个合理的值。我们可以提取并打印最终的 wb

# 提取最终模型参数
final_w, final_b = model.weight.item(), model.bias.item()  # 提取权重和偏置
print("Final weight (w):", final_w)
print("Final bias (b):", final_b)
3.5 可视化

为了直观地查看模型的拟合效果,我们将原始数据点与模型预测的直线绘制在同一张图上。

 
4. 结果分析

通过上面的代码,我们实现了一个简单的线性回归模型。在模型训练过程中,我们可以观察到损失逐渐减小,模型参数 wb 最终收敛到接近真实值 21。在绘制的图像中,我们可以看到模型拟合的直线与数据点非常接近,这表明我们的线性回归模型成功地拟合了数据。

5. 总结

通过本文的介绍,你应该已经理解了线性回归的基本概念以及如何使用 PyTorch 实现一个简单的线性回归模型。具体来说,你学习了:

  • 如何生成和处理数据。
  • 使用 PyTorch 搭建线性回归模型。
  • 梯度下降的基本流程:前向传播、计算损失、反向传播、参数更新。
  • 如何提取训练完成后的模型参数并进行可视化。

线性回归虽然简单,但它是理解更复杂机器学习模型的基础。接下来,你可以进一步探索多元线性回归、正则化、以及更复杂的神经网络模型。希望这篇博客能为你理解线性回归和深度学习的入门奠定坚实的基础!

 

 

 

http://www.tj-hxxt.cn/news/97237.html

相关文章:

  • 如何防止php网站被挂马网络营销的优化和推广方式
  • 免费制作网站自媒体人专用网站
  • 做开锁推广什么网站好百度网页排名怎么提升
  • 企业网站的建立费用做网络推广需要多少钱
  • 临沂seo网站推广seo的培训课程
  • 锦江区建设和交通局网站百度文库个人登录入口
  • wordpress类似于mdx主题邯郸seo排名
  • 西宁网站建设网站开发框架
  • 邯郸做移动网站哪儿好链接提交工具
  • cantos wordpressseo优化咨询
  • 注册一家科技公司需要多少钱seo收索引擎优化
  • 网站界面设计的主要内容来宾网站seo
  • 微信网站建设热线永久免费的电销外呼系统
  • 廊坊做网站的电话网络营销专业大学排名
  • 网站做谷歌推广有效果吗谷歌推广怎么做
  • 怎么做网站写书营销qq官网
  • 宣城哪里做网站chrome谷歌浏览器官方下载
  • 网站生成pc应用seo推广软件代理
  • 做招商网站的前景怎么样指数函数和对数函数
  • 合肥经开区建设局网站百度官网认证多少钱一年
  • visualstudio 做网站seo 页面链接优化
  • 温州网站开发流程新产品宣传推广策划方案
  • 合肥做网站开发多少钱域名查询注册商
  • 可以将自己做的衣服展示的网站营销策略是什么意思
  • 怎么弄 一个空间放两个网站 用不同的域名网络维护
  • 微擎可以做网站吗站长工具站长
  • webgl网站建设营销活动方案模板
  • 淘宝网网页版登陆网址东莞网站seo公司
  • 如何做网站卖画google下载安卓版
  • 个人网站备案涉及支付宝seo专业知识培训