朴素贝叶斯机器学习算法:从基础到高级

文章目录

  • 一、说明
  • 二、从一个简单例子入手
    • 2.1 简单示例
    • 2.2 朴素贝叶斯算法的直觉解释
  • 三、在训练阶段,朴素贝叶斯内部会发生什么?
    • 3.1 朴素贝叶斯如何处理数值数据?
    • 3.2 如果数据分布不是高斯分布怎么办?
    • 3.3 朴素贝叶斯的数值稳定性问题:
    • 3.4 朴素贝叶斯的零概率问题:(拉普拉斯加法平滑)
  • 四、使用没有拉普拉斯平滑的基本朴素贝叶斯方法,
  • 五、朴素贝叶斯的类型
    • 5.1 高斯朴素贝叶斯:
    • 5.2 . 分类朴素贝叶斯:
    • 5.3 多项式朴素贝叶斯:
    • 5.4 伯努利朴素贝叶斯

一、说明

朴素贝叶斯算法是一系列概率分类算法,用于文本分类等任务,例如垃圾邮件过滤和情感分析。它假定特征彼此独立,这意味着一个特征的存在与否不会影响另一个特征的概率。这个假设虽然过于简单,但允许朴素的贝叶斯分类器在实践中表现良好,同时计算效率高。

该算法基于概率中的贝叶斯定理。
在这里插入图片描述
朴素贝叶斯分类器在同质类型的输入特征上给出了很好的结果,这就是为什么它在文本数据任务(如情感分析)上给出了非常好的结果。

二、从一个简单例子入手

2.1 简单示例

我们用一个简单的示例,我们假如要提取出天气对翻越可可西里无人区的影响,提取出气候影响的模型,便可预测任意天气下,考察对穿越可可西里的可能性预测。我们先将历史中,穿越可可西里的天气资料,如下表:

天气气温湿度风天是否成功
日照天无风
日照天无风
阴天无风
雨天中等无风
雨天无风
雨天有风
阴天有风
日照天中等无风
日照天正常无风
雨天中等正常无风
日照天中等正常有风
阴天中等有风
阴天无风
雨天中等有风

以下,我们将演示如何使用贝叶斯理论的用法。

2.2 朴素贝叶斯算法的直觉解释

下面显示的数据集基本上是基于这个人是否能穿越可可西里,基于天气条件,如天气、温度、湿度和风,四个要素。

为了解决根据天气条件(天气、温度、湿度和风力)预测一个人是否会穿越的问题,我们可以应用朴素贝叶斯算法。给定特定的天气条件,例如天气 = 晴天,温度 = 凉爽,湿度 = 正常,大风 = 真,我们想预测这个条件穿过可可西里的可能性。

根据贝叶斯定理, P ( A ∣ B ) = ( P ( B ∣ A ) ∗ P ( A )) / P ( B ) P(A|B) = (P(B|A) * P(A)) / P(B) PAB=PBAPA))/PB

对于我们的例子,假设 Y= 能穿越,N= 不能穿越

B = { 天气 = 晴天,温度 = 凉爽,湿度 = 正常,风 = 真 } B= \{天气 = 晴天,温度 = 凉爽,湿度 = 正常,风 = 真\} B={天气=晴天,温度=凉爽,湿度=正常,风=}

因此,为了预测某个团队是否能穿越可可西里,我们需要计算以下概率:
P ( Y ∣ B ) P(Y|B) PYB P ( N ∣ B ) P(N|B) PNB在两者之间,我们根据这一点来决定这个团队是否穿越成功。

根据贝叶斯定理,我们可以按如下方式计算这些概率:

P ( Y ∣ B ) = ( P ( B ∣ Y ) ∗ P ( Y )) / P ( B ) P ( N ∣ B ) = ( P ( B ∣ N ) ∗ P ( N )) / P ( B ) P(Y|B) = (P(B|Y) * P(Y)) / P(B) \\ P(N|B) = (P(B|N) * P(N)) / P(B) PYB=PBYPY))/PBPNB=PBNPN))/PB

