北京网站设计公司兴田德润信任高/株洲seo排名
Logistic Regression(逻辑回归)、Maximum Likelihood Estimatio(最大似然估计)
- 逻辑回归(Logistic Regression,LR)
- 逻辑回归的基本思想
- 逻辑回归模型
- 逻辑回归的目标
- 最大似然估计
- 优化方法
- 逻辑回归的损失函数:对数损失
- 逻辑回归的应用
- 逻辑回归的优缺点
- 优点
- 缺点
- 逻辑回归的扩展
- 逻辑回归的实现(Python 示例)
- 最大似然估计 (Maximum Likelihood Estimation, MLE)
- 最大似然估计的基本思想
- 似然函数
- 对数似然函数
- 最大化对数似然
- 通过最大似然估计估计参数
- 示例 1:估计高斯分布的均值和方差
- 示例 2:伯努利分布的最大似然估计
- 最大似然估计的优点和局限
- 优点
- 局限
- 参考资料
逻辑回归(Logistic Regression,LR)
逻辑回归(Logistic Regression) 是一种广泛应用于分类问题的统计方法,尤其用于二分类问题(即预测目标变量有两个类别)。尽管它的名字中带有“回归”二字,但它实际上是一种分类算法。逻辑回归通过对输入特征进行建模,输出一个概率值,表示某个类别的可能性。
逻辑回归的基本思想
逻辑回归试图找出一个合适的数学模型,将输入特征 X = ( x 1 , x 2 , … , x n ) X=(x_1, x_2, …, x_n) X=(x1,x2,…,xn) 映射到目标标签 Y Y Y 上。对于二分类问题,目标是根据输入特征预测 Y = 1 Y=1 Y=1 或 Y = 0 Y=0 Y=0 的概率。
逻辑回归的核心是 逻辑函数(Logistic Function) 或者称为 Sigmoid 函数,它将任何实数映射到 [0, 1] 之间,从而可以解释为概率。
逻辑回归模型
假设输入特征 X = ( x 1 , x 2 , … , x n ) X=(x_1, x_2, …, x_n) X=(x1,x2,…,xn) 和权重参数 w = ( w 1 , w 2 , … , w n ) w=(w_1, w_2, …, w_n) w=(w1,w2,…,wn),逻辑回归模型的输出是通过一个线性组合加上偏置项,输入到一个 Sigmoid 函数中:
z = w 1 x 1 + w 2 x 2 + ⋯ + w n x n + b z = w_1 x_1 + w_2 x_2 + \dots + w_n x_n + b z=w1x1+w2x2+⋯+wnxn+b
然后,将 z z z 通过 Sigmoid 函数 σ ( z ) σ(z) σ(z) 转换为一个概率值:
P ( Y = 1 ∣ X ) = σ ( z ) = 1 1 + e − z P(Y = 1 \mid X) = \sigma(z) = \frac{1}{1 + e^{-z}} P(Y=1∣X)=σ(z)=1+e−z1
其中, σ ( z ) σ(z) σ(z) 是 Sigmoid 函数,它将任何实数 z z z 映射到 (0, 1) 之间,表示一个类别的概率。 P ( Y = 1 ∣ X ) P(Y=1∣X) P(Y=1∣X) 就是预测样本属于类别1的概率。
- 如果 P ( Y = 1 ∣ X ) > 0.5 P(Y=1∣X)>0.5 P(Y=1∣X)>0.5,则预测类别为 1;
- 如果 P ( Y = 1 ∣ X ) ≤ 0.5 P(Y=1∣X)≤0.5 P(Y=1∣X)≤0.5,则预测类别为 0。
逻辑回归的目标
在逻辑回归中,我们的目标是通过训练数据来学习最优的权重参数 w 1 , w 2 , … , w n w_1, w_2, …, w_n w1,w2,…,wn 和偏置项 b b b,使得模型能够准确地预测数据的类别。为此,我们使用最大似然估计(Maximum Likelihood Estimation, MLE)来估计这些参数。
最大似然估计
假设我们有 m m m 个训练样本,每个样本的输入为 X ( i ) X^{(i)} X(i),标签为 Y ( i ) Y^{(i)} Y(i),其中 i = 1 , 2 , … , m i = 1, 2, \dots, m i=1,2,…,m。
逻辑回归模型的似然函数是基于每个训练样本的预测概率和真实标签的结合。对于每个样本,预测的概率为 P ( Y = 1 ∣ X ( i ) ) P(Y = 1 \mid X^{(i)}) P(Y=1∣X(i)),因此整个训练集的似然函数为:
L ( w , b ) = ∏ i = 1 m P ( Y ( i ) ∣ X ( i ) ; w , b ) L(w, b) = \prod_{i=1}^{m} P(Y^{(i)} \mid X^{(i)}; w, b) L(w,b)=i=1∏mP(Y(i)∣X(i);w,b)
因为 Y ( i ) Y^{(i)} Y(i) 是 0 或 1,所以可以将似然函数写成:
L ( w , b ) = ∏ i = 1 m [ σ ( z ( i ) ) Y ( i ) ⋅ ( 1 − σ ( z ( i ) ) ) 1 − Y ( i ) ] L(w, b) = \prod_{i=1}^{m} \left[\sigma(z^{(i)})^{Y^{(i)}} \cdot (1 - \sigma(z^{(i)}))^{1 - Y^{(i)}} \right] L(w,b)=i=1∏m[σ(z(i))Y(i)⋅(1−σ(z(i)))1−Y(i)]
为了方便优化,通常取对数似然函数(Log-Likelihood),得到:
ℓ ( w , b ) = ∑ i = 1 m [ Y ( i ) log σ ( z ( i ) ) + ( 1 − Y ( i ) ) log ( 1 − σ ( z ( i ) ) ) ] \ell(w, b) = \sum_{i=1}^{m} \left[Y^{(i)} \log \sigma(z^{(i)}) + (1 - Y^{(i)}) \log (1 - \sigma(z^{(i)})) \right] ℓ(w,b)=i=1∑m[Y(i)logσ(z(i))+(1−Y(i))log(1−σ(z(i)))]
目标是最大化对数似然函数 ℓ ( w , b ) \ell(w, b) ℓ(w,b),即找到使对数似然函数最大化的权重 w w w 和偏置项 b b b。
优化方法
我们通常使用梯度下降法(Gradient Descent)来优化对数似然函数。梯度下降法通过计算损失函数(对数似然的负数)对模型参数的梯度来更新参数,以减小损失。
梯度下降更新规则为:
w j ← w j − α ∂ ∂ w j ℓ ( w , b ) w_j \leftarrow w_j - \alpha \frac{\partial}{\partial w_j} \ell(w, b) wj←wj−α∂wj∂ℓ(w,b)
b ← b − α ∂ ∂ b ℓ ( w , b ) b \leftarrow b - \alpha \frac{\partial}{\partial b} \ell(w, b) b←b−α∂b∂ℓ(w,b)
其中, α \alpha α 是学习率。
逻辑回归的损失函数:对数损失
由于逻辑回归是基于最大似然估计的,因此它的损失函数通常称为对数损失(Log-Loss)或交叉熵损失(Cross-Entropy Loss),公式如下:
L ( w , b ) = − 1 m ∑ i = 1 m [ Y ( i ) log ( σ ( z ( i ) ) ) + ( 1 − Y ( i ) ) log ( 1 − σ ( z ( i ) ) ) ] \mathcal{L}(w, b) = - \frac{1}{m} \sum_{i=1}^{m} \left[Y^{(i)} \log(\sigma(z^{(i)})) + (1 - Y^{(i)}) \log(1 - \sigma(z^{(i)})) \right] L(w,b)=−m1i=1∑m[Y(i)log(σ(z(i)))+(1−Y(i))log(1−σ(z(i)))]
对数损失衡量的是预测的概率分布与真实标签之间的差距。损失函数的值越小,模型的预测越准确。
逻辑回归的应用
逻辑回归适用于以下场景:
- 二分类问题:例如,电子邮件分类(垃圾邮件与非垃圾邮件)、医疗诊断(是否患病)、银行贷款申请(是否批准)等。
- 多分类问题:通过多项式逻辑回归(Multinomial Logistic Regression)扩展,可以处理多类问题,常用于文本分类或图像分类。
逻辑回归的优缺点
优点
- 简单易懂:逻辑回归是一种线性模型,易于理解和实现。
- 高效:逻辑回归在训练数据量较小的情况下能表现得很好,计算速度较快。
- 概率输出:它不仅提供类别预测,还提供每个类别的概率,这对于很多应用场景非常有用。
- 可解释性强:模型参数(即权重)能够反映特征对预测结果的影响,便于进行模型解释。
缺点
- 线性假设:逻辑回归假设特征和目标之间的关系是线性的。如果数据呈现非线性关系,逻辑回归可能无法很好地拟合数据。
- 对异常值敏感:逻辑回归对异常值比较敏感,异常值可能会影响模型的性能。
- 特征相关性问题:逻辑回归对特征之间的相关性较为敏感,强相关的特征可能会导致多重共线性问题。
逻辑回归的扩展
- 多项式逻辑回归(Multinomial Logistic Regression):用于多分类问题,模型的输出不是一个概率,而是多个类别的概率分布。
- 正则化(Regularization):为了防止过拟合,可以在逻辑回归中加入L1或L2正则化项。L1正则化能生成稀疏解,L2正则化可以避免过大权重的出现。
逻辑回归的实现(Python 示例)
使用 scikit-learn
库,可以非常方便地实现逻辑回归模型:
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import load_iris
from sklearn.metrics import accuracy_score, classification_report# 加载鸢尾花数据集
data = load_iris()
X = data.data # 特征数据
y = data.target # 标签数据# 将标签转为二分类问题:1. "Setosa"(类别 0),2. 非 "Setosa"(类别 1)
y_binary = (y == 0).astype(int)# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y_binary, test_size=0.3, random_state=42)# 创建逻辑回归模型
model = LogisticRegression()# 训练模型
model.fit(X_train, y_train)# 打印训练后的模型参数
print(f"模型的权重 (w): {model.coef_}")
print(f"模型的偏置 (b): {model.intercept_}")# 用测试集进行预测
y_pred = model.predict(X_test)# 计算模型的准确率
accuracy = accuracy_score(y_test, y_pred)
print(f"模型的准确率: {accuracy * 100:.2f}%")# 输出分类报告(精确率、召回率、F1分数等)
print("\n分类报告:")
print(classification_report(y_test, y_pred))
最大似然估计 (Maximum Likelihood Estimation, MLE)
最大似然估计(MLE) 是一种常用的统计方法,用于估计模型参数,使得在给定数据下,模型的概率最大化。简单来说,最大似然估计旨在找到最有可能生成观测数据的参数值。
MLE 是一种 参数估计方法,广泛应用于许多机器学习和统计建模中,尤其在 监督学习 和 概率模型 中应用广泛。
主要作用是利用已知的样本结果,反推最有可能(最大概率)导致这样结果的参数值。
当“模型已定,参数未知”时,通过若干次试验,观察其结果,利用试验结果得到某个参数值能够使样本出现的概率为最大,则称为极大似然估计。
最大似然估计的基本思想
假设我们有一组观测数据,记为 X = { x 1 , x 2 , … , x n } X = \{x_1, x_2, \dots, x_n\} X={x1,x2,…,xn},这些数据来自某个概率分布,该分布有一个参数 θ \theta θ。我们的目标是通过最大化 似然函数 来估计参数 θ \theta θ。
具体来说,假设我们已知数据的分布类型(比如高斯分布、伯努利分布等),但我们并不知道分布的具体参数。最大似然估计就是通过寻找一个参数 θ \theta θ,使得给定这个参数下,观测到的数据的概率最大
。
似然函数
给定数据集 X = { x 1 , x 2 , … , x n } X = \{x_1, x_2, \dots, x_n\} X={x1,x2,…,xn} 和模型的参数 θ \theta θ,似然函数(Likelihood Function)表示在给定参数 θ \theta θ 下,观察到数据的概率。假设数据集中的样本独立且同分布(i.i.d.),则似然函数可以表示为:
L ( θ ; X ) = P ( X ∣ θ ) = ∏ i = 1 n P ( x i ∣ θ ) L(\theta; X) = P(X \mid \theta) = \prod_{i=1}^{n} P(x_i \mid \theta) L(θ;X)=P(X∣θ)=i=1∏nP(xi∣θ)
其中, P ( x i ∣ θ ) P(x_i \mid \theta) P(xi∣θ) 是在参数 θ \theta θ 下,样本 x i x_i xi 出现的概率。
对数似然函数
由于似然函数通常涉及乘法,计算起来可能会很复杂。为了解决这个问题,我们通常使用 对数似然函数,因为对数函数是单调递增的,因此最大化似然函数和最大化对数似然函数是等价的。对数似然函数为:
ℓ ( θ ; X ) = log L ( θ ; X ) = ∑ i = 1 n log P ( x i ∣ θ ) \ell(\theta; X) = \log L(\theta; X) = \sum_{i=1}^{n} \log P(x_i \mid \theta) ℓ(θ;X)=logL(θ;X)=i=1∑nlogP(xi∣θ)
对数似然函数将乘积转化为求和,计算更为简便。
最大化对数似然
最大似然估计的目标是找到一个参数值 θ ^ \hat{\theta} θ^,使得对数似然函数最大化,即:
θ ^ = arg max θ ℓ ( θ ; X ) \hat{\theta} = \arg\max_\theta \ell(\theta; X) θ^=argθmaxℓ(θ;X)
这就是最大似然估计的核心思想:通过找到参数 θ \theta θ 使得在该参数下,数据的对数似然值最大。
通过最大似然估计估计参数
示例 1:估计高斯分布的均值和方差
假设我们有一个来自高斯分布的数据集 X = { x 1 , x 2 , … , x n } X = \{x_1, x_2, \dots, x_n\} X={x1,x2,…,xn},我们想通过最大似然估计来估计其 均值 μ \mu μ 和 方差 σ 2 \sigma^2 σ2。
高斯分布的概率密度函数为:
P ( x ∣ μ , σ 2 ) = 1 2 π σ 2 exp ( − ( x − μ ) 2 2 σ 2 ) P(x \mid \mu, \sigma^2) = \frac{1}{\sqrt{2\pi \sigma^2}} \exp\left( -\frac{(x - \mu)^2}{2\sigma^2} \right) P(x∣μ,σ2)=2πσ21exp(−2σ2(x−μ)2)
根据似然函数的定义,数据集的似然函数为:
L ( μ , σ 2 ; X ) = ∏ i = 1 n 1 2 π σ 2 exp ( − ( x i − μ ) 2 2 σ 2 ) L(\mu, \sigma^2; X) = \prod_{i=1}^{n} \frac{1}{\sqrt{2\pi \sigma^2}} \exp\left( -\frac{(x_i - \mu)^2}{2\sigma^2} \right) L(μ,σ2;X)=i=1∏n2πσ21exp(−2σ2(xi−μ)2)
对似然函数取对数得到对数似然函数:
ℓ ( μ , σ 2 ; X ) = ∑ i = 1 n [ − 1 2 log ( 2 π σ 2 ) − ( x i − μ ) 2 2 σ 2 ] \ell(\mu, \sigma^2; X) = \sum_{i=1}^{n} \left[ -\frac{1}{2} \log(2\pi \sigma^2) - \frac{(x_i - \mu)^2}{2\sigma^2} \right] ℓ(μ,σ2;X)=i=1∑n[−21log(2πσ2)−2σ2(xi−μ)2]
为了最大化对数似然函数,我们分别对 μ \mu μ 和 σ 2 \sigma^2 σ2 求导,并令其为 0,得到最大似然估计的参数值。
-
对 μ \mu μ 求导:
∂ ℓ ∂ μ = ∑ i = 1 n x i − μ σ 2 = 0 \frac{\partial \ell}{\partial \mu} = \sum_{i=1}^{n} \frac{x_i - \mu}{\sigma^2} = 0 ∂μ∂ℓ=i=1∑nσ2xi−μ=0
解得:
μ ^ = 1 n ∑ i = 1 n x i \hat{\mu} = \frac{1}{n} \sum_{i=1}^{n} x_i μ^=n1i=1∑nxi
这就是样本均值的最大似然估计。 -
对 σ 2 \sigma^2 σ2 求导:
∂ ℓ ∂ σ 2 = − n 2 σ 2 + 1 2 σ 4 ∑ i = 1 n ( x i − μ ) 2 = 0 \frac{\partial \ell}{\partial \sigma^2} = -\frac{n}{2\sigma^2} + \frac{1}{2\sigma^4} \sum_{i=1}^{n} (x_i - \mu)^2 = 0 ∂σ2∂ℓ=−2σ2n+2σ41i=1∑n(xi−μ)2=0
解得:
σ 2 ^ = 1 n ∑ i = 1 n ( x i − μ ^ ) 2 \hat{\sigma^2} = \frac{1}{n} \sum_{i=1}^{n} (x_i - \hat{\mu})^2 σ2^=n1i=1∑n(xi−μ^)2
这就是样本方差的最大似然估计。
示例 2:伯努利分布的最大似然估计
假设我们有一组来自 伯努利分布 的观测数据。伯努利分布的概率质量函数为:
P ( x ∣ p ) = p x ( 1 − p ) 1 − x P(x \mid p) = p^x (1 - p)^{1 - x} P(x∣p)=px(1−p)1−x
其中, x ∈ { 0 , 1 } x \in \{0, 1\} x∈{0,1}, p p p 是成功的概率。
假设我们有 n n n 个独立的伯努利试验观测值 X = { x 1 , x 2 , … , x n } X = \{x_1, x_2, \dots, x_n\} X={x1,x2,…,xn},我们要估计参数 p p p。则似然函数为:
L ( p ; X ) = ∏ i = 1 n p x i ( 1 − p ) 1 − x i L(p; X) = \prod_{i=1}^{n} p^{x_i} (1 - p)^{1 - x_i} L(p;X)=i=1∏npxi(1−p)1−xi
对其取对数得到对数似然函数:
ℓ ( p ; X ) = ∑ i = 1 n [ x i log p + ( 1 − x i ) log ( 1 − p ) ] \ell(p; X) = \sum_{i=1}^{n} \left[ x_i \log p + (1 - x_i) \log(1 - p) \right] ℓ(p;X)=i=1∑n[xilogp+(1−xi)log(1−p)]
最大化对数似然函数,求导并令其为 0:
∂ ℓ ∂ p = ∑ i = 1 n x i p − 1 − x i 1 − p = 0 \frac{\partial \ell}{\partial p} = \sum_{i=1}^{n} \frac{x_i}{p} - \frac{1 - x_i}{1 - p} = 0 ∂p∂ℓ=i=1∑npxi−1−p1−xi=0
解得:
p ^ = 1 n ∑ i = 1 n x i \hat{p} = \frac{1}{n} \sum_{i=1}^{n} x_i p^=n1i=1∑nxi
这就是样本中 1 的比例的最大似然估计。
最大似然估计的优点和局限
优点
- 一致性:随着样本数量 n n n 的增加,最大似然估计趋近于真实的参数值(在大样本下是无偏的)。
- 有效性:MLE 是在满足正则条件下具有最小方差的估计量(在大样本下)。
- 广泛适用:最大似然估计可以用于各种类型的概率分布,不仅限于常见的分布(如高斯分布、伯努利分布等)。
局限
- 计算复杂度高:当样本量大或分布复杂时,最大似然估计的计算可能非常复杂,需要使用数值优化方法。
- 模型假设的依赖性:MLE 假设我们知道数据的分布类型,如果选择了错误的模型分布,估计结果可能会偏差。
- 需要大量数据:对于小样本数据,最大似然估计可能会导致过拟合,或者估计不准确。
参考资料
Simplifying Logistic Regression — A Beginner’s Guide with a Real-world Practical Example
【五分钟机器学习】机器分类的基石:逻辑回归Logistic Regression
最大似然估计(通俗讲解)
相关文章:

