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

回归模型是什么

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

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

一、线性回归模型

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

一元线性回归:

建立模型:

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

误差最小化:

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

损失函数:

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

  • 斜率k =
  • 截距b =

Python代码

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()
相关推荐
谅望者3 小时前
数据分析笔记04:抽样方法与抽样分布
数据库·笔记·数据挖掘·数据分析
一只小小的土拨鼠14 小时前
2025数维杯秋季赛思路+模型+代码+论文详解(开赛后持续更新)---------2025年第十一届数维杯国际大学生数学建模挑战赛(国际赛)
数学建模
Learn Beyond Limits1 天前
Data Mining Tasks|数据挖掘任务
人工智能·python·神经网络·算法·机器学习·ai·数据挖掘
异构算力老群群1 天前
2025 爆火!海市蜃楼优化算法 MSO(Mirage Search Optimization):物理灵感 + 数学建模 + 实战代码,一文吃透前沿群智能算法
数学建模·启发式算法·优化算法·进化计算·海市蜃楼优化算法·群智能优化
谅望者1 天前
数据分析笔记02:数值方法
大数据·数据库·笔记·数据挖掘·数据分析
周杰伦_Jay2 天前
【智能体(Agent)技术深度解析】从架构到实现细节,核心是实现“感知环境→处理信息→决策行动→影响环境”的闭环
人工智能·机器学习·微服务·架构·golang·数据挖掘
云动雨颤2 天前
爬虫是怎么工作的?从原理到用途
爬虫·python·数据挖掘
Learn Beyond Limits2 天前
Clustering vs Classification|聚类vs分类
人工智能·算法·机器学习·ai·分类·数据挖掘·聚类
chao1898442 天前
遗传算法与粒子群算法优化BP提高分类效果
算法·分类·数据挖掘
诸葛务农2 天前
光电对抗分类及外场静爆试验操作规程
人工智能·嵌入式硬件·分类·数据挖掘