这里:

P(B|Y)是观察天气条件B的概率,假设这个团队成功穿越,
P(B|N)是观察天气条件B的概率,假设这个团队不能成功穿越;
P(Y)是成功穿越的先验概率(成功穿越的总概率),
P(N)是成功穿越的先验概率(不成功穿越的总概率),
P(B) 是观察天气条件 B 的概率,无论该人是否穿越。
在这两种情况下,我们用 P(B) 除法,这对两者都是通用的,所以我忽略了这个项,新方程变成了:

P ( Y ∣ B ) = P ( B ∣ Y ) ∗ P ( Y ) 和 P ( N ∣ B ) = P ( B ∣ N ) ∗ P ( N ) P(Y|B) = P(B|Y) * P(Y)\\ 和 P(N|B) = P(B|N) * P(N) PYB=PBYPYPNB=PBNPN

从上面的数据集中, P ( Y ) = 9 / 14 和 P ( N ) = 5 / 14 P(Y) = 9/14 和 P(N) = 5/14 PY=9/14PN=5/14

和 P(B|Y) = P(晴天∩凉爽∩正常∩ 真 |是)
和 P(B|N) = P(晴天∩凉爽∩正常∩ 真 |否)

但是在表中没有这样的条件同时匹配,
所以P(B|Y) = 0 和 P(B|N) =0

因此,P(Y|B) = 0 和 P(N|B) =0

那么,问题来了,我们将如何预测?

这里出现了一个朴素的假设,它假设所有输入列都是相互独立的。因此,我们改变了计算 P(晴天∩凉爽∩正常∩的方法 True |是的),我们计算如下:

P(晴天∩凉爽∩正常∩ 真 |是) = P(晴天 |是) * P(酷 |是) * P(正常 |是) * P(True |是的)

同样,

P(晴天∩凉爽∩正常∩ 真 |No) = P(晴天 |否) * P(酷 |否) * P(正常 |否) * P(真 |否)

在上表的帮助下,P(sunny |是)= 2/9,P(冷却 |是) = 3/9, P(正常 |是) = 6/9, P(True |是)= 3/9

并计算,P(Y|B) = 2/9 * 3/9 * 6/9 * 3/9 * 9/14 = 972/91854

类似地,我们可以计算 P(N |B)在给定的两个中哪个更大,这是我们的预测。

因此,机器学习算法中的朴素贝叶斯算法以这种方式工作。

三、在训练阶段,朴素贝叶斯内部会发生什么?

在朴素贝叶斯算法的训练阶段,所有可能的特征值和类组合的概率都以哈希格式计算和存储。这涉及估计给定每个类的类的先验概率和特征值的条件概率。在测试阶段,该算法根据观察到的特征值检索相应的概率,将它们相乘,并提供最终输出,指示预测的类别。通过在训练期间预计算和存储概率,测试阶段变得更加高效,因为它涉及简单的查找和乘法运算,而不是每次都重新计算概率。

3.1 朴素贝叶斯如何处理数值数据?

假设我有一个数据集,给出了该人的年龄以及是否结婚。
在这里插入图片描述

我今年 46 岁,我想使用朴素贝叶斯预测此人是否已婚。所以我需要计算 P(Y | 46) 和 P(N | 46)。但是在给定的表格中,给定的年龄可能不存在,那么这个时间这些概率就变成了零。为了解决这个问题,我们假设我们的 Age 列遵循高斯分布,并根据此分布计算 μ 和 σ 和 x= 46,并将所有值放入高斯分布函数中:

在这里插入图片描述
现在我们计算 f(x),它给出了相应年龄的概率。因此,通过这种方式,使用概率密度函数,我们可以对数值数据使用朴素贝叶斯算法。

3.2 如果数据分布不是高斯分布怎么办?

