机器学习——4.案例: 简单线性回归求解

案例目的

寻找一个良好的函数表达式,该函数表达式能够很好的描述上面数据点的分布,即对上面数据点进行拟合。

求解逻辑步骤

  1. 使用Sklearn生成数据集
  2. 定义线性模型
  3. 定义损失函数
  4. 定义优化器
  5. 定义模型训练方法(正向传播、计算损失、反向传播、梯度清空)
  6. 模型训练
  7. 模型预测与线性关系展示

代码实现

import numpy as np
from sklearn import datasets
import matplotlib.pyplot as plt
import torch# 生成数据集 n_samples-样本数量,n_features-自变量数量,random_state-随机种子,noise-噪声
data = datasets.make_regression(n_samples=100,n_features=1,random_state=5,noise=10)
X,Y = data
# 数据集转换成张量
X = torch.from_numpy(X.astype(np.float32))
Y = torch.from_numpy(Y.astype(np.float32))
# 行列形状要相同
Y = Y.view(100,1)# 线性模型函数的定义
n_samples,n_features = X.size()
model = torch.nn.Linear(n_features,1)# 定义损失函数
loss = torch.nn.MSELoss()# 定义优化器
learn_rate = 0.01 
optimizer = torch.optim.SGD(model.parameters(),lr=learn_rate)# 实现梯度下降函数
def gradient_descent():# 正向传播pre_y = model(X)# 计算损失l = loss(pre_y,Y)# 反向传播l.backward()# 梯度更新optimizer.step()# 梯度清空optimizer.zero_grad()return l,list(model.parameters())# 模型训练
for i in range(500):l,parameters = gradient_descent()print(l,parameters)# 模型预测
predect = model(X)# X,Y线性拟合效果展示
plt.scatter(X,Y)
plt.plot(X,predect.detach().numpy(),color="r")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/11963.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

react+antd --- 日期选择器,动态生成日期表格表头

先看一下效果---有当前月的日期 技术: 1: react 2:antd-UI库 -- table 3:moment--时间处理库 代码效果: import { Button, DatePicker, Table } from antd; import { useEffect, useState } from react; import momen…

信号和槽的使用

🐌博主主页:🐌​倔强的大蜗牛🐌​ 📚专栏分类:QT❤️感谢大家点赞👍收藏⭐评论✍️ 目录 一、连接信号和槽 二、查看内置信号和槽 三、通过 Qt Creator 生成信号槽代码 一、连接信号和槽 …

快捷自由定时重启、注销、关机

首先,需要用到的这个工具: 度娘网盘 提取码:qwu2 蓝奏云 提取码:2r1z 1、打开工具,进入定时器编辑版块 2、左侧目录新建一个定时器 3、选择需要的周期,这里是每天0点,一次执行一条 4、添加具…

牛客热题:二叉树的中序遍历

📟作者主页:慢热的陕西人 🌴专栏链接:力扣刷题日记 📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言 文章目录 牛客热题:二叉树的中序遍历题目链接方法一…

python对排列三的分析

对排列三(一种常见的彩票游戏)进行分析,我们通常关注其号码组合的可能性、中奖概率以及可能的号码趋势或模式。然而,由于排列三是基于随机抽取的,因此没有一种方法可以预测下一个中奖号码,但我们可以通过Python来分析历史数据和统计信息。 以下是一个简单的Python脚本示…

js发票查验、票据OCR接口助力解决发票录入与真假辨别难题

作为消费者,每位都是税法的监督员,为了保护自己的合法权益、共同维护市场秩序,消费者进行实际交易后无论是否需要报销,都应该主动向商家索取发票。一般来说发票主要有三种:增值税专用发票、普通发票、专业发票。以下&a…

openGauss安装完成后,切换用户提示ulimit open files cannot modify limit

openGauss安装完成后,切换用户提示ulimit open files cannot modify limit su - omm Last login: Wed Apr 17 14:13:01 CST 2024 on pts/0 -bash: ulimit: open files: cannot modify limit: Operation not permitted通过研究发现,是在安装openGauss的时…

【算法基础实验】排序-最小优先队列MinPQ

