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

企业汽车网站建设seo关键词排名优化教程

企业汽车网站建设,seo关键词排名优化教程,网站开发建设赚钱吗,用ps怎么做学校网站页面线性回归:从理论到实现 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.hkea.cn/news/166769/

相关文章:

  • 接网站开发做多少钱建一个外贸独立站大约多少钱
  • wordpress表单录入seo报告
  • python做网站显示表格星巴克seo网络推广
  • 一个com的网站多少钱管理微信软件
  • 蒙阴网站建设软文代写网
  • 用python做一旅游网站南昌seo计费管理
  • 湖北省建设厅win10优化软件哪个好
  • 湖南企业建站系统平台软文有哪些发布平台
  • 南通 网络 公司网站真正免费建站
  • 做图骂人的图片网站网络服务
  • wordpress主标题副标题seo基础
  • 淮安做网站优化百度竞价排名是什么方式
  • 食品公司网站源码谷歌网页
  • 做网站用哪种代码比较好推广seo发贴软件
  • 3d效果图软件宁波seo行者seo09
  • 美国做按摩广告的网站网站优化教程
  • wordpress云建站教程信息流广告公司一级代理
  • 我有一个域名怎么做网站百度一下下载
  • 郑州网站建设品牌好安装百度到桌面
  • 株洲做网站定制百度灰色词优化排名
  • 上海网页设计公司兴田德润电话排名优化外包公司
  • 做360网站优化快推广普通话宣传语手抄报
  • 动态网站开发语言有哪些大学生创新创业大赛
  • 关键词推广公司网站网络排名优化方法
  • 福州移动网站建设网络营销推广工具有哪些
  • win2008sr怎么用iis做网站国外网站加速
  • 合肥++网站建设磐石网站seo
  • 万网主机怎么上传网站如何在百度上投放广告
  • 做网站时如何给文字做超链接全球疫情最新数据消息
  • 四川省住建厅官方网站3分钟搞定网站seo优化外链建设