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

news2024/11/28 7:01:37

在这里插入图片描述

✅作者简介: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+ez1

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)=1P(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=1m[y(i)log(h(x(i)))+(1y(i))log(1h(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αWL

b : = b − α ∂ L ∂ b \textcolor{green}{b := b - \alpha \frac{\partial L}{\partial b}} b:=bαbL

其中, α \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+ez1

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)=1P(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=1m[y(i)log(h(x(i)))+(1y(i))log(1h(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αWL

b : = b − α ∂ L ∂ b \textcolor{green}{b := b - \alpha \frac{\partial L}{\partial b}} b:=bαbL

其中, α \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)xmin(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=1m[y(i)log(h(x(i)))+(1y(i))log(1h(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)}} WL=m1i=1m(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)})} bL=m1i=1m(h(x(i))y(i))

3.3.4 更新参数

使用梯度下降算法更新模型参数。参数更新的公式为:

W : = W − α ∂ L ∂ W \textcolor{red}{W := W - \alpha \frac{\partial L}{\partial W}} W:=WαWL

b : = b − α ∂ L ∂ b \textcolor{green}{b := b - \alpha \frac{\partial L}{\partial b}} b:=bαbL

其中, α \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=2Precision+RecallPrecisionRecall

其中, T P TP TP 是真正例, T N TN TN 是真负例, F P FP FP 是假正例, F N FN FN 是假负例。

3.5 预测

在模型训练和评估完成后,可以使用训练好的模型对新数据进行预测。预测过程包括以下步骤:

  1. 特征处理:对新数据进行相同的特征缩放处理。
  2. 计算概率:使用逻辑回归模型计算新数据的预测概率:

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. 分类决策:根据设定的阈值(通常为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知识。与此同时,对于日常生活有困扰的朋友,欢迎阅读我的第四栏目:《国学周更—心性养成之路》,学习技术的同时,我们也注重了心性的养成。

在这里插入图片描述

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

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

相关文章

TESSY学习笔记—project view界面的架构

1:project view界面能添加的元素 project view界面能添加的元素(暂且称为元素),打开project view界面,下图中红框勾选出来的就是 2:一共存在5种可添加元素 **1)Test collection 测试集合&…

distrobox install in ubuntu 22.04 / 在 ubuntu 22.04 上安装 distrobox (***) OK

要点: 本测试实验,采用的是 podman distrobox 在沙盒 snap 中,安装 distrobox 需要使用 --devmode 开发模式;可以避开 distrobox 的版本检查? distrobox 官方文档显示, Installation https://distrobox.i…

跨域及解决跨域

什么是跨域 前端与后端不在同一个域名下: 解决 import jakarta.servlet.*; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import org.springframework.stereotype.Component;import java.io.IOException…

使用Jest进行JavaScript单元测试

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 使用Jest进行JavaScript单元测试 引言 Jest 简介 安装 Jest 创建基本配置 编写测试用例 运行测试 快照测试 模拟函数 代码覆盖率…

【读书笔记/深入理解K8S】集群网络

前言 上一章讲了集群控制器的一个大概的原理,这一章讲一下集群网络。网络是集群通信的载体,因为该书是阿里云团队出品的,所以也以阿里云的集群网络方案为例,其他云厂商的网络集群方案一般来说也大同小异。所以通过本章的学习&…

Varjo核电厂虚拟仿真培训解决方案

虚拟现实技术的融入将帮助核电厂设计验证和操作员培训跟有效的进行。 芬兰的Loviisa工厂是世界上第一个为控制室操作员建造专用VR培训室的核电站。该工厂使用了Varjo混合现实头显设备为员工提供虚拟仿真训练。 案例Fortum: VR为核电厂操纵员培训带来明显优势 与构建物理模拟器相…

推荐一款基于Flash的交互式园林设计工具:Garden Planner

Garden Planner是一款由Artifact Interactive开发的基于Flash的交互式园林设计工具。它允许用户以拖放的方式安排植物、树木、建筑物和各种对象,使园林规划变得简单直观。此外,Garden Planner提供工具来快速创建铺路、路径和围栏,帮助用户设计…

HTML 标签属性——id、class、style 等全局属性详解

文章目录 1. id属性2. class属性3. style属性4. title属性5. lang属性6. dir属性7. accesskey属性8. tabindex属性小结HTML全局属性是一组可以应用于几乎所有HTML元素的特殊属性。这些属性提供了额外的功能和信息,使得网页开发者能够更好地控制元素的行为、样式和可访问性。 …

SpringBoot 整合达梦数据库 Demo

本文将介绍如何在 Spring Boot 项目中整合达梦数据库,并实现基本的用户管理功能。通过以下步骤,我们将创建一个简单的 RESTful API,以便于用户的增删改查(CRUD)操作。 【点我: 下载整套源码】 1. 创建数据库与数据表 …

高校实验室安全巡检系统设计与实现(源码+定制+开发)高校实验室巡检系统、实验室安全管理平台、实验室安全监控系统、智能实验室巡查系统、高校实验室风险管理

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…

【系统集成项目管理工程师教程】第4章 信息系统架构

教程内容总结,供参考,有错误请指正,友好交流。 4.架构基础 4.1.1指导思想 4.1.2设计原则 原则内容:包括坚持以人为本、创新引领、问题导向、整体协同、安全可控、科学实施等,这些原则应基于组织的信念和价值观&…

如何学习C++游戏开发

学习C游戏开发是一个涉及多个领域的复杂过程,包括编程、游戏设计、图形学等。 1. **学习C基础**: - 掌握C的基本语法和面向对象编程。 - 学习C标准库,特别是STL(标准模板库)。 2. **理解游戏开发概念**&#xf…

Socket 和 WebSocket 的应用

Socket(套接字)是计算机网络中的一个抽象层,它允许应用程序通过网络进行通信。套接字用于跨网络的不同主机上的应用程序之间的数据交换。在互联网中,套接字通常基于 TCP(传输控制协议)或 UDP(用…

mac 本地docker-mysql主从复制部署

mac 本地docker-mysql主从复制部署,服务器同理 1.本地docker启动两个mysql服务.端口号不一样 没有选择挂载到宿主机.只做测试用. 只是端口号不一样容器删掉.就没有数据了. 生产测试,需要挂在 master docker run -d --name mysql-slave -p 3308:3306 \ -e MYSQL_ROOT_PASSWORD…

HTML学习笔记十三

系列笔记目录 第一章 HTML的概述 第二章 URL简介 第三章 网页元素的属性 第四章 html字符编码 第五章 网页的语义结构 第六章 文本标签 第七章 列表标签 第八章 图像标签 第九章 链接标签 第十章 多媒体标签 第十一章 iframe 第十二章 表格标签 第十三章 表单标签 表单标签 系列…

在鱼皮的模拟面试里面学习有感

文章目录 1.上半场1.1.引言1.2.鱼皮的建议 2.下半场2.1中间问题 3.我的总结3.1我的体会3.2我的计划 1.上半场 今天的直播,第一次全程的跟下来:也算是放松一下~~ 1.1.引言 上半场是后来总结的,听的时候没有随手记录: 1&#xf…

思源笔记轻松连接本地Ollama大语言模型,开启AI写作新体验!

文章目录 前言1. 下载运行Ollama框架2. Ollama下载大语言模型3. 思源笔记设置连接Ollama4. 测试笔记智能辅助写作5. 安装Cpolar工具6. 配置Ollama公网地址7. 笔记设置远程连接Ollama8. 固定Ollama公网地址 前言 今天我们要聊聊如何通过cpolar内网穿透技术,把国产笔…

前端学习Day12 CSS盒子的定位(相对定位篇“附练习”)

一、相对定位 使用相对定位的盒子会相对于自身原本的位置,通过偏移指定的距离,到达新的位置。盒子的本体仍处于文档流中。使用相对定位,除了要将 position 属性值设置为 relative 外,还需要指定一定的偏移量。其中,水…

AJ-Report:一款开源且非常强大的数据可视化大屏和报表工具

嗨,大家好,我是小华同学,关注我们获得“最新、最全、最优质”开源项目和工作学习方法 AJ-Report是一个基于Java的开源报表工具,它集成了ECharts、Ant Design Vue等前端技术,致力于为企业提供一站式的数据可视化解决方案…

【深度学习】InstantIR:图片高清化修复

InstantIR——借助即时生成参考的盲图像修复新方法 作者:Jen-Yuan Huang 等 近年来,随着深度学习和计算机视觉技术的飞速发展,图像修复技术取得了令人瞩目的进步。然而,对于未知或复杂退化的图像进行修复,仍然是一个充满挑战的任务。针对这一难题,研究者们提出了 Insta…