Logistic Regression(逻辑回归)、Maximum Likelihood Estimatio(最大似然估计)
Logistic Regression(逻辑回归)、Maximum Likelihood Estimatio(最大似然估计) 逻辑回归(Logistic Regression,LR)逻辑回归的基本思想逻辑回归模型逻辑回归的目标最大似然估计优化方法 逻辑回归…...

Vue文字转语音实现
在开发流程中,面对语音支持的需求,小规模语音内容或许可以通过预处理后播放来轻松应对,但当涉及大量语音时,这一方法就显得繁琐低效了。为此,智慧的开发者们总能找到便捷的解决方案——利用Web技术实现语音播放&#x…...

Docker快速部署RabbitMq
在外网服务器拉取镜像 docker pull arm64v8/rabbitmq:3.8.9-management或者拉去我的服务器的 docker pull registry.cn-hangzhou.aliyuncs.com/qiluo-images/linux_arm64_rabbitmq:3.8.9-management重新命名 docker tag registry.cn-hangzhou.aliyuncs.com/qiluo-images/lin…...

glog在vs2022 hello world中使用
准备工作 设置dns为阿里云dns 223.5.5.5,下载cmake,vs2022,git git clone https://github.com/google/glog.git cd glog mkdir build cd build cmake .. 拷贝文件 新建hello world并设置 设置预处理器增加GLOG_USE_GLOG_EXPORT;GLOG_NO_AB…...