数据转换:根据数据的性质,可以应用变换以使其更正态分布。常见的变换包括对数变换、平方根变换和倒数变换。
替代发行版:如果您知道或怀疑您的数据遵循特定的非正态分布(例如,指数分布、泊松分布等),则可以在计算似然时修改朴素贝叶斯算法以假定该特定分布。
离散化:您可以通过对值进行分箱将连续数据转换为分类数据。有多种方法可以确定条柱,包括等宽条柱、等频条柱,或使用更复杂的方法,如 k-means 聚类。
对数据进行分箱后,可以使用标准的多项式或伯努利朴素贝叶斯方法。
核密度估计:一种估计随机变量概率密度函数的非参数方法。当分布未知时,可以使用核密度估计。
使用其他型号:如果上述选项都不起作用,则最好考虑使用不同的分类算法,该算法不会对特征的分布做出强有力的假设,例如决策树、随机森林或支持向量机。

3.3 朴素贝叶斯的数值稳定性问题:

在朴素贝叶斯算法中,数值稳定性可能是一个问题,尤其是在处理非常小的概率时。此问题是由于概率的乘法而产生的,这可能导致值极小,这些值可能会下溢或导致浮点计算中的精度损失。

用于解决朴素贝叶斯中数值稳定性的一种常用技术是使用对数概率而不是原始概率。通过采用概率对数,乘法运算转换为求和运算。这有助于缓解下溢问题,因为添加对数概率在数值上比直接乘以小概率更稳定。

在处理对数概率时,朴素贝叶斯分类的公式略有变化。不是将概率相乘,而是将对数概率相加,并选择结果值最高的类作为预测类。这种方法在解决数值稳定性问题的同时保持了概率的相对排序。

3.4 朴素贝叶斯的零概率问题:(拉普拉斯加法平滑)

拉普拉斯加法平滑是朴素贝叶斯算法中常用的一种技术,用于处理零概率问题。它用于避免在分类过程中遇到看不见的特征和类组合的问题。

在朴素贝叶斯中,在计算概率时,可能会遇到测试数据中未在训练数据中观察到的特征值。因此,此类组合的条件概率为零,这可能导致不准确的预测。

拉普拉斯加法平滑通过在估计概率时在分子和分母上添加一个小常数(通常为 1)来解决这个问题。这样,即使未在训练数据中观察到特定类的特定特征值,它仍然具有非零概率。

P(特征值 | 类) = (给定类 + α 的特征值计数) / (类计数 + n * α)

这里α通常取 1,n 的值取决于您使用的朴素贝叶斯类型。

让我们举个例子来更清楚地理解朴素贝叶斯中的拉普拉斯加法平滑:

假设我们有一个电影评论数据集,根据他们的情绪标记为正面 (+) 或负面 (-)。我们想使用朴素贝叶斯根据某些单词的出现将新评论分类为正面或负面。

下面是一个简化的训练数据集:
在这里插入图片描述
现在,假设我们想对新评论进行分类:“精彩的电影”。我们需要计算每个类(正和负)的概率,给定评论中出现的特定单词。

四、使用没有拉普拉斯平滑的基本朴素贝叶斯方法,

我们会遇到一个问题。“太棒了”这个词不会出现在正面或负面评论的训练数据中。因此,条件概率 P(“Fantastic” | +) 和 P(“Fantastic” | -) 将为零。当我们将这些概率相乘以计算 P(+ |“神奇的电影”)和P(- |“精彩的电影”),结果概率也为零。

如果没有拉普拉斯加法平滑,朴素贝叶斯分类器将无法提供任何预测,因为它遇到的概率为零。

现在,让我们通过在分子和分母上添加一个小常数(例如,1)来应用拉普拉斯平滑。应用拉普拉斯平滑后,正类和负类的“奇妙”概率变为非零。

这种调整允许朴素贝叶斯分类器对看不见的特征组合进行预测。通过添加常数,拉普拉斯平滑可确保概率不会变为零,并提供更稳健、更可靠的概率估计。

