深入了解逻辑回归:机器学习中的经典算法

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。
🍎个人主页:Java Fans的博客
🍊个人信条:不迁怒,不贰过。小知识,大智慧。
💞当前专栏:Java案例分享专栏
✨特色专栏:国学周更-心性养成之路
🥭本文内容:微信小程序——用户隐私保护指引填写(详细版)
文章目录
- 引言
- 1. 逻辑回归的基本原理
- 1.1 线性组合
- 1.2 Sigmoid函数
- 1.3 概率预测
- 1.4 决策边界
- 1.5 损失函数
- 1.6 优化过程
- 2. 数学模型
- 2.1 线性组合
- 2.2 Sigmoid函数
- 2.3 概率预测
- 2.4 决策边界
- 2.5 损失函数
- 2.6 优化过程
- 3. 实现步骤
- 3.1 数据准备
- 3.2 特征缩放
- 3.3 模型训练
- 3.3.1 初始化参数
- 3.3.2 定义损失函数
- 3.3.3 计算梯度
- 3.3.4 更新参数
- 3.3.5 迭代训练
- 3.4 模型评估
- 3.5 预测
- 4. 应用场景
- 4.1 医疗领域
- 示例代码
- 4.2 金融领域
- 示例代码
- 4.3 市场营销
- 示例代码
- 总结