[241129] Docker Desktop 4.36 发布:企业级管理功能、WSL 2 增强 | Smile v4.0.0 发布
目录 Docker Desktop 4.36 发布:企业级管理功能、WSL 2 和 ECI 增强Smile v4.0.0 发布!Java 机器学习库迎来重大升级 Docker Desktop 4.36 发布:企业级管理功能、WSL 2 和 ECI 增强 Docker Desktop 4.36 带来了强大的更新,简化了…...

CentOS使用chrony服务进行时间同步源设置脚本
CentOS使用chrony服务进行时间同步源设置脚本 #!/bin/bash# Created: 2024-11-26 # Function: Check and Set OS time sync source to 10.0.11.100 # FileName: centos_set_time_source_to_ad.sh # Creator: Anster # Usage: # curl http://webserver-ip/scripts/centos_set…...

Git仓库迁移到远程仓库(源码、分支、提交)
单个迁移仓库 一、迁移仓库 1.准备工作 > 手动在电脑创建一个临时文件夹,CMD进入该目录 > 远程仓库上创建一个同名的空仓库 2.CMD命令:拉取旧Git仓库(包含提交、分支、源码) $ git clone --bare http://git.domain.cn/…...

【算法刷题指南】优先级队列
🌈个人主页: 南桥几晴秋 🌈C专栏: 南桥谈C 🌈C语言专栏: C语言学习系列 🌈Linux学习专栏: 南桥谈Linux 🌈数据结构学习专栏: 数据结构杂谈 🌈数据…...

