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

【机器学习深度学习】交互式线性回归 demo

目录

一、环境准备

二、Demo 功能

三、完整交互 demo 代码

3.1 执行代码

3.2 示例交互演示

3.3 运行结果

3.4 运行线性图


使用 PyTorch 构建交互式线性回归模型:输入数据、拟合直线、图像可视化并实现实时预测,助你深入理解机器学习从数据到模型的全过程。

一、环境准备

需要你本地能跑 Python + matplotlib + PyTorch,无需其他安装。


二、Demo 功能

  • 你输入一些样本点(比如面积和价格)

  • 模型会学出一条最合适的线

  • 自动训练并画图展示

  • 你输入新数据,它来预测输出!


三、完整交互 demo 代码

PyTorch 的基本训练流程:

输入 → 线性模型建模 → 拟合 → 可视化 → 预测

3.1 执行代码

import torch
import torch.nn as nn
import matplotlib.pyplot as plt# 1. 让你输入数据(面积 → 房价)
print("请输入一些训练数据(输入特征和输出标签),格式如:50 100")
print("输入完后输入空行结束")X_list = []
y_list = []while True:line = input("请输入一组 (x y): ")if not line.strip():breaktry:x, y = map(float, line.strip().split())X_list.append([x])y_list.append([y])except:print("格式错误,请输入两个数字")X = torch.tensor(X_list, dtype=torch.float32)
y = torch.tensor(y_list, dtype=torch.float32)# 2. 定义模型
model = nn.Linear(1, 1)
criterion = nn.MSELoss()
optimizer = torch.optim.SGD(model.parameters(), lr=0.01)# 3. 训练模型
epochs = 1000
for epoch in range(epochs):optimizer.zero_grad()outputs = model(X)loss = criterion(outputs, y)loss.backward()optimizer.step()# 4. 显示结果
print("\n训练完成!")
w = model.weight.item()
b = model.bias.item()
print(f"模型学到的函数为: y = {w:.2f} * x + {b:.2f}")# 5. 可视化
with torch.no_grad():predicted = model(X).numpy()plt.scatter(X.numpy(), y.numpy(), label='原始数据')
plt.plot(X.numpy(), predicted, 'r-', label='拟合直线')
plt.title(f"y = {w:.2f}x + {b:.2f}")
plt.legend()
plt.grid(True)
plt.show()# 6. 输入新数据做预测
while True:new_x = input("\n输入新的 x(或输入 'q' 退出预测):")if new_x.lower() == 'q':breaktry:x_value = torch.tensor([[float(new_x)]])y_pred = model(x_value).item()print(f"预测值为:y = {y_pred:.2f}")except:print("请输入有效数字")

3.2 示例交互演示

请输入一组 (x y): 50 100
请输入一组 (x y): 60 120
请输入一组 (x y): 70 140
请输入一组 (x y): 80 160
请输入一组 (x y): 

你会看到:

  • 模型学到函数 y = 2.00 * x + 0.00

  • 会弹出一张图,直线穿过这些点

  • 然后你可以输入 90,它预测 180


3.3 运行结果

请输入一些训练数据(输入特征和输出标签),格式如:50 100
输入完后输入空行结束
请输入一组 (x y): 1 20
请输入一组 (x y): 2 40
请输入一组 (x y): 3 60
请输入一组 (x y): 4 80
请输入一组 (x y): 训练完成!
模型学到的函数为: y = 19.88 * x + 0.36输入新的 x(或输入 'q' 退出预测):80
预测值为:y = 1590.59输入新的 x(或输入 'q' 退出预测):5
预测值为:y = 99.75输入新的 x(或输入 'q' 退出预测):q

3.4 运行线性图

http://www.lqws.cn/news/527905.html

相关文章:

  • C语言再出发:2025年AI时代的关键语言
  • notepad++ 怎么快速给 python (nginx、shell) 文件加 # 注释
  • VUE3入门很简单(3)--- watch
  • MR30分布式 IO在物流堆垛机的应用
  • 解锁AI无限潜能!景联文科技数据产品矩阵再升级:多语言题库、海量语料、垂域代码库,全面赋能大模型训练
  • 力扣第45题-跳跃游戏2
  • 【智能记录系统Blinko】从0到1搭建个人云端笔记本:Blinko+Docker环境配置
  • JVM OutOfMemoryError原因及排查解决方案
  • java解决超大二维矩阵数组引起的内存占用过大问题
  • 深入解析synchronized实现原理
  • 【2-入门与调试设置】1.坐标辅助器与轨道控制器
  • 英特尔汽车业务败走中国,喊出“All in”才过两个月
  • 观测云产品更新 | 外部数据源、日志、监控、事件、基础设施等
  • TCP 协议安全性全面分析:漏洞、应用场景与防护策略
  • 芯谷科技--降压型DC-DC转换器D4005
  • [OS_27] 现代应用程序架构
  • ESP32 VSCODE进入menuconfig时ESP-IDF idf.py menuconfig卡进度条,setuptools版本太高解决方法
  • 小程序学习笔记:实现上拉触底加载随机颜色案例全解析
  • 深度剖析 Apache Pulsar:架构、优势与选型指南
  • 图像质量对比感悟
  • [论文阅读] 人工智能 + 软件工程 | AI 与敏捷开发的破局之路:从挫败到成功的工作坊纪实
  • 推荐一个前端基于vue3.x,vite7.x,后端基于springboot3.4.x的完全开源的前后端分离的中后台管理系统基础项目(纯净版)
  • HTML 按钮单击事件示例
  • 2-深度学习挖短线股-4-预测数据计算
  • 前端项目3-01:登录页面
  • 实测推荐:一款能看4K直播的万能播放器,支持多端同步
  • 全面比较帮你确定何时选择SLM而非LLM
  • C# .NET Framework 中的高效 MQTT 消息传递
  • React HOC(高阶组件-补充篇)
  • Django 零基础起步:开发你的网站第一步