数学建模2:回归分析预测

news2024/11/27 10:41:15

回归模型是什么

        回归分析预测模型是一种统计方法,用于研究变量之间的关系,并通过已知数据来预测一个变量的值。回归分析通常包括自变量和因变量,目标是建立一个回归模型来描述它们之间的关系。

        简单来说回归模型就是找出一条直线或曲线来尽可能地拟合所有的样本点,拟合的好坏通常通过误差(例如,残差平方和)来衡量,如果拟合误差较小那么我们认为样本符合此x和y的变量关系。如下图是一个简单的线性回归模型

一、线性回归模型 

        线性回归指的是两个变量之间的关系是一次函数,也就是图像是直线的。

一元线性回归:

建立模型:

        一元线性回归指的是只有一个变量,也就是如下模型公式

y = kx + b

 误差最小化:

        这里可以采用最小二乘法来使误差最小,对与已知数据,它通过最小化每个数据点到线的垂直偏差平方和来计算最佳拟合线。

损失函数:

\sigma = \sum ((y_{i^{}} - (kx_{i} + b))^{2})

要使损失函数最小,可知:

  • 斜率k =

k = \frac{n(\sum x_{i}y_{i}) - (\sum x_{i})(\sum y_{i})}{n(\sum x_{i}^{2}) - (\sum x_{i}^{2})} 

  • 截距b =  

 b = \bar{y} - k\bar{x}

Python代码

import numpy as np
from matplotlib import pyplot as plt


class LinearRegression:
    def __init__(self, X, Y):
        self.X = X
        self.Y = Y
        self.K = None
        self.B = None

    def caculateKB(self):
        x_mean = np.mean(self.X)
        y_mean = np.mean(self.Y)
        n = 0.0
        d = 0.0
        for x, y in zip(self.X, self.Y):
            n += (x - x_mean) * (y - y_mean)
            d += (x - x_mean) ** 2
        self.K = n / d
        self.B = y_mean - (self.K * x_mean)
        result = [self.K, self.B]
        return result
    def caculateY(self, n):
        if self.K == None:
            self.caculateKB()
        predict = self.K * n + self.B
        return predict

X=np.array([1,2,3,4,5,6,7,8,9,10]) #定义数据集
Y=2*X+np.random.normal(1,2,10) #Y是X的线性函数加上服从正态分布的随机误差
LinearRegression = LinearRegression(X,Y)
n = 11
result = LinearRegression.caculateY(n)
print(f'预测得y({n})的值为:{result}')
#计算残差和
y_predict = [LinearRegression.K * x + LinearRegression.B for x in X]
ss_residual=sum((y_predict - Y)**2)   #残差平方和
ss_total=sum((Y-np.mean(Y))**2)     #总平方和
print(f'残差和为:{ss_residual}')
#绘图
plt.scatter(X,Y)#绘制点
plt.plot(X,y_predict,color='r')#绘制回归线
plt.show()

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

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

相关文章

若依框架的下载与配置

1. 若依版本 RuoYi-Vue前后端分离版。 2. 框架下载 2.1 后端框架下载 https://gitee.com/y_project/RuoYi-Vue 2.2 前端框架下载 https://github.com/yangzongzhuan/RuoYi-Vue3 3. 数据库配置 3.1 创建数据库 基于MySQL数据库,创建数据库:ry-vu…

【Eclipse系列】The word is not correctly spelled问题解决

问题描述:在eclipse编写代码时,偶尔会出现了The word is not correctly spelled的错误,但代码执行没有问题,查阅相关资料才发现是eclipse的拼写检查问题。 处理方法:在eclipse下的Window--Preference输入spelling&am…

【软件测试: jmeter工具】OS进程取样器调用python

在jmeter中有时候需要调用自定义函数进行加密、解密等拓展功能 本文通过识别验证码处理登录验证码为例,通过OS进程取样器,调用python函数实现 识别验证码的python函数源码 import base64 from io import BytesIO from PIL import Image import sys im…

nginx中的HTTP 负载均衡

HTTP 负载均衡:如何实现多台服务器的高效分发 为了让流量均匀分配到两台或多台 HTTP 服务器上,我们可以通过 NGINX 的 upstream 代码块实现负载均衡。 方法 在 NGINX 的 HTTP 模块内使用 upstream 代码块对 HTTP 服务器实施负载均衡: upstr…

OpenVLA-首个开源视觉语言动作大模型

官网:https://openvla.github.io/ 现在大模型已经卷到了机器人领域。 在视觉语言模型(VLM)的基础上, 加入机器人的动作(Action) 这一模态, 视觉语言动作大模型(VLA)是目前大模型应用…

网络知识总结

osi七层模型 osi七层模型分为:应用层,表示层,会话层,传输层,网络层,数据链路层,物理层 应用层:客户端与服务端之间建立一个通话界面表示层:对数据进行语言转换&#xf…

