【学习笔记】Matlab和python双语言的学习(一元线性回归模型)

news2024/11/30 15:39:04

文章目录

  • 前言
  • 一、一元线性回归
    • 回归分析的一般步骤
    • 一元线性回归的基本形式
    • 回归方程
    • 参数的最小二乘法估计
    • 对回归方程的各种检验
      • 估计标准误差的计算
      • 回归直线的拟合优度
      • 判定系数
      • 显著性检验
  • 二、示例
  • 三、代码实现----Matlab
    • 1.Matlab 的 `regress` 函数
    • 2.Matlab 代码
  • 四、代码实现----python
    • 回归系数的置信区间公式
    • 残差的置信区间公式
    • python代码
  • 总结


前言

通过模型算法,熟练对Matlab和python的应用。
学习视频链接:
https://www.bilibili.com/video/BV1EK41187QF?p=42&vd_source=67471d3a1b4f517b7a7964093e62f7e6

一、一元线性回归

  • 一元线性回归是一种统计方法,用于理解和建模两个变量之间的关系。具体来说,它是用来估计一个因变量 y y y 和一个自变量 x x x 之间线性关系的工具。其目标是找到一条直线,能够最好地预测 y y y 的值,基于给定的 x x x 值。这条直线通常被称为 “回归线” 。

回归分析的一般步骤

在这里插入图片描述

一元线性回归的基本形式

y = β 0 + β 1 x + ϵ y=\beta_0+\beta_1x+\epsilon y=β0+β1x+ϵ

  • y y y 是因变量(被解释变量)。
  • x x x 是自变量(解释变量)。
  • β 0 \beta_0 β0 是截距(当 x = 0 x = 0 x=0 时, y y y 的预测值)。
  • β 1 \beta_1 β1 是斜率(表示 x x x 每增加一个单位, y y y 变化的量)。
  • ϵ \epsilon ϵ 是误差项,表示因变量的实际值和预测值之间的差异。

回归方程

  • 描述因变量y的期望值如何依赖于自变量x的方程称为回归方程。根据对一元线性回归模型的假设,可以得到它的回归方程为:
    E ( y ) = β 0 + β 1 x E(y)=\beta_0+\beta_1x E(y)=β0+β1x
  • 如果回归方程中的参数已知,对于一个给定的x值,利用回归方程就能计算出y的期望值
  • 用样本统计量代替回归方程中的未知参数,就得到估计的回归方程,简称回归直线