综上所述,朴素贝叶斯采用拉普拉斯加法平滑处理零概率问题,提高分类器的泛化能力。它允许在测试数据中遇到看不见的特征组合时进行预测。
使用拉普拉斯加法平滑系数“α”的朴素贝叶斯分类器中的偏差-方差权衡:
如果 alpha 值设置为零(无平滑),朴素贝叶斯分类器可能会过度拟合训练数据并产生过于自信的预测。这是因为分类器为看不见的特征值分配了零的概率,从而导致估计值有偏差。在这种情况下,模型可能具有低偏差但高方差。例如:

假设我们有一个二元分类问题,根据两个特征来预测电子邮件是否是垃圾邮件:“金钱”一词的存在和“彩票”一词的存在。我们在电子邮件及其相应标签的数据集上训练朴素贝叶斯分类器。

在没有平滑处理 (alpha = 0) 的情况下,我们假设训练数据中没有一个垃圾邮件包含“彩票”一词。在预测阶段,当分类器遇到包含单词“lottery”的测试电子邮件时,它会为事件“spam”分配零概率,给定特征“lottery”。这是因为它在训练期间没有观察到垃圾邮件类中的“彩票”一词。

因此,分类器将自信地将任何包含“彩票”一词的电子邮件归类为非垃圾邮件,即使它实际上是具有其他垃圾邮件相关功能的垃圾邮件。这种过度自信的预测是由于分配给看不见的特征值的概率为零。

在这种情况下,分类器将具有低偏差,因为它通过为看不见的特征值分配零概率来完美地拟合训练数据。但是,它将具有很高的方差,因为它无法很好地泛化到看不见的实例。

通过引入具有非零 alpha 值(如 alpha = 1)的拉普拉斯平滑,分类器将非零概率分配给看不见的特征值。它将观测到的特征值的概率质量重新分配到看不见的特征值,从而减少偏差并避免零概率。

使用拉普拉斯平滑,分类器将为给定特征“lottery”的事件“spam”分配一个小的非零概率。这允许模型做出更合理的预测,同时考虑其他特征和数据的整体分布。它减少了过度拟合,并改进了对看不见的实例的泛化,在偏差和方差之间取得了更好的平衡。

另一方面当 alpha 非常大时,添加的伪计数 (alpha) 在训练数据中实际观察到的计数中占主导地位。因此,平滑概率在所有特征值中变得非常相似,从而降低了模型的判别能力。这种过度平滑会导致朴素贝叶斯分类器变得过于保守,对数据中的特定模式不太敏感。

在极端情况下,当 alpha 设置为无穷大时,每个特征值的所有概率都相等,从而产生均匀分布。这基本上完全忽略了观察到的数据,并为所有可能的结果分配了相等的概率。这种极端的过度平滑导致泛化能力差和重要判别信息的丢失。

让我们考虑一个简单的例子,根据两个特征的存在将电子邮件分类为垃圾邮件或非垃圾邮件:“金钱”一词和“彩票”一词。我们有一个训练数据集,其计数如下:

垃圾邮件:100 次出现“金钱”,20 次出现“彩票”。
非垃圾邮件:“金钱”出现 10 次,“彩票”出现 90 次。
现在,让我们来看看不同 alpha 值对朴素贝叶斯分类器分配的概率的影响:

当然!让我们考虑一个简单的例子,根据两个特征的存在将电子邮件分类为垃圾邮件或非垃圾邮件:“金钱”一词和“彩票”一词。我们有一个训练数据集,其计数如下:

垃圾邮件:100 次出现“金钱”,20 次出现“彩票”。
非垃圾邮件:“金钱”出现 10 次,“彩票”出现 90 次。
现在,让我们来看看不同 alpha 值对朴素贝叶斯分类器分配的概率的影响:

无平滑 (alpha = 0):在没有任何平滑的情况下,如果我们遇到一封新电子邮件,其中包含训练数据中未看到的特征值,则其概率将为零。在这种情况下,如果电子邮件中不存在“金钱”一词,则无论是否出现“彩票”,它成为垃圾邮件的概率都将为零。这种灵活性的缺乏会导致过拟合。
中度平滑 (alpha = 1):使用拉普拉斯平滑,我们将伪计数 1 添加到所有特征出现中。概率计算如下:
P(“money” | spam) = (100 + 1) / (100 + 10 + 2) = 0.5038
P(“彩票”|垃圾邮件) = (20 + 1) / (100 + 10 + 2) = 0.1887
P(“money” | non-spam) = (10 + 1) / (10 + 90 + 2) = 0.1098
P(“彩票”|非垃圾邮件) = (90 + 1) / (10 + 90 + 2) = 0.8902
有了这些概率,我们可以对新电子邮件进行分类。但是,如果新电子邮件包含以前未见过的功能值(例如,“头奖”),则其概率仍为零。这限制了模型在观测特征值之外进行泛化的能力。

  1. 极端平滑 (alpha = 1000):现在,让我们考虑一个非常大的 alpha 值。概率计算如下:

P(“money” | spam) = (100 + 1000) / (100 + 10 + 2 * 1000) = 0.1887
P(“彩票” | 垃圾邮件) = (20 + 1000) / (100 + 10 + 2 * 1000) = 0.1887
P(“money” | 非垃圾邮件) = (10 + 1000) / (10 + 90 + 2 * 1000) = 0.1098
P(“彩票”|非垃圾邮件) = (90 + 1000) / (10 + 90 + 2 * 1000) = 0.1098
如您所见,垃圾邮件和非垃圾邮件类的所有概率都变得相同。这种极端的过度平滑会导致分类器变得过于保守,并失去根据观察到的特征值区分两个类的能力。因此,模型的性能会受到影响,并且与训练数据拟合不足。

总之,拉普拉斯平滑中非常大的 alpha 值会导致过度平滑,其中所有特征出现都被分配了相似的概率。这会导致欠拟合情况,即模型对观察到的数据变得不那么敏感,并且在泛化到新的、看不见的实例时表现不佳。

五、朴素贝叶斯的类型

**在这里插入图片描述

5.1 高斯朴素贝叶斯:

当所有输入特征都是数值时,则使用高斯朴素贝叶斯。拉普拉斯加性平滑不适用于高斯朴素贝叶斯,因为对于任何输入特征,这里的概率永远不会为零。
在这里插入图片描述

5.2 . 分类朴素贝叶斯:

当所有输入特征都是分类的时,此时使用分类朴素贝叶斯。在本例中应用拉普拉斯加法平滑时,“n”表示特定输入列的唯一特征值或类别的数量。

5.3 多项式朴素贝叶斯:

多项式朴素贝叶斯是朴素贝叶斯算法的一种变体,专为文本分类问题而设计,其中特征表示文档中单词的频率或出现次数。它通常用于自然语言处理任务,例如情绪分析、垃圾邮件过滤、主题分类和文档分类。

在多项式朴素贝叶斯中,特征通常表示为术语频率(例如单词在文档中出现的次数)或 TF-IDF(术语频率-反向文档频率)值,该值同时考虑了文档中单词的频率及其在整个数据集中的稀有性。

让我们举个例子来理解多项式朴素贝叶斯。
在这里插入图片描述
上表表示 docID,该文档中出现了不同的单词。训练集包含四个不同的文档,根据单词,我们需要预测 docID 5 是否来自中国。现在应用基于计数的词袋,我将每个文档转换为词频表,其中列代表不同的单词,行代表每个文档。
在这里插入图片描述
现在对于文档 5,我们需要预测它是否是 c= 中国。

因此,对于上述预测,我们需要计算
,P(Yes |中文=3,北京=0,上海=0,澳门=0,东京=1,日本=1)和P(否 |中国=3,北京=0,上海=0,澳门=0,东京=1,日本=1)

假设,B=(中国=3,北京=0,上海=0,澳门=0,东京=1,日本=1)