Android Framework AMS(06)startActivity分析-3(补充:onPause和onStop相关流程解读)

该系列文章总纲链接:专题总纲目录 Android Framework 总纲 本章关键点总结 & 说明: 说明:本章节主要解读AMS通过startActivity启动Activity的整个流程的补充,更新了startActivity流程分析部分。 一般来说,有Activ…

基于Springboot在线视频网站的设计与实现

基于Springboot视频网站的设计与实现 开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:idea 源码获取:https://do…

15.JVM垃圾收集算法

一、垃圾收集算法 1.分代收集理论 分代收集理论是JAVA虚拟机进行垃圾回收的一种思想,根据对象存活周期的不同将内存分成不同的几个区域;一般将JAVA堆内存分为新生代和老年代;根据每个分代特点选择不同的垃圾收集器; 在新生代中&am…

UE4 材质学习笔记12(水体反射和折射)

一.水体反射和折射 首先就是要断开所有连接到根节点的线,因为水有很多不同的节点成分,当所有其他节点都在用时 要分辨出其中一个是何效果是很难的。 虚幻有五种不同的方法可以创建反射,虚幻中的大多数场景使用多种这些方法 它们会同时运作。…

开源vGPU方案 HAMi实现细粒度GPU切分——筑梦之路

前言 为什么需要 GPU 共享、切分等方案? 在使用GPU的过程中我们会发现,直接在裸机环境使用,都可以多个进程共享 GPU,怎么到 k8s 环境就不行了? 1. 资源感知 在 k8s 中资源是和节点绑定的,对于 GPU 资源…

【Linux】僵尸进程和孤儿进程

一、僵尸进程 何为僵尸进程? 在 Unix/Linux 系统中,正常情况下,子进程是通过父进程创建的,且两者的运行是相互独立的,父进程永远无法预测子进程到底什么时候结束。当一个进程调用 exit 命令结束自己的生命时&#xff…

《编程入门与提高:开启数字世界的大门》

《编程入门与提高:开启数字世界的大门》 一、引言二、编程入门的基础知识(一)编程语言的选择(二)编程环境的搭建(三)编程的基本概念(四)编程的基本语法 三、编程入门的方…

哪些方法可以缓解面试紧张?

面试紧张是许多人在面对重要职业机会时的一种常见情绪。虽然一定程度的紧张可能激发人的潜能,但过度的紧张则可能影响到面试表现。为了缓解面试紧张,以下是一些有效的方法: 1.充分准备: 深入了解公司背景、职位要求以及公司文化…

地方门户分类信息网站源码系统 用户可以自由发帖 PHP+MySQL组合开发 带完整的安装代码包以及搭建部署教程

系统概述 地方门户分类信息网站源码系统是一个基于PHP和MySQL开发的强大平台,旨在帮助用户轻松搭建地方性的分类信息网站。该系统集成了众多实用功能,支持用户自由发帖、浏览和搜索各类信息,如二手交易、求职招聘、房屋租售、生活服务、商家…

Python网络请求库requests的10个基本用法

大家好!今天我们要聊聊Python中非常实用的一个库——requests。这个库让发送HTTP请求变得超级简单。无论你是想抓取网页数据还是测试API接口,requests都能派上大用场。下面我们就一起来看看如何使用requests完成一些常见的任务。 引言 随着互联网技术的…

空洞卷积:Atrous/Dilated convolution - 语义分割中多用到

没办法,我还是很多基础的、底层的模块不通透,读论文难免会受到阻碍,而且这现在科研任务很急了,必须要马上动手实验,全给我弄明白、特别是算法! 空洞卷积-可变形卷积-这一个个我都要。 空洞卷积据说在语义分…

推动AI技术研发与应用,景联文科技提供专业高效图像采集服务

景联文科技提供专业图像采集服务,涵盖多个领域的应用需求。 包含人体图像、人脸图像、手指指纹、手势识别、交通道路、车辆监控等图像数据集,计算机视觉图像数据集超400TB,支持免费试采试标。 高质量人像采集服务:支持不同光线条件…

Netty入门基础:Netty架构设计模型介绍(主从Reactor多线程模型,Futrue-Listener模型)

文章目录 🎵单Reactor单线程✏单Reactor多线程🛒主从Reactor多线程🎐Netty模型🚴‍♀️Future-listener模型 🎵单Reactor单线程 Reactor通过select监控客户端的事件,通过dispatch分发。 如果是建立连接事件…

Unity-RetargetPro3-动画插件试用

一个名气大于实战的插件 目录 初见这个插件, 打开文档看看 下载并打开Demo项目 直接看Editor代码吧 这个插件,可以放弃了 初见这个插件, 觉得,1.都已经是3.0版本,不错哦 看上去,2.目录也 不错,有分Core,plugin等 (应该感觉,怎么也是大公司的代码分拆出来吧,感…