参数的最小二乘法估计

  • 对于回归直线,关键在于求解参数,常用高斯提出的最小二乘法,它是使因变量的观察值 y y y 与估计值之间的离差平方和达到最小来求解的。
    Q = ∑ ( y − y ^ ) 2 = ∑ ( y − β ^ 0 − β ^ 1 x ) 2 Q=\sum(y-\hat{y} )^2=\sum(y-\hat{\beta}_0-\hat{\beta}_1x)^2 Q=(yy^)2=(yβ^0β^1x)2
    展开可得:
    Q = ∑ ( y − y ^ ) 2 = ∑ y 2 + n β ^ 0 2 + β ^ 1 2 ∑ x 2 + 2 β ^ 0   β ^ 1 ∑ x − 2 β ^ 0   ∑ y − 2 β ^ 1 ∑ x y Q=\sum(y-\hat{y})^{2}=\sum y^{2}+n\hat{\beta}_{0}^{2}+\hat{\beta}_{1}^{2}\sum x^{2}+2\hat{\beta}_{0}\:\hat{\beta}_{1}\sum x-2\hat{\beta}_{0}\:\sum y-2\hat{\beta}_{1}\sum xy Q=(yy^)2=y2+nβ^02+β^12x2+2β^0β^1x2β^0y2β^1xy
    求偏导可得:
    { ∑ y = n β ^ 0 + β ^ 1 Σ x ∑ x y = 2 β ^ 0 Σ x + β ^ 1 Σ x 2 \begin{cases}\sum y=n\hat{\beta}_0+\hat{\beta}_1\Sigma x\\\sum xy=2\hat{\beta}_0\Sigma x+\hat{\beta}_1\Sigma x^2\end{cases} {y=nβ^0+β^1Σxxy=2β^0Σx+β^1Σx2

{ β ^ 1 = n ∑ x y − ∑ x ∑ y n ∑ x 2 − ( ∑ x ) 2 β ^ 0 = y ˉ − β ^ 1 x ˉ \begin{cases}\hat{\beta}_1=\dfrac{n\sum xy-\sum x\sum y}{n\sum x^2-(\sum x)^2}\\\hat{\beta}_0=\bar{y}-\hat{\beta}_1\bar{x}\end{cases} β^1=nx2(x)2nxyxyβ^0=yˉβ^1xˉ

即可得到 β ^ 0 \hat{\beta}_0 β^0 β ^ 1 \hat{\beta}_1 β^1

对回归方程的各种检验

估计标准误差的计算

  • 为了度量回归方程的可靠性,通常计算估计标准误差,它度量观察值回绕着回归直线的变化程度或分散程度
  • 估计平均误差:
    S e = Σ ( y − y ^ ) 2 n − 2 S_e=\sqrt{\frac{\Sigma(y-\hat{y})^2}{n-2}} Se=n2Σ(yy^)2
  • 估计标准误差越大,则数据点围绕回归直线的分散程度就越大,回归方程代表性就越小
  • 估计标准误差越小,则数据点围绕回归直线的分散程度越小,回归方程的代表性越大,可靠性越高

回归直线的拟合优度

  • 回归直线与各观测点的接近程度称为回归直线对数据的拟合优度
    • 总平方和 (TSS):反映因变量的 n n n个观察值与其均值的总离差 T S S = ∑ y i 2 = ∑ ( y i − y ˉ i ) 2 TSS=\sum y_i^2=\sum(y_i-\bar{y}_i)^2 TSS=yi2=(yiyˉi)2
    • 回归平方和 (ESS):反映了 y y y 的总变差中,由于 x x x y y y 之间的线性关系引起的 y y y 的变化部分 E S S = ∑ y ^ i 2 = ∑ ( y ^ i − y ˉ i ) 2 ESS=\sum\hat{y}_i^2=\sum(\hat{y}_i-\bar{y}_i)^2 ESS=y^i2=(y^iyˉi)2
    • 残差平方和(RSS):反映了除了 x x x y y y的线性影响之外的其他因素对 y y y变差的作用,是不能由回归直线来解释的y的变差部分 R S S = ∑ e i 2 = ∑ ( y i − y ^ i ) 2 RSS=\sum e_i^2=\sum(y_i-\hat{y}_i)^2 RSS=ei2=(yiy^i)2
    • 总平方和可以分解为回归平方和、残差平方和两部分: T S S = E S S + R S S TSS=ESS+RSS TSS=ESS+RSS

判定系数

  • 回归平方和占总平方和的比例,用 R 2 R^2 R2 表示,其值在0到1之间
    • R 2 = 0 R^{2}=0 R2=0:说明 y y y 的变化与 x x x 无关, x x x 完全无助于解释 y y y 的变差
    • R 2 = 1 R^{2}=1 R2=1:说明残差平方和为0,拟合是完全的, y y y 的变化只与 x x x 有关

显著性检验

  • 显著性检验的主要目的是根据所建立的估计方程用自变量 x x x 来估计或预测因变量 y y y 的取值,当建立了估计方程后,还不能马上进行估计或预测,因为该估计方程是根据样本数据得到的,它是否真实的反映了变量 x x x y y y 之间的关系,则需要通过检验后才能证实。
  • 根据样本数据拟合回归方程时,实际上就已经假定变量 x x x ν \nu ν 之间存在着线性关系,并假定误差项是一个服从正态分布的随机变量,且具有相同的方差,但这些假设是否成立需要检验
  • 显著性检验包括两方面
    • 线性关系检验
    • 回归系数检验

线性关系检验

  1. 提出假设: H 0 : β 1 = 0 {H}_0:\mathcal{\beta}_1=0 H0:β1=0 两个变量之间的线性关系不显著
  2. 计算检验统计量F:
    F   =   E S S / 1 R S S / ( n − 2 )   =   M S R M S E   ∼   F   ( 1 , n − 2 ) \mathrm{F}\:=\:\frac{\mathrm{ESS}/1}{\mathrm{RSS}/(\mathrm{n}-2)}\:=\:\frac{\mathrm{MSR}}{\mathrm{MSE}}\:\sim\:\mathrm{F}\:(1,\mathrm{n}-2) F=RSS/(n2)ESS/1=MSEMSRF(1,n2)
  3. 确定显著性水平 α \alpha α
  4. 作出决策:
    • F F F 分布:查找临界值 F α ( 1 , n − 2 ) {F} _\alpha ( 1,n-2) Fα(1,n2) 在F 分布表中的值
      • F > F α {F}>{F}_\alpha F>Fα,拒绝 H 0 {H}_0 H0 ,表明两个变量之间的线性关系是显著。
      • F < F a {F}<\mathcal{F}_a F<Fa,不拒绝 H 0 {H}_0 H0 ,没有证据表明两个变量之间的线性关系显著。
    • P P P 值(查表):
      • P < α {P}<\alpha P<α,拒绝 H 0 {H}_0 H0 ,表明两个变量之间的线性关系显著
      • P > α {P}>\alpha P>α ,不拒绝 H 0 {H}_0 H0,没有证据表明两个变量之间的线性关系显著。

回归系数检验
S β ^ 1 = S e ∑ x i 2 − 1 n ( ∑ x i ) 2 S e = ∑ ( y i − y ^ i ) 2 n − k − 1 = M S E S_{\widehat{\beta}_{1}}=\frac{S_{e}}{\sqrt{\sum x_{i}^{2}-\frac{1}{n}(\sum x_{i})^{2}}}\quad S_{e}=\sqrt{\frac{\sum(y_{i}-\hat{y}_{i})^{2}}{n-k-1}}=\sqrt{MSE} Sβ 1=xi2n1(xi)2 SeSe=nk1(yiy^i)2 =MSE

  1. 提出假设:

    • 两个变量之间的线性关系不显著 H 0 : β 1 = 0 {H}_0:\beta_1=0 H0β1=0
    • 两个变量之间的线性关系显著 H 1 : β 1 ≠ 0 {H}_1:\beta_1\neq0 H1β1=0
  2. 计算检验统计量 t t t
    t = β ^ 1 s β ^ 1 ∼ t ( n − 2 ) t=\frac{\widehat{\beta}_{1}}{s_{\widehat{\beta}_{1}}}\sim t(n-2) t=sβ 1β 1t(n2)

  3. 确定显著性水平 a a a

  4. 作出决策:

    • F F F 分布:查找临界值 t α / 2 ( n − 2 ) t_{\alpha / 2}( n- 2) tα/2(n2) F {F} F 分布表中的
      •   t > t α / 2 \mathrm{~t>t}_{\alpha/2}  t>tα/2,拒绝 H 0 {H}_0 H0 ,回归系数等于 0 的可能性小于 α,表明两个变量之间的线性关系是显著的。
      • t < t α / 2 t< \mathrm{t}_{\alpha/2} t<tα/2,不拒绝 H 0 {H}_0 H0 ,没有证据表明两个变量之间的线性关系显著。
    • P P P 值:
      • P < α {P}<\alpha P<α ,拒绝 H 0 {H}_0 H0,表明两个变量之间的线性关系是显著的
      • P > α {P}>\alpha P>α,不拒绝 H 0 {H}_0 H0,二者不存在显著的线性关系。

二、示例

某团队测了16名成年女子的身高与腿长所得数据如下

在这里插入图片描述
分析身高和腿长的关系

三、代码实现----Matlab

1.Matlab 的 regress 函数

regress 函数的基本语法如下:

[b,bint,r,rint,stats]=regress(Y,X,alpha)
  • 输入变量 X 、 Y X、Y XY —— 自变量和因变量的样本值 a l p h a alpha alpha – 显著性水平,默认为0.05
  • 输出变量:
    b − − b-- b回归系数
    b i n t − − bint-- bint 回归系数的区间估计
    r − − r-- r 残差
    r i n t − − rint-- rint 置信区间
    s t a t s − − stats-- stats 用于检验回归模型的统计量
    stats 有四个数值:决定系数 R 2 R^2 R2 F F F 值、与 F F F 对应的概率 P P P、无偏估计 σ 2 \sigma^2 σ2

2.Matlab 代码

% 1、输入数据
% 输入X的样本值
x=[143 145 146 147 149 150 153 154 155 156 157 158 159 160 162 164]'; 
% 插入\beta0对应列
X=[ones(16,1) x];
% 输入Y的样本值
Y=[88 85 88 91 92 93 93 95 96 98 97 96 98 99 100 102]';

% 2、回归分析及检验:
[b,bint,r,rint,stats]=regress(Y,X);
% 输出我们需要的数据
b,bint,stats,rint,r
% 结果:
% b =
%   -16.0730
%     0.7194
% bint =
%   -33.7071    1.5612
%     0.6047    0.8340
% stats =
%     0.9282  180.9531    0.0000    1.7437
% 即β_0=-16.073 ,β_1=0.7194; 
% β_0 的置信区间为[-33.7017 ,1.5612],β_1 的置信区间为[0.6047 ,0.834]; 
% r_2=0.9282,F=180.9531,p=0.0000 
% 由p<0.05,可知回归模型 y=-16.073+0.7194x 成立

% 3、残差分析,做残差图
rcoplot(r,rint)
% 从残差图可以看出,除第二个数据外,其余数据的残差离零点均较近,且残差的置信区间均包含零点,这说明回归模型
% y=-16.073+0.7194x能较好的符合原始数据,而第二个数据可视为异常点

% 4、预测及作图
z=b(1)+b(2)*x 
plot(x,Y,'k+',x,z,'r')

运行结果:

残差图:
在这里插入图片描述

数据拟合图:
在这里插入图片描述
从运行结果可以发现,第二个数据异常。数据拟合程度较好。

四、代码实现----python

回归系数的置信区间公式

假设我们有一个简单的线性回归模型:
Y = β X + ϵ Y=\beta X + \epsilon Y=βX+ϵ
其中:

  • Y Y Y 是响应变量(因变量)向量。
  • X X X 是设计矩阵(自变量)矩阵。
  • β \beta β 是回归系数向量。
  • ϵ \epsilon ϵ 是误差项,假设其独立同分布,且符合正态分布 ϵ ∼ N ( 0 , σ 2 ) \epsilon\sim N(0,\sigma^{2}) ϵN(0,σ2)

回归系数的置信区间可以通过以下步骤计算:

  1. 估计回归系数 β ^ : \hat{\beta}: β^:
    β ^ = ( X T X ) − 1 X T Y \hat{\beta}=(X^TX)^{-1}X^TY β^=(XTX)1XTY
  2. 计算残差向量:
    r = Y − X β ^ r=Y-X\hat{\beta} r=YXβ^
  3. 计算均方误差(Mean Squared Error, MSE):
    M S E = r T r n − p \mathrm{MSE}=\frac{r^Tr}{n-p} MSE=nprTr
    其中 n n n是观测值的数量, p p p是回归系数的数量(包括截距项).
  4. 计算回归系数估计的标准误差
    S E ( β ^ ) = M S E ⋅ d i a g ( ( X T X ) − 1 ) \mathrm{SE}(\hat{\beta})=\sqrt{\mathrm{MSE}\cdot\mathrm{diag}((X^TX)^{-1})} SE(β^)=MSEdiag((XTX)1)
    这里 diag ⁡ ( ( X T X ) − 1 ) \operatorname{diag}((X^TX)^{-1}) diag((XTX)1) 表示矩阵 ( X T X ) − 1 (X^TX)^{-1} (XTX)1 的对角元素。
  5. 确定 t t t 分布的临界值 t α / 2 , n − p t_{\alpha/2,n-p} tα/2,np :
    根据所需的置信水平(例如 95%),从t分布表或使用统计函数(如 stats.t.ppf) 找到对应的临界值。

残差的置信区间公式

回归模型的残差向量 r r r 表示为:
r = Y − Y ^ = Y − X β ^ r=Y-\hat{Y}=Y-X\hat{\beta} r=YY^=YXβ^
残差的标准误差

残差的标准误差(Residual Standard Error, RSE) 可以通过以下公式计算:
R S E = ∑ r i 2 n − p \mathrm{RSE}=\sqrt{\frac{\sum r_i^2}{n-p}} RSE=npri2

其中:

  • n n n 是观测值的数量。
  • p p p 是回归系数的数量(包括截距项)。

残差的置信区间

残差的置信区间基于 t t t 分布,这意味看我们需要找到一个 t t t 统计量,该统计量依赖于给定的置信水平(例如 95% 置信区间) 和自由度(通常为 n − p n-p np) 。

残差 r i r_i ri 的置信区间可以表示为 r i ± t α / 2 , n − p ⋅ R S E r_i\pm t_{\alpha/2,n-p}\cdot\mathrm{RSE} ri±tα/2,npRSE
其中:

t α / 2 , n − p t_{\alpha/2,n-p} tα/2,np 是t分布在自由度 n − p n-p np 和显著水平 α \alpha α 下的临界值。

python代码

import numpy as np
import matplotlib.pyplot as plt
import statsmodels.api as sm
from scipy import stats

from matplotlib.pylab import mpl
mpl.rcParams['font.sans-serif'] = ['SimHei']   #设置字体
mpl.rcParams['axes.unicode_minus'] = False     # - 号设置

# 1、输入数据
# 输入X的样本值
x = np.array([143, 145, 146, 147, 149, 150, 153, 154, 155, 156, 157, 158, 159, 160, 162, 164])
# 插入\beta0对应列
X = sm.add_constant(x)
# 输入Y的样本值
Y = np.array([88, 85, 88, 91, 92, 93, 93, 95, 96, 98, 97, 96, 98, 99, 100, 102])

# 2、回归分析及检验
model = sm.OLS(Y, X)
results = model.fit()

# 输出我们需要的数据
print("回归系数 (b):")
print(results.params)
print("\n回归系数的区间估计 (bint):")
print(results.conf_int())
print("\n模型统计信息 (stats):")
print("R-squared:", results.rsquared)
print("F-statistic:", results.fvalue)
print("p-value:", results.f_pvalue)
print("残差方差 (RMSE):", results.mse_resid)

# 5. 预测
y_pred = results.predict(X)

# 6. 计算残差
residuals = Y - y_pred


# 获取回归系数
b = results.params
bint = results.conf_int()

# 计算残差的置信区间
alpha = 0.05  # 95% 置信区间
n = len(residuals)
df = n - len(b)  # 自由度
t_value = stats.t.ppf(1 - alpha / 2, df)   # 找到 t 分布的分位点

# 计算标准误差
s_err = np.sqrt(np.sum(residuals**2) / df)

# 置信区间
rint = np.zeros((n, 2))
for i in range(n):
    rint[i, 0] = residuals[i] - t_value * s_err 
    rint[i, 1] = residuals[i] + t_value * s_err

# 7. 绘制残差图
plt.figure(figsize=(10, 6))
plt.scatter(range(n), residuals, color='blue', marker='o', label='Residuals')
plt.hlines(0, xmin=0, xmax=n, color='red', linewidth=2)
plt.plot(range(n), rint[:, 0], 'r_', label='Lower bound')
plt.plot(range(n), rint[:, 1], 'r_', label='Upper bound')
plt.xlabel('Observation')
plt.ylabel('Residuals')
plt.title('Residuals with Confidence Interval')
plt.legend()
plt.show()

# 4、预测及作图
z = results.predict(X)
plt.scatter(x, Y, color='black', marker='+', label='实际数据')
plt.plot(x, z, color='red', label='拟合线')
plt.xlabel('x')
plt.ylabel('y')
plt.legend()
plt.show()

运行结果:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结

本文介绍了一元线性回归,详细介绍了 回归分析的一般步骤。分别使用matlab和python进行了算法的实现。

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

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

相关文章

我像只鱼儿在你的进程池~

我像只鱼儿在你的进程池&#xff5e; 只为你守候这进程间通信&#xff5e; 一点都不押韵 点踩吧 父进程是master&#xff0c;它提前创建出一堆紫禁城&#xff0c;如果有命令就交给子进程去执行&#xff08;和shell不一样&#xff0c;shell是有任务才去创建子进程&#xff09…

吹爆SyntaxFlow!数据流分析实战解析

正文开始前辟个谣先 最近有小伙伴来问闭源收费的事 牛牛郑重告知大家 目前还没有这个计划 请大家放心使用 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 样例解析在之前的SyntaxFlow教程中&#xff0c;我们已经看到了非常多的代码样例进行数据流分…

广东失业领取指南 记录自己的失业

1. 前言 坐标广州&#xff0c;七月底就被裁员领取n1解放了&#xff0c;趁着这次机会&#xff0c;也想着躺几个月后再去上班&#xff0c;现在工作也不好找&#xff0c;加上之前加班实在是消耗太大了。想着躺也不能干躺&#xff0c;去申请一下失业金每个月还有补贴用&#xff0c…

[数据集][目标检测]锤子检测数据集VOC+YOLO格式1510张1类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;1510 标注数量(xml文件个数)&#xff1a;1510 标注数量(txt文件个数)&#xff1a;1510 标注…

悟空降世 撼动全球

文&#xff5c;琥珀食酒社 作者 | 积溪 一只猴子能值多少钱&#xff1f; 答案是&#xff1a;13个小目标 这两天 只要你家没有断网 一定会被这只猴子刷屏 它就是咱国产的3A游戏 《黑神话&#xff1a;悟空》 这只猴子到底有多火&#xff1f; 这么跟你说吧 茅台见了它都…

TPM管理培训值不值得去?

TPM管理培训是否值得去&#xff0c;取决于多个因素&#xff0c;包括个人职业发展需求、所在企业的情况以及培训内容和质量等&#xff0c;具体如深圳TPM管理咨询公司下文所述&#xff1a; 一、个人职业发展需求 - 从事设备管理相关工作&#xff1a;如果您的工作涉及设备维护、生…

数聚股份携手销售易闪耀CDIE数字化创新博览会,开启企业数字化转型加速器

6月25日-26日&#xff0c;第十届CDIE数字化创新博览会在上海张江科学会堂隆重举办&#xff0c;本次博览会大咖云集&#xff0c;汇聚零售、快消、制造、医疗、金融、出海等领域的企业高管和部门负责人&#xff0c;打破行业边界、共话数字化痛点和热点话题。 时隔一年&#xff…

UDS 诊断 - ReadMemoryByAddress(按地址读取内存)(0x23)服务

UDS 诊断服务系列文章目录 诊断和通信管理功能单元 UDS 诊断 - DiagnosticSessionControl&#xff08;诊断会话控制&#xff09;&#xff08;0x10&#xff09;服务 UDS 诊断 - ECUReset&#xff08;ECU重置&#xff09;&#xff08;0x11&#xff09;服务 UDS 诊断 - SecurityA…

黑神话孙悟空,自媒体小白如何蹭这波流量!

当下&#xff0c;黑神话孙悟空的热度如熊熊烈火&#xff0c;席卷了整个游戏世界。 只要与这个话题沾边&#xff0c;似乎就能轻松吸引大量关注。 那么&#xff0c;对于不怎么懂自媒体运营的小伙伴来说&#xff0c;该如何抓住这个机遇呢&#xff1f; 别担心&#xff0c;我们可以…

LearnOpenGL——延迟渲染学习笔记

延迟渲染学习笔记 一、基本概念二、G-BufferMRT 三、Lighting Pass四、结合延迟渲染和前向渲染五、更多光源 我们之前使用的一直是 前向渲染&#xff08;正向渲染 Forward Rendering&#xff09;&#xff0c;指的是在场景中根据所有光源照亮一个物体&#xff0c;之后再渲染下一…

MBR30100CT-ASEMI低压降肖特基MBR30100CT

编辑&#xff1a;ll MBR30100CT-ASEMI低压降肖特基MBR30100CT 型号&#xff1a;MBR30100CT 品牌&#xff1a;ASEMI 封装&#xff1a;TO-220 批号&#xff1a;最新 恢复时间&#xff1a;35ns 最大平均正向电流&#xff08;IF&#xff09;&#xff1a;30A 最大循环峰值反…

Django | 从中间件的角度来认识Django发送邮件功能

文章目录 概要中间件中间件 ---> 钩子实现中间件demo 邮件发送过程Django如何做邮件服务配置流程 中间件结合邮件服务实现告警 概要 摘要 业务告警 邮件验证 密码找回 邮件告警 中间件 中间件 —> ‘钩子’ 例如 访问路由 的次数【请求】 中间件类须实现下列五个方法…

商业模式画布全面解读:产品经理的实用手册

在产品经理的日常工作中&#xff0c;最基本的一项任务就是进行竞品分析和商业模式分析。一方面&#xff0c;通过竞品分析环节&#xff0c;了解当前产品的竞争力和不可替代性&#xff1b;另一方面&#xff0c;定期评估产品的商业模式是否存在风险&#xff0c;是否具有可持续性。…

Destiny of Gods首轮测试正式开启,参与玩家数量突破10万

天神风云&#xff0c;波澜再兴&#xff0c;GameFi链游聚合平台Destiny of Gods首款同名数字卡牌回合制游戏首轮测试定档8月20日20:00&#xff08;GMT8&#xff09;&#xff0c;现已正式开启&#xff01; 这是一个由人、游灵和神灵共存的世界&#xff0c;历经蛮荒时期的纷争与信…

Docker的安装与镜像配置

小编目前大一&#xff0c;刚开始着手学习SSM&#xff0c;小编会把每个框架都整理成知识点发布出来。如果你也同时在学习SSM的话&#xff0c;不妨看看我做的这个笔记。我认为同为初学者&#xff0c;我把我对知识点的理解以这种代码加观点的方式分享出来不仅加深了我的理解&#…

游泳耳机哪个牌子好?角逐必选榜的4大王者游泳耳机测评解析!

在选择游泳耳机时&#xff0c;许多消费者往往会被市场上五花八门的产品所困扰。特别是那些标榜能够防水防潮的产品&#xff0c;但实际上它们往往缺乏核心技术支持&#xff0c;存在很高的损伤风险。据调查&#xff0c;超过90%的用户反映&#xff0c;市面上的游泳耳机常常无法达到…

centos7.9离线安装kubernetes(k8s)1.28版本

文章目录 一、环境准备二、所有节点执行1、解压安装包2、创建/etc/modules-load.d/containerd.conf配置文件3、执行以下命令使配置生效4、创建/etc/sysctl.d/99-kubernetes-cri.conf配置文件5、加载ipvs内核模块–4.19以上版本内核6、授权生效7、关闭swap&#xff0c;并永久关闭…

WPF——动态排名图表实现

开发环境 VS2022 .NET 8.0 MVVM Toolkit 8.2.2 需求 开发中需要实现按照成绩动态指名&#xff0c;以展示当前的竞赛成绩的一个实时情况及变化。 即如下效果&#xff1a; 需求分析 按照接收到的信息&#xff0c;就是要将获取到的集合排序&#xff0c;并且要将排序前后的变…

什么是UDP?

UDP是工作在OSI&#xff08;开放系统互连&#xff0c;Open Systems Interconnection&#xff09;模型中传输层的协议。它使用IP作为底层协议&#xff0c;是为应用程序提供一种以最少的协议机制向其他程序发送消息的协议。其主要特点是无连接&#xff0c;不保证可靠传输和面向报…

汽车线束智能制造:MES系统与工艺深度融合的革新之路

万界星空科技汽车线束工厂MES系统解决方案是针对线束制造行业特定需求而设计的一套集成化管理系统&#xff0c;旨在提高生产效率、优化资源配置、确保产品质量并增强企业竞争力。 一、汽车线束制造工艺 汽车线束&#xff0c;作为连接汽车各个电子部件的桥梁&#xff0c;承载着…