使用pymupdf提取PDF文档中的文字和其颜色
最近我在捣鼓一个PDF文件,想把它里面的文字和文字颜色给提取出来。后来发现有个叫pymupdf的库能搞定这事儿。操作起来挺简单的,pymupdf的示例文档里就有现成的代码可以参考。 how-to-extract-text-with-color 我本地的测试代码如下: impor…...

贪心算法题
0简介 0.1什么是贪心算法 贪心算法是用贪婪(鼠目寸光)的角度,找到解决问题的最优解 贪心策略:(从局部最优 --> 整体最优) 1把解决问题的过程分为若干步; 2解决每一个问题时,都选择当前“看上去”最优的解法; 3“…...

Python 3 教程第33篇(MySQL - mysql-connector 驱动)
Python MySQL - mysql-connector 驱动 MySQL 是最流行的关系型数据库管理系统,如果你不熟悉 MySQL,可以阅读我们的 MySQL 教程。 本章节我们为大家介绍使用 mysql-connector 来连接使用 MySQL, mysql-connector 是 MySQL 官方提供的驱动器。…...

23种设计模式之外观模式
目录 1. 简介2. 代码2.1 SelectFoodService (选择食品)2.2 PayService (支付服务)2.3 TakeService (制作服务)2.4 OrderService (下单服务)2.5 Food (食品)2.6 TackingSystem (外观类)2.7 Test (测试类) 3. 优缺点3. 总结 1. 简介…...