引言
在机器学习的广阔领域中,逻辑回归作为一种经典的统计学习方法,凭借其简单性和有效性,始终占据着重要的地位。尽管其名称中包含“回归”二字,逻辑回归实际上是一种用于分类问题的算法,特别适合处理二分类任务。它的基本思想是通过对输入特征的线性组合,预测某一事件发生的概率,从而为决策提供依据。
逻辑回归的魅力在于其直观的数学模型和易于解释的结果。与其他复杂的机器学习算法相比,逻辑回归的模型参数可以直接反映特征对预测结果的影响,这使得它在许多应用场景中成为首选工具。例如,在医疗领域,逻辑回归可以帮助医生判断患者是否患有某种疾病;在金融行业,它可以用于信用评分,评估借款人是否可能违约。
此外,逻辑回归的实现相对简单,适合初学者学习和掌握机器学习的基本概念。通过对逻辑回归的深入理解,学习者不仅能够掌握分类算法的核心思想,还能为后续学习更复杂的模型打下坚实的基础。
在本文中,我们将详细探讨逻辑回归的基本原理、数学模型、实现步骤以及其在实际应用中的表现。通过对这些内容的深入分析,读者将能够全面理解逻辑回归的工作机制,并在实际问题中有效应用这一经典算法。无论你是机器学习的初学者,还是希望巩固基础知识的从业者,逻辑回归都是一个不可或缺的学习内容。
1. 逻辑回归的基本原理
逻辑回归是一种用于分类问题的统计方法,尤其适合处理二分类任务。它的核心思想是通过对输入特征的线性组合来预测某一事件发生的概率。尽管其名称中包含“回归”一词,但逻辑回归实际上是一种分类算法。以下将详细阐述逻辑回归的基本原理,并通过不同的颜色来区分关键知识点。
1.1 线性组合
逻辑回归的基本思想是通过对输入特征的线性组合来预测事件的发生概率。假设我们有一个特征向量 X = [ x 1 , x 2 , … , x n ] \textcolor{blue}{X} = [x_1, x_2, \ldots, x_n] X=[x1,x2,…,xn],逻辑回归模型可以表示为:
z = W T X + b \textcolor{red}{z} = \textcolor{orange}{W^T X + b} z=WTX+b
其中:
- W = [ w 1 , w 2 , … , w n ] \textcolor{orange}{W = [w_1, w_2, \ldots, w_n]} W=[w1,w2,…,wn] 是权重向量,表示每个特征对预测结果的影响。
- b \textcolor{green}{b} b 是偏置项,帮助模型更好地拟合数据。
1.2 Sigmoid函数
为了将线性组合的结果 z \textcolor{red}{z} z 转换为概率值,逻辑回归使用了Sigmoid函数(逻辑函数),其公式为:
σ ( z ) = 1 1 + e − z \textcolor{purple}{\sigma(z) = \frac{1}{1 + e^{-z}}} σ(z)=1+e−z1
Sigmoid函数的图像呈S形,能够将任意实数映射到0和1之间。当 z \textcolor{orange}{z} z 趋近于正无穷时, σ ( z ) \textcolor{purple}{\sigma(z)} σ(z) 趋近于1;当 z \textcolor{orange}{z} z 趋近于负无穷时, σ ( z ) \textcolor{purple}{\sigma(z)} σ(z) 趋近于0。这使得我们可以将逻辑回归模型的输出解释为事件发生的概率:
P ( Y = 1 ∣ X ) = σ ( W T X + b ) \textcolor{blue}{P(Y=1|X) = \sigma(W^T X + b)} P(Y=1∣X)=σ(WTX+b)
1.3 概率预测
逻辑回归模型的输出是一个概率值,表示在给定特征 X \textcolor{blue}{X} X 的情况下,事件 Y \textcolor{blue}{Y} Y 发生的概率。我们可以将其表示为:
P ( Y = 1 ∣ X ) = σ ( z ) \textcolor{blue}{P(Y=1|X) = \sigma(z)} P(Y=1∣X)=σ(z)
同时,事件 Y \textcolor{blue}{Y} Y 不发生的概率可以表示为:
P ( Y = 0 ∣ X ) = 1 − P ( Y = 1 ∣ X ) = 1 − σ ( z ) \textcolor{blue}{P(Y=0|X) = 1 - P(Y=1|X) = 1 - \sigma(z)} P(Y=0∣X)=1−P(Y=1∣X)=1−σ(z)
1.4 决策边界
在逻辑回归中,我们通常设定一个阈值(通常为0.5)来进行分类。当预测的概率 P ( Y = 1 ∣ X ) \textcolor{blue}{P(Y=1|X)} P(Y=1∣X) 大于或等于0.5时,我们将样本分类为正类(1);否则,分类为负类(0)。这个阈值决定了模型的决策边界,影响分类结果。
1.5 损失函数
为了训练逻辑回归模型,我们需要定义一个损失函数来衡量模型预测与实际标签之间的差距。逻辑回归通常使用交叉熵损失(Cross-Entropy Loss),其公式为:
L ( W , b ) = − 1 m ∑ i = 1 m [ y ( i ) log ( h ( x ( i ) ) ) + ( 1 − y ( i ) ) log ( 1 − h ( x ( i ) ) ) ] \textcolor{brown}{L(W, b) = -\frac{1}{m} \sum_{i=1}^{m} [y^{(i)} \log(h(x^{(i)})) + (1 - y^{(i)}) \log(1 - h(x^{(i)}))]} L(W,b)=−m1i=1∑m[y(i)log(h(x(i)))+(1−y(i))log(1−h(x(i)))]
其中:
- m \textcolor{orange}{m} m 是样本数量。
- y ( i ) \textcolor{red}{y^{(i)}} y(i) 是第 i i i 个样本的真实标签(0或1)。
- h ( x ( i ) ) = σ ( W T x ( i ) + b ) \textcolor{purple}{h(x^{(i)}) = \sigma(W^T x^{(i)} + b)} h(x(i))=σ(WTx(i)+b) 是模型对第 i i i 个样本的预测概率。
交叉熵损失函数的目标是最小化预测概率与真实标签之间的差异,从而提高模型的准确性。
1.6 优化过程
为了找到最佳的模型参数 W \textcolor{orange}{W} W 和 b \textcolor{green}{b} b,我们通常使用优化算法,如梯度下降(Gradient Descent)。梯度下降的基本思想是通过计算损失函数关于参数的梯度,逐步更新参数,以最小化损失函数。参数更新的公式为:
W : = W − α ∂ L ∂ W \textcolor{orange}{W := W - \alpha \frac{\partial L}{\partial W}} W:=W−α∂W∂L
b : = b − α ∂ L ∂ b \textcolor{green}{b := b - \alpha \frac{\partial L}{\partial b}} b:=b−α∂b∂L
其中, α \textcolor{purple}{\alpha} α 是学习率,控制每次更新的步长。
2. 数学模型
逻辑回归的数学模型是其核心部分,涉及到线性组合、Sigmoid函数、概率预测和损失函数等多个方面。以下将详细阐述逻辑回归的数学模型,并通过不同的颜色来区分关键知识点。
2.1 线性组合
逻辑回归的基本思想是通过对输入特征的线性组合来预测事件的发生概率。假设我们有一个特征向量 X = [ x 1 , x 2 , … , x n ] X = [x_1, x_2, \ldots, x_n] X=[x1,x2,…,xn],逻辑回归模型可以表示为:
z = W T X + b \textcolor{blue}{z} = \textcolor{red}{W^T X + b} z=WTX+b
其中:
- W = [ w 1 , w 2 , … , w n ] \textcolor{red}{W = [w_1, w_2, \ldots, w_n]} W=[w1,w2,…,wn] 是权重向量,表示每个特征对预测结果的影响。
- b \textcolor{green}{b} b 是偏置项,帮助模型更好地拟合数据。
2.2 Sigmoid函数