优先队列 理论知识 MinPQ(最小优先队列)是一种常见的数据结构,用于有效管理一组元素,其中最小元素可以快速被检索和删除。这种数据结构广泛应用于各种算法中,包括图算法(如 Dijkstra 的最短路径算法和 Pr…

python中的矩阵操作

1 矩阵的每行加上同一行 print(np.array([[0,0,1],[1,1,1],[2,2,1]])[1,1,1])2 两个矩阵AB(相同列数不同行)拼接,B按行拼接在A后面 np.row_stack((A,B)))3 一个矩阵的每个元素都加上同一个常数 print(np.array([[0,0,1],[1,1,1],[2,2,1]])1)矩阵中每个数都会加1 …

高斯数据库创建存储过程

CREATE PROCEDURE 语法格式 CREATE [ OR REPLACE ] PROCEDURE procedure_name [ ( {[ argmode ] [ argname ] argtype [ { DEFAULT | : | } expression ]}[,…]) ] [ { IMMUTABLE | STABLE | VOLATILE } | { SHIPPABLE | NOT SHIPPABLE } | {PACKAGE} | [ NOT ] LEAKPROOF | {…

mysql的JDBC

MYSQL的JDBC 流程: 注册和加载驱动(可以省略)(导入mysql的jdbc的驱动库)(Class.forName(“com.mysql.jdbc.Driver”);) 获取连接 Connection 获取 Statement 对象 使用 Statement 对象执行 SQL 语句 返回结果集 …

GPT-4o 免费开放!体验 AI 对话的无限可能!手把手教你普通用户如何切换到4o版本使用!

大家好,我是影子。今天一觉醒来,发现朋友圈传开了GPT-4o可以免费使用了。 相信大家都使用过GPT-3.5的版本,但是无论是智能程度还是联网查询等一些需求都无法给我们实现,这不,4o的出现直接解决了这些问题。 下面影子将…

ROS2 - 创建项目 (Ubuntu22.04)

本文简述:在 Ubuntu22.04 系统中使用 VS CODE 来搭建一个ROS2开发项目。 1. 创建工作空间 本文使用 Ubuntu 22.04, 已安装配置完成 VS Code,C 环境(g/gdb) 1.1 创建目录 选择文件夹作为工作空间,并在这…

空号检测接口如何对接?

手机运营商空号检测接口又叫空号过滤查询接口、手机号状态检测查询接口,指的是输入手机号,查询其在网活跃度,返回包括空号、实号、停机、库无、沉默号、风险号等状态。那么运营商空号检测接口如何对接呢? 首先我们找到一家有手机…

vb6 ado连接数据库 oledb Microsoft OLE DB Provider for SQL Server 连接字符串

SQL Server 2000 标准安全 Providersqloledb;Data SourcemyServerAddress;Initial CatalogmyDataBase;User IdmyUsername;PasswordmyPassword; SQL Server 2000SQL服务器7.0 可信连接 Providersqloledb;Data SourcemyServerAddress;Initial CatalogmyDataBase;Integrated Secur…

排序-冒泡排序(bubble sort)

冒泡排序(Bubble Sort)是一种简单的排序算法,它重复地遍历待排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成…

Weblogic 任意文件上传漏洞(CVE-2018-2894)

1 漏洞描述 CVE-2018-2894漏洞存在于Oracle WebLogic Server的Web服务测试页面(Web Service Test Page)中。这个页面允许用户测试Web服务的功能,但在某些版本中,它包含了一个未经授权的文件上传功能。攻击者可以利用这个漏洞&…

数据特征降维 | 主成分分析(PCA)附Python代码

主成分分析(Principal Component Analysis,PCA)是一种常用的数据降维技术和探索性数据分析方法,用于从高维数据中提取出最重要的特征并进行可视化。 PCA的基本思想是通过线性变换将原始数据投影到新的坐标系上,使得投影后的数据具有最大的方差。这些新的坐标轴称为主成分…

苹果cms:搜索功能的开关与设置

今天有个小伙伴问了个关于苹果cms搜索的问题:直接搜演员搜索不到影片信息(如下图) 1、我们拿演员王宝强为例:搜索王宝强后结果显示无相关视频 2、但是我们搜索王宝强主演的“大闹天竺”后却能得到关于王宝强的影片信息。这是为什…

springboot以tomcat方式启动后报错

使用idea启动tomcat时,报错。将程序打包到linux后,仍报相同错误。 错误如下: 一个或多个筛选器启动失败。完整的详细信息将在相应的容器日志文件中找到 严重[localhost] org.apache.catalina.core.StandardContext.startInternal 由于之前的…