GateWay使用手册
好的,下面是优化后的版本。为了提高可读性和规范性,我对内容进行了结构化、简化了部分代码,同时增加了注释说明,便于理解。 1. 引入依赖 在 pom.xml 中添加以下依赖: <dependencies><!-- Spring Cloud Gate…...

MySQL1.0
1.数据库的三大范式 范式是为了使数据库设计更加合理,规范,减少数据冗余和数据不一致等问题指定的一系列规则。 第一范式:第一范式要求数据表中的每一列都是不可分割的原子数据项。例如:有一个学生信息表,包含 “学生…...

IDEA使用HotSwapHelper进行热部署
目录 前言JDK1.8特殊准备DECVM安装插件安装与配置参考文档相关下载 前言 碰到了一个项目,用jrebel启动项目时一直报错,不用jrebel时又没问题,找不到原因,又不想放弃热部署功能 因此思考能否通过其他方式进行热部署,找…...

简单web项目自定义部署Dockerfile
本意就是弄清楚如何做web自定义项目的镜像。 基础镜像是java:8u261-jdk,其中java路径为/opt/java webdemo1.0.0.1-SNAPSHOT.jar文件里面已经包含了lib文件。 可以设置PATH也可以不设置,但是建议设置JAVA_HOME FROM swr.cn-north-4.myhuaweicloud.com…...