P(是 |B) = P(是) * P(B |是)
P(是)= 3/4,

P(中文 |是的)= 5 + 1/8+6 = 6/14,这里在分子中加上 1,在分母中加上 6 表示拉普拉斯加法平滑,alpha=1 和 n=6,因为 n 表示不同单词的总数。

P(北京 |是)= 1+1/8+6 = 2/14
P(上海 |是) = 1+1/8+6 = 2/14
P(澳门 |是) = 1+1/8+6 = 2/14
P(东京 |是) = 0+1/8+6= 1/14
P(日本 |是)= 0+1/8+6= 1/14

同样,所有这些概率也是针对 No 选项计算的,

P(No) = 1/4
P(北京 |No)= 0+1/3+6 = 1/9
P(上海 |No) = 1+1/3+6 = 1/9
P(澳门 |No) = 0+1/3+6 = 1/9
P(东京 |No) = 1+1/3+6= 2/9
P(日本 |No) = 1+1/3+6= 2/9
P(中文 |否) = 1+1/3+6 = 2/9

P(是 |B) = 3/4 * (6/14)³ *1/14 * 1/14 = 0.0003
P(否 |B) = 1/4 * (2/9)³ * 2/9 * 2/9 = 0.0001

所以对于文档 5 来自中国,因为 P( 是 |B) > P(否 |B).

5.4 伯努利朴素贝叶斯

伯努利朴素贝叶斯常用于特征为二进制或布尔变量的场景。在伯努利朴素贝叶斯中,输入数据表示为二进制特征向量,其中每个特征表示特定属性的存在与否。例如,在文本分类中,每个特征都可以对应于文档中特定单词的存在与否。

让我们举个例子来理解伯努利朴素贝叶斯。
在这里插入图片描述
上表表示 docID,该文档中出现了不同的单词。训练集包含四个不同的文档,根据单词,我们需要预测 docID 5 是否来自中国。现在应用二进制词袋,我将每个文档转换为二进制词频表,其中列代表不同的单词,行代表每个文档。
在这里插入图片描述
现在对于文档 5,我们需要预测它是否是 c= 中国。

因此,对于上述预测,我们需要计算
,P(Yes |中文=1,北京=0,上海=0,澳门=0,东京=1,日本=1)和P(否 |中国=1,北京=0,上海=0,澳门=0,东京=1,日本=1)

假设,B=(中国=1,北京=0,上海=0,澳门=0,东京=1,日本=1)

P(是 |B) = P(是) * P(B |是)
P(是)= 3/4,

伯努利随机变量的概率由下式给出,
P(X=K) = PK + (1-P)(1-K)

P(中文=1 |是的) = 3 +1/3+2 =4/5 ,因为这里 K=1
和 P(X=1) = P*1 +0 = P ,P 表示概率为 1,我也对概率应用了拉普拉斯加法平滑。

P(北京=0 |是)= 2+1/3+2 = 3/5
P(上海=0 |是) = 2+1/3+2 = 3/5
P(澳门=0 |是) = 2+1/3+2 = 3/5
P(Tokyo=1 |是) = 0+1/3+2 = 1/5
P(日本=1 |是)= 0+1/3+2 = 1/5

同样,所有这些概率也是针对 No 选项计算的,

P(No) = 1/4
P(北京 =0|否)= 1+1/1+2 = 2/3
P(上海=0 |否) = 1+1/1+2=2/3
P(澳门=0 |否) = 1+1/1+2=2/3
P(东京=1 |否) = 1+1/1+2=2/3
P(日本=1 |No) = 1+1/1+2=2/3
P(中文=1 |否) = 1+1/1+2=2/3

P(是 |B) =3/4 *4/5 * 3/5 * 3/5 * 3/5 *1/5 *1/5 = 0.005
P(否 |B) = 1/4 * 2/3 * 2/3 * 2/3 * 2/3 * 2/3 * 2/3= 0.022