为了将线性组合的结果 z z z 转换为概率值,逻辑回归使用了Sigmoid函数(逻辑函数),其公式为:
σ ( z ) = 1 1 + e − z \textcolor{purple}{\sigma(z) = \frac{1}{1 + e^{-z}}} σ(z)=1+e−z1
Sigmoid函数的图像呈S形,能够将任意实数映射到0和1之间。当 z \textcolor{orange}{z} z 趋近于正无穷时, σ ( z ) \textcolor{purple}{\sigma(z)} σ(z) 趋近于1;当 z \textcolor{orange}{z} z 趋近于负无穷时, σ ( z ) \textcolor{purple}{\sigma(z)} σ(z) 趋近于0。这使得我们可以将逻辑回归模型的输出解释为事件发生的概率:
P ( Y = 1 ∣ X ) = σ ( W T X + b ) \textcolor{blue}{P(Y=1|X) = \sigma(W^T X + b)} P(Y=1∣X)=σ(WTX+b)
2.3 概率预测
逻辑回归模型的输出是一个概率值,表示在给定特征 X X X 的情况下,事件 Y Y Y 发生的概率。我们可以将其表示为:
P ( Y = 1 ∣ X ) = σ ( z ) \textcolor{blue}{P(Y=1|X) = \sigma(z)} P(Y=1∣X)=σ(z)
同时,事件 Y Y Y 不发生的概率可以表示为:
P ( Y = 0 ∣ X ) = 1 − P ( Y = 1 ∣ X ) = 1 − σ ( z ) \textcolor{blue}{P(Y=0|X) = 1 - P(Y=1|X) = 1 - \sigma(z)} P(Y=0∣X)=1−P(Y=1∣X)=1−σ(z)
2.4 决策边界
在逻辑回归中,我们通常设定一个阈值(通常为0.5)来进行分类。当预测的概率 P ( Y = 1 ∣ X ) \textcolor{blue}{P(Y=1|X)} P(Y=1∣X) 大于或等于0.5时,我们将样本分类为正类(1);否则,分类为负类(0)。这个阈值决定了模型的决策边界,影响分类结果。
2.5 损失函数
为了训练逻辑回归模型,我们需要定义一个损失函数来衡量模型预测与实际标签之间的差距。逻辑回归通常使用交叉熵损失(Cross-Entropy Loss),其公式为:
L ( W , b ) = − 1 m ∑ i = 1 m [ y ( i ) log ( h ( x ( i ) ) ) + ( 1 − y ( i ) ) log ( 1 − h ( x ( i ) ) ) ] \textcolor{brown}{L(W, b) = -\frac{1}{m} \sum_{i=1}^{m} [y^{(i)} \log(h(x^{(i)})) + (1 - y^{(i)}) \log(1 - h(x^{(i)}))]} L(W,b)=−m1i=1∑m[y(i)log(h(x(i)))+(1−y(i))log(1−h(x(i)))]
其中:
- m \textcolor{orange}{m} m 是样本数量。
- y ( i ) \textcolor{red}{y^{(i)}} y(i) 是第 i i i 个样本的真实标签(0或1)。
- h ( x ( i ) ) = σ ( W T x ( i ) + b ) \textcolor{purple}{h(x^{(i)}) = \sigma(W^T x^{(i)} + b)} h(x(i))=σ(WTx(i)+b) 是模型对第 i i i 个样本的预测概率。
交叉熵损失函数的目标是最小化预测概率与真实标签之间的差异,从而提高模型的准确性。
2.6 优化过程
为了找到最佳的模型参数 W \textcolor{red}{W} W 和 b \textcolor{green}{b} b,我们通常使用优化算法,如梯度下降(Gradient Descent)。梯度下降的基本思想是通过计算损失函数关于参数的梯度,逐步更新参数,以最小化损失函数。参数更新的公式为:
W : = W − α ∂ L ∂ W \textcolor{red}{W := W - \alpha \frac{\partial L}{\partial W}} W:=W−α∂W∂L
b : = b − α ∂ L ∂ b \textcolor{green}{b := b - \alpha \frac{\partial L}{\partial b}} b:=b−α∂b∂L
其中, α \textcolor{orange}{\alpha} α 是学习率,控制每次更新的步长。
3. 实现步骤
逻辑回归的实现步骤包括数据准备、特征缩放、模型训练、模型评估和预测等多个环节。以下将详细阐述每个步骤,并通过不同的颜色来区分关键知识点。
3.1 数据准备
在实现逻辑回归之前,首先需要准备好数据集。数据准备的步骤包括:
- 数据收集:获取相关的数据集,数据可以来自于公开数据集、数据库或其他来源。
- 数据清洗:处理缺失值、异常值和重复数据,以确保数据的质量。
- 特征选择:选择与目标变量相关的特征,以提高模型的性能。
数据准备的目标是确保数据集的完整性和有效性,为后续的模型训练打下基础。
3.2 特征缩放
特征缩放是逻辑回归实现中的一个重要步骤,尤其是在特征值范围差异较大的情况下。特征缩放的主要方法包括:
- 标准化(Standardization):将特征值转换为均值为0,标准差为1的分布。公式为:
x ′ = x − μ σ \textcolor{blue}{x' = \frac{x - \mu}{\sigma}} x′=σx−μ
其中, μ \mu μ 是特征的均值, σ \sigma σ 是特征的标准差。
- 归一化(Normalization):将特征值缩放到[0, 1]的范围。公式为:
x ′ = x − min ( x ) max ( x ) − min ( x ) \textcolor{blue}{x' = \frac{x - \min(x)}{\max(x) - \min(x)}} x′=max(x)−min(x)x−min(x)
特征缩放的目的是提高模型的收敛速度和稳定性。
3.3 模型训练
模型训练是逻辑回归实现的核心步骤,主要包括以下几个方面:
3.3.1 初始化参数
在训练开始之前,首先需要初始化模型参数 W \textcolor{red}{W} W 和偏置项 b \textcolor{green}{b} b。通常可以将它们初始化为0或小的随机值。
3.3.2 定义损失函数
使用交叉熵损失函数来衡量模型预测与实际标签之间的差距。损失函数的公式为:
L ( W , b ) = − 1 m ∑ i = 1 m [ y ( i ) log ( h ( x ( i ) ) ) + ( 1 − y ( i ) ) log ( 1 − h ( x ( i ) ) ) ] \textcolor{brown}{L(W, b) = -\frac{1}{m} \sum_{i=1}^{m} [y^{(i)} \log(h(x^{(i)})) + (1 - y^{(i)}) \log(1 - h(x^{(i)}))]} L(W,b)=−m1i=1∑m[y(i)log(h(x(i)))+(1−y(i))log(1−h(x(i)))]
3.3.3 计算梯度
通过反向传播算法计算损失函数关于参数的梯度。梯度的计算公式为:
∂ L ∂ W = 1 m ∑ i = 1 m ( h ( x ( i ) ) − y ( i ) ) x ( i ) \textcolor{red}{\frac{\partial L}{\partial W} = \frac{1}{m} \sum_{i=1}^{m} (h(x^{(i)}) - y^{(i)}) x^{(i)}} ∂W∂L=m1i=1∑m(h(x(i))−y(i))x(i)
∂ L ∂ b = 1 m ∑ i = 1 m ( h ( x ( i ) ) − y ( i ) ) \textcolor{green}{\frac{\partial L}{\partial b} = \frac{1}{m} \sum_{i=1}^{m} (h(x^{(i)}) - y^{(i)})} ∂b∂L=m1i=1∑m(h(x(i))−y(i))
3.3.4 更新参数
使用梯度下降算法更新模型参数。参数更新的公式为:
W : = W − α ∂ L ∂ W \textcolor{red}{W := W - \alpha \frac{\partial L}{\partial W}} W:=W−α∂W∂L
b : = b − α ∂ L ∂ b \textcolor{green}{b := b - \alpha \frac{\partial L}{\partial b}} b:=b−α∂b∂L
其中, α \textcolor{orange}{\alpha} α 是学习率,控制每次更新的步长。
3.3.5 迭代训练
重复计算梯度和更新参数的过程,直到损失函数收敛或达到预设的迭代次数。
3.4 模型评估
模型训练完成后,需要对模型进行评估,以判断其性能。常用的评估指标包括:
- 准确率(Accuracy):正确分类的样本占总样本的比例。
A c c u r a c y = T P + T N T P + T N + F P + F N \textcolor{blue}{Accuracy = \frac{TP + TN}{TP + TN + FP + FN}} Accuracy=TP+TN+FP+FNTP+TN
- 精确率(Precision):预测为正类的样本中,实际为正类的比例。
P r e c i s i o n = T P T P + F P \textcolor{blue}{Precision = \frac{TP}{TP + FP}} Precision=TP+FPTP
- 召回率(Recall):实际为正类的样本中,预测为正类的比例。
R e c a l l = T P T P + F N \textcolor{blue}{Recall = \frac{TP}{TP + FN}} Recall=TP+FNTP
- F1-score:精确率和召回率的调和平均数。
F 1 = 2 ⋅ P r e c i s i o n ⋅ R e c a l l P r e c i s i o n + R e c a l l \textcolor{blue}{F1 = 2 \cdot \frac{Precision \cdot Recall}{Precision + Recall}} F1=2⋅Precision+RecallPrecision⋅Recall
其中, T P TP TP 是真正例, T N TN TN 是真负例, F P FP FP 是假正例, F N FN FN 是假负例。
3.5 预测
在模型训练和评估完成后,可以使用训练好的模型对新数据进行预测。预测过程包括以下步骤:
- 特征处理:对新数据进行相同的特征缩放处理。
- 计算概率:使用逻辑回归模型计算新数据的预测概率:
P ( Y = 1 ∣ X ) = σ ( W T X + b ) \textcolor{blue}{P(Y=1|X) = \sigma(W^T X + b)} P(Y=1∣X)=σ(WTX+b)
- 分类决策:根据设定的阈值(通常为0.5)进行分类。
4. 应用场景
逻辑回归是一种广泛应用于分类问题的算法,尤其适合处理二分类任务。以下将详细阐述逻辑回归的几个主要应用场景,并结合示例代码进行说明。关键知识点将通过不同的颜色进行区分。
4.1 医疗领域
在医疗领域,逻辑回归常用于预测患者是否患有某种疾病。例如,医生可以使用逻辑回归模型来判断患者是否有糖尿病的风险。
示例代码
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, confusion_matrix# 读取数据集
data = pd.read_csv('diabetes.csv')# 特征和标签
X = data.drop('Outcome', axis=1) # 特征
y = data['Outcome'] # 标签# 数据集划分
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 初始化逻辑回归模型
model = LogisticRegression()# 训练模型
model.fit(X_train, y_train)# 预测
y_pred = model.predict(X_test)# 评估模型
accuracy = accuracy_score(y_test, y_pred)
conf_matrix = confusion_matrix(y_test, y_pred)print(f"准确率: \textcolor{blue}{accuracy:.2f}")
print(f"混淆矩阵:\n\textcolor{green}{conf_matrix}")
在这个示例中,我们使用了一个糖尿病数据集,通过逻辑回归模型预测患者是否患有糖尿病。模型的准确率和混淆矩阵可以帮助我们评估模型的性能。
4.2 金融领域
在金融领域,逻辑回归被广泛应用于信用评分,帮助银行判断借款人是否可能违约。通过分析借款人的历史数据,银行可以使用逻辑回归模型来预测其信用风险。
示例代码
# 假设我们有一个信用评分数据集
credit_data = pd.read_csv('credit_data.csv')# 特征和标签
X_credit = credit_data.drop('Default', axis=1) # 特征
y_credit = credit_data['Default'] # 标签# 数据集划分
X_train_credit, X_test_credit, y_train_credit, y_test_credit = train_test_split(X_credit, y_credit, test_size=0.3, random_state=42)# 初始化逻辑回归模型
model_credit = LogisticRegression()# 训练模型
model_credit.fit(X_train_credit, y_train_credit)# 预测
y_pred_credit = model_credit.predict(X_test_credit)# 评估模型
accuracy_credit = accuracy_score(y_test_credit, y_pred_credit)
conf_matrix_credit = confusion_matrix(y_test_credit, y_pred_credit)print(f"信用评分模型准确率: \textcolor{blue}{accuracy_credit:.2f}")
print(f"信用评分混淆矩阵:\n\textcolor{green}{conf_matrix_credit}")
在这个示例中,我们使用了一个信用评分数据集,通过逻辑回归模型预测借款人是否会违约。模型的准确率和混淆矩阵同样可以帮助我们评估模型的性能。
4.3 市场营销
在市场营销中,逻辑回归可以用于客户流失预测,帮助企业识别可能流失的客户。通过分析客户的购买行为和反馈,企业可以采取相应的措施来挽回客户。
示例代码
# 假设我们有一个客户流失数据集
churn_data = pd.read_csv('churn_data.csv')# 特征和标签
X_churn = churn_data.drop('Churn', axis=1) # 特征
y_churn = churn_data['Churn'] # 标签# 数据集划分
X_train_churn, X_test_churn, y_train_churn, y_test_churn = train_test_split(X_churn, y_churn, test_size=0.25, random_state=42)# 初始化逻辑回归模型
model_churn = LogisticRegression()# 训练模型
model_churn.fit(X_train_churn, y_train_churn)# 预测
y_pred_churn = model_churn.predict(X_test_churn)# 评估模型
accuracy_churn = accuracy_score(y_test_churn, y_pred_churn)
conf_matrix_churn = confusion_matrix(y_test_churn, y_pred_churn)print(f"客户流失预测模型准确率: \textcolor{blue}{accuracy_churn:.2f}")
print(f"客户流失预测混淆矩阵:\n\textcolor{green}{conf_matrix_churn}")
在这个示例中,我们使用了一个客户流失数据集,通过逻辑回归模型预测客户是否会流失。模型的准确率和混淆矩阵可以帮助企业评估客户流失的风险。
总结
逻辑回归作为一种经典的分类算法,以其简单性和有效性在机器学习领域中占据了重要地位。通过对输入特征的线性组合,逻辑回归能够预测事件发生的概率,并利用Sigmoid函数将这一概率映射到0和1之间。其核心原理包括线性组合、概率预测、决策边界的设定以及交叉熵损失函数的优化。逻辑回归不仅易于实现和解释,还能为许多实际应用提供可靠的解决方案,如医疗诊断、金融风险评估和市场营销分析等。掌握逻辑回归的基本原理和实现步骤,不仅为初学者打下了坚实的基础,也为深入探索更复杂的机器学习模型提供了必要的知识储备。通过对逻辑回归的学习,读者能够更好地理解分类问题的本质,并在实际项目中灵活应用这一强大的工具。
码文不易,本篇文章就介绍到这里,如果想要学习更多Java系列知识,点击关注博主,博主带你零基础学习Java知识。与此同时,对于日常生活有困扰的朋友,欢迎阅读我的第四栏目:《国学周更—心性养成之路》,学习技术的同时,我们也注重了心性的养成。

相关文章:
深入了解逻辑回归:机器学习中的经典算法
✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...
软件测试基础十三(python 函数)
函数 1. 函数的意义 代码复用 提高效率:Python中的函数允许将一段可重复使用的代码封装起来。例如,在一个数据分析项目中,可能需要多次计算一组数据的平均值。可以将计算平均值的代码定义为一个函数: def calculate_average(nu…...
计算机网络——HTTP篇
基础篇 IOS七层网络模型 TCP/IP四层模型? 应⽤层:位于传输层之上,主要提供两个终端设备上的应⽤程序之间的通信,它定义了信息交换的格式,消息会交给下⼀层传输层来传输。 传输层的主要任务就是负责向两台设备进程之间…...
信息化运维方案,实施方案,开发方案,信息中心安全运维资料(软件资料word)
1 编制目的 2 系统运行维护 2.1 系统运维内容 2.2 日常运行维护方案 2.2.1 日常巡检 2.2.2 状态监控 2.2.3 系统优化 2.2.4 软件系统问题处理及升级 2.2.5 系统数据库管理维护 2.2.6 灾难恢复 2.3 应急运行维护方案 2.3.1 启动应急流程 2.3.2 成立应急小组 2.3.3 应急处理过程 …...
自动化工具 Gulp
自动化工具 gulp 摘要 概念:gulp用于自动化开发流程。 理解:我们只需要编写任务,然后gulp帮我们执行 核心概念: 任务:通过定义不同的任务来组织你的构建流程。 管道:通过管道方式将文件从一个插件传递…...
css实现div被图片撑开
固定好盒子的宽度,高度随传过来的图片大小决定 <div class"tab-con"> <img:src"concertInfo.detail"alt""> </div>.tab-con {margin-bottom: 20px;width: 700px;img {width: 700px;height: auto;object-fit: cont…...
Power Pivot、Power BI 和 SQL Server Analysis Services 的公式语言:DAX(数据分析表达式)
DAX(Data Analysis Expressions)是一种用于 Power Pivot、Power BI 和 SQL Server Analysis Services 的公式语言,旨在帮助用户进行数据建模和复杂计算。DAX 的设计初衷是使数据分析变得简单而高效,特别是在处理数据模型中的表关系…...
大模型应用编排工具Dify二开之工具和模型页面改造
1.前言 简要介绍下 dify: 一款可以对接市面上主流大模型的任务编排工具,可以通过拖拽形式进行编排形成解决某些业务场景的大模型应用。 背景信息: 环境:dify-0.8.3、docker-21 最近笔者在做 dify的私有化部署和二次…...
Pytorch用BERT对CoLA、新闻组文本数据集自然语言处理NLP:主题分类建模微调可视化分析...
原文链接:https://tecdat.cn/?p38181 自然语言处理(NLP)领域在近年来发展迅猛,尤其是预训练模型的出现带来了重大变革。其中,BERT 模型凭借其卓越性能备受瞩目。然而,对于许多研究者而言,如何高…...
LightGBM-GPU不能装在WSL,能装在windows上
这是一篇经验总结文章,注重思路,忽略细节。 1.起因 用多个机器学习方法训练模型,比较性能,发现Light GBM方法获得的性能明显更高,但问题是在CPU上训练的速度特别特别慢,需要用GPU训练。 2.开始装LightGB…...
工业相机常用功能之白平衡及C++代码分享
目录 1、白平衡的概念解析 2、相机白平衡参数及操作 2.1 相机白平衡参数 2.2 自动白平衡操作 2.3 手动白平衡操作流程 3、C++ 代码从XML读取参数及设置相机参数 3.1 读取XML 3.2 C++代码,从XML读取参数 3.3 给相机设置参数 1、白平衡的概念解析 白平衡(White Balance)…...
Foundry 单元测试
安装 Foundry 如果你还没有安装 Foundry,请按照此处的说明进行操作:Foundry 安装 Foundry Hello World 只需运行以下命令,它将为你设置环境,创建测试并运行它们。(当然,这假设你已经安装了 Foundry&…...
idea database连接数据库后看不到表解决方法、格式化sql快捷键
最下面那个勾选上就可以了 或 格式化sql快捷键: 先选中, 使用快捷键格式化 SQL: Windows/Linux: Ctrl Alt L macOS: Cmd Alt L...
【数学二】线性代数-向量-向量组的秩、矩阵得秩
考试要求 1、理解 n n n维向量、向量的线性组合与线性表示的概念. 2、理解向量组线性相关、线性无关的概念,掌握向量组线性相关、线性无关的有关性质及判别法. 3、了解向量组的极大线性无关组和向量组的秩的概念,会求向量组的极大线性无关组及秩. 4、了解向量组等价的概念,…...
ABAP开发-内存管理
系列文章目录 文章目录 系列文章目录前言一、概述二、程序间调用三、外部会话和内部会话四、SAP内存与ABAP内存五、实例总结 前言 一、概述 内存是程序之间为了传递数据而使用的共享存储空间,在每个程序里使用的内存有SAP内存和ABAP内存 SAP内存分类 SAP内存 主会…...
【Ajax】跨域
文章目录 1 同源策略1.1 index.html1.2 server.js 2 如何解决跨域2.1 JSONP2.1.1 JSONP 原理2.1.2 JSONP 实践2.1.3 jQuery 中的 JSONP 2.2 CORS2.2.1 CORS实践 3 server.js 1 同源策略 同源策略(Same-Origin Policy)最早由 Netscape 公司提出,是浏览器的一种安全策…...
yii 常用一些调用
yii 常用一些调用 (增加中) 调用YII框架中 jquery:Yii::app()->clientScript->registerCoreScript(‘jquery’); framework/web/js/source的js,其中registerCoreScript key调用的文件在framework/web/js/packages.php列表中可以查看 在view中得到当前contro…...
网页版五子棋——用户模块(服务器开发)
前一篇文章:网页版五子棋—— WebSocket 协议-CSDN博客 目录 前言 一、编写数据库代码 1.数据库设计 2.配置 MyBatis 3.创建实体类 4.创建 UserMapper 二、前后端交互接口 1.登录接口 2.注册接口 3.获取用户信息 三、服务器开发 1.代码编写 2.测试后端…...
以RK3568为例,ARM核心板如何实现NTP精准时间同步?
背景 网络时间协议NTP(Network TimeProtocol)是用于互联网中时间同步的标准互联网协议,可以把计算机的时间同步到某些时间标准。NTP对于我们产品来说有什么用呢,简单的讲,当你的设备时间不准确了,你可以接…...
Twitter(X)2024最新注册教程
Twitter 现名为X,因为图标是一只小鸟的形象,大家也叫它小蓝鸟(埃隆马斯克于 2023 年对该平台进行了品牌重塑),目前仍然是全球最受欢迎的社交媒体和微博平台之一,全球活跃用户量大概在4.5亿。尤其是欧美国家…...
观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...
多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度
一、引言:多云环境的技术复杂性本质 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时,基础设施的技术债呈现指数级积累。网络连接、身份认证、成本管理这三大核心挑战相互嵌套:跨云网络构建数据…...
python打卡day49
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...
cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...
爬虫基础学习day2
# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…...
Caliper 配置文件解析:config.yaml
Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...
什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...
算法:模拟
1.替换所有的问号 1576. 替换所有的问号 - 力扣(LeetCode) 遍历字符串:通过外层循环逐一检查每个字符。遇到 ? 时处理: 内层循环遍历小写字母(a 到 z)。对每个字母检查是否满足: 与…...