基础Web安全|SQL注入
基础Web安全 URI Uniform Resource Identifier,统一资源标识符,用来唯一的标识一个资源。 URL Uniform Resource Locator,统一资源定位器,一种具体的URI,可以标识一个资源,并且指明了如何定位这个资源…...

SpringBoot -拦截器Interceptor、过滤器 Filter 及设置
Spring Boot拦截器(Interceptor)的概念 - 在Spring Boot中,拦截器是一种AOP的实现方式。它主要用于<font style"color:#DF2A3F;">拦截请求</font>,在请求处理之前和之后执行特定的代码逻辑。与过滤器不同的…...

C++小问题
怎么分辨const修饰的是谁 是限定谁不能被改变的? 在C中,const关键字的用途和位置非常关键,它决定了谁不能被修改。const可以修饰变量、指针、引用等不同的对象,并且具体的作用取决于const的修饰位置。理解const的规则能够帮助我们…...

avcodec_alloc_context3,avcodec_open2,avcodec_free_context,avcodec_close
avcodec_alloc_context3 是创建编解码器上下文,需要使用 avcodec_free_context释放 需要使用avcodec_free_context 释放 /** * Allocate an AVCodecContext and set its fields to default values. The * resulting struct should be freed with avcodec_free_co…...

强化学习的几个主要方法(策略梯度、PPO、REINFORCE实现等)(下)
由于平台字数限制,上文:https://blog.csdn.net/ooblack/article/details/144198538 4. PPO算法 近端策略优化(proximal policy optimization,PPO)算法是OpenAI的默认强化学习算法,在RLHF中也用到了这个算…...

计算机网络:IP协议详细讲解
目录 前言 一、IP网段划分 二、IP报头 三、解决IP地址不足-->NAT技术 前言 在之前,我们学习了传输层中的TCP和UDP,重点是TCP协议,他帮我们解决具体到主机的哪个应用(端口)、传输的可靠(序列号、校验和…...

2024信创数据库TOP30之华为Gauss DB
近日,由DBC联合CIW/CIS共同发布的“2024信创数据库TOP30”榜单正式揭晓,汇聚了国内顶尖的数据库企业及其产品,成为展示中国信创领域技术实力与发展潜力的重要平台。在这份榜单中,华为的GaussDB凭借其卓越的技术实力、广泛的行业应…...

在线家具商城基于 SpringBoot:设计模式与实现方法探究
第3章 系统分析 用户的需求以及与本系统相似的在市场上存在的其它系统可以作为系统分析中参考的资料,分析人员可以根据这些信息确定出本系统具备的功能,分析出本系统具备的性能等内容。 3.1可行性分析 尽管系统是根据用户的要求进行制作,但是…...

九、Spring Boot集成Spring Security之授权概述
文章目录 往期回顾:Spring Boot集成Spring Security专栏及各章节快捷入口前言一、授权概述二、用户权限三、用户授权流程三、Spring Security授权方式1、请求级别授权2、方法级别授权 往期回顾:Spring Boot集成Spring Security专栏及各章节快捷入口 Spr…...

python之Flask入门—路由参数
语法: /routerName/<string:parameter_name> 其中:routerName代表路由名称<>中的string是参数类型,parameter_name为参数名称 参数类型: (1) string 接收任何没有斜杠(/&#x…...

txt地图格式处理
1、txt地图格式 [属性描述] 坐标系2000国家大地坐标系 几度分带3 投影类型高斯克吕格 计量单位米 带号38 精度0.001 转换参数,,,,,, [地块坐标] 5,475.888,1,测试地块1,面,J50G077061,公路用地,地下, J1,1,113.22222222222222,23.129111721551794 J2,1,113.2722314…...

《数据挖掘:概念、模型、方法与算法(第三版)》
嘿,数据挖掘的小伙伴们!今天我要给你们介绍一本超级实用的书——《数据挖掘:概念、模型、方法与算法》第三版。这本书是数据挖掘领域的经典之作,由该领域的知名专家编写,系统性地介绍了在高维数据空间中分析和提取大量…...

GitLab CVE-2024-8114 漏洞解决方案
漏洞 ID 标题严重等级CVE ID通过 LFS 令牌提升权限高CVE-2024-8114 GitLab 升级指南GitLab 升级路径查看版本漏洞查询 漏洞解读 此漏洞允许攻击者使用受害者的个人访问令牌(PAT)进行权限提升。影响从 8.12 开始到 17.4.5 之前的所有版本、从 17.5 开…...

request和websocket
当然,可以为你详细介绍 FastAPI 中的 Request 对象。Request 对象在 FastAPI 中扮演着重要的角色,负责封装来自客户端的 HTTP 请求信息。了解 Request 对象的使用方法和属性,有助于你更高效地处理请求数据、访问请求上下文以及进行各种操作。…...