因此,对于文档 5 不是来自中国,因为 P( No| B) > P(Yes |B).

总之,朴素贝叶斯算法是一个强大而高效的概率分类器。它通过假设分布或应用变换来处理数值数据。数值稳定性通过使用对数概率来解决,拉普拉斯平滑用于处理零概率。平滑参数的选择会影响偏差-方差的权衡。

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

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

相关文章

Flutter Navigator.popUntil 参数传递

Flutter 使用页面传参 以下是 在flutter 中页面传参的常用形式,都可以有有直接的传值参数提供。 Navigator.push #跳转到指定页面 压栈路由表Navigator.pushReplacement #关闭当前页面 跳转到指定页面压栈路由表Navigator.pus…

JavaScript的学习之自增自减

目录 一、自增 第一种:a 第二种:a 二、自减 一、自增 定义:可以是变量在自身的基础上增加1 自增分为两种:后(a)和前(a) 无论是a和a都会立即使原变量的值增1,不同的使…

【windows】电脑如何关闭Bitlocker硬盘锁

如果你的硬盘显示这样的一把锁,说明开启了Bitlocker硬盘加密。 Bitlocker硬盘锁,可以保护硬盘被盗,加密防止打开查看数据。 方法一:进入“控制面板->BitLocker 驱动器加密”进行设置。或者“控制面板\系统和安全->BitLocke…

排序算法系列二:归并排序、快速排序

零、说在前面 本文是一个系列, 入口请移步这里 一、理论部分 1.4:归并排序 1.4.1:算法解读: 使用二分法和插入排序两种算法的思想来实现。流程分为“拆分”、“合并”两大部分,前者就是普通的二分思想,将…

电商平台数据功能封装API需要注意些什么?如何调用封装后的API?

一、引言 随着电商行业的蓬勃发展,电商平台的数据功能愈发复杂多样,如何高效、安全地管理和使用这些数据成为了电商平台开发者面临的重要问题。API(Application Programming Interface)作为不同软件之间进行通信的桥梁&#xff0…

预警与校准并行:可燃气体报警器在矿区井下甲烷泄露防控中的应用

在矿区井下作业中,甲烷泄露是一个严重威胁工人生命安全和矿区生产安全的隐患。因此,及时、准确地预警甲烷泄露并采取相应的处理措施显得尤为重要。 可燃气体报警器作为一种有效的监测工具,在预防甲烷泄露事故中发挥着不可替代的作用。 在这…

STM32HAL库 -- RS485 开发板通信(速记版)

在本章中, 我们将使用 STM32F429的串口 2 来实现两块开发板之间的 485 通信(半双工)。 RS485 简介 485(一般称作 RS485/EIA-485)隶属于 OSI 模型物理层,是串行通讯的一种。电气特性规定为 2 线,半双工,多…

CVPR 2024最佳论文分享:文本到图像生成的丰富人类反馈

CVPR(Conference on Computer Vision and Pattern Recognition)是计算机视觉领域最有影响力的会议之一,主要方向包括图像和视频处理、目标检测与识别、三维视觉等。近期,CVPR 2024公布了最佳论文。共有10篇论文获奖,其…

如何实现智慧农田的精准灌溉

如何实现智慧农田的精准灌溉 智慧农田的精准灌溉是现代农业技术发展的重要组成部分,它集成了物联网、大数据分析、人工智能以及现代水利技术,旨在通过实时监测土壤湿度、气象条件及作物生长状况,实现水资源的高效利用和作物产量、品质的双重…

解决2021版IDEA新建没有Server问题

2024-06-27可用 我是这样解决的,仅供参考 IDEA软件是2021.1.1版 导入Tomcat的Servlet包,就解决了,详见下图操作 1. 打开项目结构 2. 选Libraries 3. 找到Tomcat安装路径 比如我安装在了“C:\soft”目录,就去这个目录找 然后记得…

基于Cardinal的AWD攻防平台搭建与使用以及基于docker的题目环境部署

关于 CTF 靶场的搭建与完善勇师傅前面已经总结过了,参考: CTF靶场搭建及Web赛题制作与终端docker环境部署_ctfoj搭建-CSDN博客 基于H1ve一分钟搭好CTF靶场-CSDN博客 Nginx首页修改及使用Nginx实现端口转发_nginx 修改欢迎首页-CSDN博客 关于H1ve导…

cPanel的SSL证书续订方法

在现代互联网环境中,SSL证书对于保障网站的安全和数据加密至关重要。下面我们将介绍如何在cPanel中续订SSL证书,并适时结合Hostease服务器的优势,帮助您更好地理解和操作。 生成私钥和CSR(证书签名请求) 难易程度&am…

Unity中模拟抛物线(非Unity物理)

Unity中模拟抛物线非Unity物理 介绍剖析问题以及所需公式重力加速度公式:h 1/2*g*t*t(h 1/2 * g * t ^ 2)速度公式:Vt V初 a * t 主要代码总结 介绍 用Unity物理系统去做的抛物线想要控制速度或者想要细微的控制一些情况是非常困难的。所以想要脱离U…

国产CPU兆芯发展分析

国产信创CPU-兆芯CPU CPU:信创根基,国之重器 国产CPU已形成自主架构、x86、ARM三大阵营。自主架构以龙芯、申威的LoongArch、SW-64为代表;ARM阵营由鲲鹏、飞腾领军,依托ARM授权开发处理器;x86阵营则以海光、兆芯等品牌…

基于halcon的眼在手外(Eye-to-Hand)标定

前言 上个月写了一个《基于halcon的眼在手上(Eye-in-Hand)标定》的文章,通过官方的示例代码进行了简单的叙述,想学习的小伙伴可以点击链接进行学习。之前博主认为眼在手上(Eye-in-Hand)的案例更多&#xff…

leetcode209:长度最小的子数组

题目链接&#xff1a;209. 长度最小的子数组 - 力扣&#xff08;LeetCode&#xff09; class Solution { public:int minSubArrayLen(int target, vector<int>& nums) {int n nums.size();if(n 0) return 0;int end 0, start 0, sum 0, ans 0x3f3f3f3f;while…

OpenAI将终止对中国提供服务,国内模型接棒

说起来&#xff0c;OpenAI自始至终就没有对中国提供过服务&#xff0c;OpenAI官方支持的国家和地区&#xff1a;https://platform.openai.com/docs/supported-countries 列表里面没有“Chinese”的选项&#xff0c;那为什么又要明令禁止呢&#xff0c;国类IT高手们&#xff0…

day001 环境的配置与工具的安装

VMware的软件包&#xff1a;https://pan.xunlei.com/s/VNs1KShnlZalTSJtejXXzchlA1?pwdudy5# 其他的软件可以在电脑管家中下载&#xff0c;注意不要安装到c盘&#xff0c;否则影响开机速度。 虚拟机工具&#xff1a;VMware17.5.1 1&#xff0c; 2&#xff0c; 3&#xff0c…

欢乐钓鱼大师攻略:卡鱼骨、典藏鱼、藏宝图怎么钓?

《欢乐钓鱼大师》是一款以钓鱼为核心玩法的休闲模拟手游&#xff0c;通过逼真的画面和丰富的钓鱼体验吸引了大量玩家。本文将为你详细介绍这款游戏的亮点、常见问题以及一些实用的游戏技巧&#xff0c;帮助你在《欢乐钓鱼大师》中获得更愉快的游戏体验。 辅助工具 1. 辅助工具…

内网安全【5】隧道搭建

1.内网穿透工具 Ngrok Frp Spp Nps EW(停更) 一共是这五个 优点&#xff1a;穿透加密数据&#xff0c;中间平台&#xff0c;防追踪&#xff0c;解决网络问题 Sunny-Ngrok内网转发内网穿透 - 国内内网映射服务器 https://github.com/esrrhs/spp https://github.com/fatedie…