【一起啃书】《机器学习》第九章 聚类

news2024/11/25 20:32:07

文章目录

    • 第九章 聚类
      • 9.1 聚类任务
      • 9.2 性能度量
        • 9.2.1 外部指标
        • 9.2.2 内部指标
      • 9.3 距离计算
        • 9.3.1 欧氏距离
        • 9.3.2 曼哈顿距离
        • 9.3.3 切比雪夫距离
        • 9.3.4 闵可夫斯基距离
        • 9.3.5 标准化的欧几里得距离
        • 9.3.6 马氏距离
        • 9.3.7 兰氏距离
        • 9.3.8 余弦距离
        • 9.3.9 汉明距离
        • 9.3.10 编辑距离
      • 9.4 原型聚类
      • 9.5 密度聚类
      • 9.6 层次聚类

第九章 聚类

9.1 聚类任务

  聚类试图将数据集中的样本划分为若干个通常是不相交的子集,每个子集称为一个“簇”,通过这样的划分,每个簇可能对应于一些潜在的概念(类别),这些概念对聚类算法而言事先是未知的,聚类过程仅能自动形成簇结构,簇所对应的概念语义需由使用者来把握和命名。

  聚类既能作为一个单独过程,用于寻找数据内在的分布结构,也可作为分类等其他学习任务的前驱过程。例如,在一些商业应用中需对新用户的类型进行判别,但定义“用户类别”对商家来说却可能不太容易,此时往往可先对用户数据进行聚类,根据聚类结果将每个簇定义为一个类,然后再基于这些类训练分类模型,用于判别新用户的类型。

9.2 性能度量

  对聚类结果来说,通过某种性能度量可以评估其好坏,同时也可以直接将其作为聚类过程的优化目标,从而更好地得到符合要求的聚类结果,最后希望聚类结果的“簇内相似度”高且“簇间相似度”低。

9.2.1 外部指标

  外部指标是将聚类结果与某个专家给定的或者公认的参考模型进行比较,衡量两者之间的一致性。常见的外部指标有:

  • Jaccard系数:计算聚类结果与参考模型之间的交集与并集的比值,值越大表示一致性越高。
  • FM指数:计算聚类结果与参考模型之间的精确度和召回率的调和平均数,值越大表示一致性越高。
  • Rand指数:计算聚类结果与参考模型之间的一致决策和不一致决策的比值,值越大表示一致性越高。
  • NMI指数:计算聚类结果与参考模型之间的互信息与熵的比值,值越大表示一致性越高。

9.2.2 内部指标

  内部指标是直接考察聚类结果本身,不需要任何参考模型。常见的内部指标有:

  • 紧密度:反映一个簇内样本点之间的相似程度,值越大表示簇内越紧密。
  • 分割度:反映一个簇与其他簇之间的差异程度,值越大表示簇间越分离。
  • SSE指数:计算所有样本点与其所属簇中心之间的距离平方和,值越小表示聚类效果越好。
  • 轮廓系数:计算每个样本点的簇内相似度与簇间相似度之差与最大值之比,值越大表示聚类效果越好。
  • CH指数:计算所有样本点与全局中心之间的距离平方和与所有样本点与其所属簇中心之间的距离平方和之比,值越大表示聚类效果越好。
  • DB指数:计算每个簇内样本点与其所属簇中心之间的距离平均值与每两个簇中心之间的距离之比的最大值,值越小表示聚类效果越好。

9.3 距离计算

  这里不仅仅是对于聚类问题,对于整个机器学习领域,列出一些常用距离计算的方法。

9.3.1 欧氏距离

  欧式距离是空间中两个点之间的直线距离,计算公式如下:
d ( x , y ) = ∑ i = 1 n ( x i − y i ) 2 d(x,y) = \sqrt {\sum\limits_{i = 1}^n {{{({x_i} - {y_i})}^2}} } d(x,y)=i=1n(xiyi)2
  欧式距离在机器学习中有很多作用和应用场景,例如:

  • 在聚类算法中,可以用欧式距离来衡量样本之间的相似度,例如K-means算法就是基于欧式距离的最小化来划分簇。
  • 在回归分析中,可以用欧式距离来衡量预测值和真实值之间的误差,例如最小二乘法就是基于欧式距离的最小化来拟合模型。
  • 在降维算法中,可以用欧式距离来衡量数据在低维空间中的保持程度,例如主成分分析就是基于欧式距离的最大化来提取主成分。

9.3.2 曼哈顿距离

  曼哈顿距离是两个点在坐标系上的绝对轴距总和,也就是沿着坐标轴的水平和垂直方向的距离之和,计算公式如下:
d ( x , y ) = ∑ i = 1 n ∣ x i − y i ∣ d(x,y) = \sum\limits_{i = 1}^n {\left| {{x_i} - {y_i}} \right|} d(x,y)=i=1nxiyi
  曼哈顿距离在机器学习中也有很多作用和应用场景,例如:

  • 在聚类算法中,可以用曼哈顿距离来衡量样本之间的相似度,例如K-medoids算法就是基于曼哈顿距离的最小化来划分簇。
  • 在回归分析中,可以用曼哈顿距离来衡量预测值和真实值之间的误差,例如最小绝对偏差法就是基于曼哈顿距离的最小化来拟合模型。
  • 在计算机图形学中,可以用曼哈顿距离来优化浮点运算的速度和精度,例如在屏幕上绘制两点之间的直线时,可以用曼哈顿距离代替欧式距离来避免浮点运算。

9.3.3 切比雪夫距离

  切比雪夫距离是一种度量两个点之间的距离的方法,它是两个点在各个坐标轴上的差值的最大值,计算公式如下:

d ( x , y ) = max ⁡ ( ∣ x 1 − x 2 ∣ , ∣ y 1 − y 2 ∣ ) d(x,y) = \max (\left| {{x_1} - {x_2}} \right|,\left| {{y_1} - {y_2}} \right|) d(x,y)=max(x1x2,y1y2)
  切比雪夫距离在机器学习中也有一些作用和应用场景,例如:

  • 在聚类算法中,可以用切比雪夫距离来衡量样本之间的相似度,例如K-medoids算法就可以使用切比雪夫距离作为距离度量。
  • 在降维算法中,可以用切比雪夫距离来保留数据的结构信息,例如等度量映射(Isomap)算法就是基于切比雪夫距离的保持来映射数据到低维空间。
  • 在分类算法中,可以用切比雪夫距离来计算样本与类别中心之间的距离,例如最近邻分类器就可以使用切比雪夫距离作为分类依据。

9.3.4 闵可夫斯基距离

  闵可夫斯基距离是一组距离的定义,是对多个距离度量公式的概括性的表述,其中 p p p 是一个变参数。当 p = 1 p=1 p=1 时,就是曼哈顿距离;当 p = 2 p=2 p=2 时,就是欧式距离;当 $p \to \infty $时,就是切比雪夫距离。计算公式如下:
d ( x , y ) = ( ∑ i = 1 n ∣ x i − y i ∣ p ) 1 p d(x,y) = {\left( {\sum\limits_{i = 1}^n {{{\left| {{x_i} - {y_i}} \right|}^p}} } \right)^{\frac{1}{p}}} d(x,y)=(i=1nxiyip)p1
  闵可夫斯基距离在机器学习中也有很多作用和应用场景,例如:

  • 在聚类算法中,可以用闵可夫斯基距离来衡量样本之间的相似度,例如K-means算法就可以使用不同的 p p p 值来选择不同的距离度量。
  • 在回归分析中,可以用闵可夫斯基距离来衡量预测值和真实值之间的误差,例如最小二乘法就是基于欧式距离的最小化来拟合模型。
  • 在降维算法中,可以用闵可夫斯基距离来保留数据的结构信息,例如多维缩放(MDS)算法就是基于闵可夫斯基距离的保持来映射数据到低维空间。

9.3.5 标准化的欧几里得距离

  标准化的欧几里得距离是一种对欧几里得距离的改进方法,它的目的是消除不同维度之间的量纲和分布的影响,使得距离度量更加合理和准确,计算公式如下:
d ( x , y ) = ∑ i = 1 n ( x i − y i s i ) 2 d(x,y) = \sqrt {{{\sum\limits_{i = 1}^n {\left( {\frac{{{x_i} - {y_i}}}{{{s_i}}}} \right)} }^2}} d(x,y)=i=1n(sixiyi)2
  标准化的欧几里得距离在机器学习中有一些作用和应用场景,例如:

  • 在聚类算法中,可以用标准化的欧几里得距离来衡量样本之间的相似度,提高聚类的效果和稳定性。
  • 在降维算法中,可以用标准化的欧几里得距离来保留数据的结构信息,避免不同维度的尺度差异造成的信息损失。
  • 在分类算法中,可以用标准化的欧几里得距离来计算样本与类别中心之间的距离,提高分类的精度和鲁棒性。

9.3.6 马氏距离

  马氏距离是一种基于数据分布的距离度量方法,它考虑了数据的协方差矩阵,使得不同维度之间的相关性和尺度差异得到调整。若协方差矩阵为单位矩阵,那么马氏距离就简化为欧几里得距离。若协方差矩阵为对角阵,则其转为标准化的欧几里得距离。计算公式如下:
d ( x , y ) = ( x − y ) T S − 1 ( x − y ) d(x,y) = \sqrt {{{\left( {x - y} \right)}^T}{S^{ - 1}}(x - y)} d(x,y)=(xy)TS1(xy)
  马氏距离在机器学习中有一些作用和应用场景,例如:

  • 在异常检测中,可以用马氏距离来衡量样本与数据集中心的偏离程度,从而识别出异常值。
  • 在聚类算法中,可以用马氏距离来计算样本之间的相似度,提高聚类的效果和稳定性。
  • 在分类算法中,可以用马氏距离来计算样本与类别中心之间的距离,提高分类的精度和鲁棒性。

9.3.7 兰氏距离

  兰氏距离是一种加权的曼哈顿距离,它对于接近于0的值的变化非常敏感,因此可以用来处理稀疏数据。计算公式如下:
d ( x , y ) = ∑ i = 1 n ∣ x i − y i ∣ ∣ x i ∣ + ∣ y i ∣ d(x,y) = \sum\limits_{i = 1}^n {\frac{{\left| {{x_i} - {y_i}} \right|}}{{\left| {{x_i}} \right| + \left| {{y_i}} \right|}}} d(x,y)=i=1nxi+yixiyi
  兰氏距离在机器学习中有一些作用和应用场景,例如:

  • 在聚类算法中,可以用兰氏距离来计算样本之间的相似度,提高聚类的效果和稳定性。
  • 在分类算法中,可以用兰氏距离来计算样本与类别中心之间的距离,提高分类的精度和鲁棒性。
  • 在特征选择中,可以用兰氏距离来评估特征的重要性,减少特征的维度和冗余。

9.3.8 余弦距离

  余弦距离是一种基于向量夹角的距离度量方法,它反映了两个向量的方向上的相似性,而不考虑它们的长度或大小。计算公式如下:
d ( x , y ) = x ⋅ y ∣ x ∣ ⋅ ∣ y ∣ d(x,y) = \frac{{x \cdot y}}{{\left| x \right| \cdot \left| y \right|}} d(x,y)=xyxy
  余弦距离在机器学习中有一些作用和应用场景,例如:

  • 在文本分析中,可以用余弦距离来计算文档之间的相似度,提高信息检索和文本聚类的效果。
  • 在推荐系统中,可以用余弦距离来计算用户或物品之间的相似度,提高推荐的准确性和个性化。
  • 在图像处理中,可以用余弦距离来计算图像特征之间的相似度,提高图像检索和图像分类的效果。

9.3.9 汉明距离

  汉明距离是一种用于度量两个等长字符串之间的差异的方法,它表示将其中一个字符串变为另一个字符串所需要的最小替换次数。计算方式如下:
d ( x , y ) = ∑ i = 1 n I ( x i ≠ y i ) d(x,y) = \sum\limits_{i = 1}^n {I({x_i} \ne {y_i})} d(x,y)=i=1nI(xi=yi)
  其中 x x x y y y 是两个 n n n 位的字符串, I ( x i ≠ y i ) I({x_i} \ne {y_i}) I(xi=yi) 是一个指示函数,当 x i x_i xi y i y_i yi 不相等时为 1,否则为 0。

  汉明距离在机器学习中有一些作用和应用场景,例如:

  • 在信息编码中,可以用汉明距离来衡量编码之间的最小差错能力,提高容错性和纠错性。
  • 在模式识别中,可以用汉明距离来计算图像或文本之间的相似度,提高识别的准确性和效率。
  • 在数据挖掘中,可以用汉明距离来计算数据集之间的相异度,提高聚类的质量和稳定性。

9.3.10 编辑距离

编辑距离是一种用于度量两个字符串之间的差异的方法,它表示将其中一个字符串变为另一个字符串所需要的最少操作数,其中操作包括插入、删除和替换。计算公式如下:

E D x , y ( i , j ) = { max ⁡ ( i , j ) , min ⁡ ( i , j ) = 0 min ⁡ ( E D x , y ( i − 1 , j ) + I ( i , j ) , E D x , y ( i , j − 1 ) + I ( i , j ) , E D x , y ( i − 1 , j ) + I ( i , j ) ) , min ⁡ ( i , j ) ≠ 0 E{D_{x,y}}(i,j) = \begin{cases} \max (i,j) & ,\min (i,j) = 0 \\ \min (E{D_{x,y}}(i - 1,j) + I(i,j),E{D_{x,y}}(i,j - 1) + I(i,j),E{D_{x,y}}(i - 1,j) + I(i,j)) & ,\min (i,j) \ne 0 \\ \end{cases} EDx,y(i,j)={max(i,j)min(EDx,y(i1,j)+I(i,j),EDx,y(i,j1)+I(i,j),EDx,y(i1,j)+I(i,j)),min(i,j)=0,min(i,j)=0
编辑距离在机器学习中有一些作用和应用场景,例如:

  • 在自然语言处理中,可以用编辑距离来计算文本之间的相似度,提高拼写检查、机器翻译、语音识别等任务的效果。
  • 在生物信息学中,可以用编辑距离来计算 DNA 序列或蛋白质序列之间的相似度,提高基因分析、序列比对、进化树构建等任务的准确性。
  • 在数据挖掘中,可以用编辑距离来计算数据对象之间的相异度,提高聚类、分类、异常检测等任务的质量和稳定性。

9.4 原型聚类

  原型聚类亦称“基于原型的聚类”,此类算法假设聚类结构能通过一组原型刻画,在现实聚类任务中极为常用。通常情形下,算法先对原型进行初始化,然后对原型进行迭代更新求解。

9.4.1 k k k均值算法

  给定样本集 D = { x 1 , x 2 , . . . , x m } D = \{ {x_1},{x_2},...,{x_m}\} D={x1,x2,...,xm},“ k k k均值”算法针对聚类所得簇划分 C = { C 1 , C 2 , . . . , C k } C = \{ {C_1},{C_2},...,{C_k}\} C={C1,C2,...,Ck}最小化平方误差
E = ∑ i = 1 k ∑ x ∈ C i ∥ x − μ i ∥ 2 2 E = \sum\limits_{i = 1}^k {\sum\limits_{x \in {C_i}} {\left\| {x - {\mu _i}} \right\|_2^2} } E=i=1kxCixμi22
  其中 μ i = 1 ∣ C i ∣ ∑ x ∈ C i x {\mu _i} = \frac{1}{{\left| {{C_i}} \right|}}\sum\limits_{x \in {C_i}} x μi=Ci1xCix是簇 C i C_i Ci的均值向量,上述式子在一定程度上刻画了簇内样本围绕簇均值向量的紧密程度, E E E值越小则簇内样本相似度越高,同时 k k k均值算法采用了贪心策略,通过迭代优化来近似求解。

9.4.2 学习向量量化

  学习向量量化(LVQ)是一种用于模式分类的有监督的学习算法,也是一种原型聚类算法。它的基本思想是通过对原型向量进行迭代更新,使得同类样本的原型向量靠近,异类样本的原型向量远离。

  学习向量量化的过程可以分为以下几个步骤:

  • 初始化一组原型向量,每个原型向量代表一个类别,可以随机选择或者根据先验知识指定。
  • 从样本集中随机抽取一个样本,计算它与所有原型向量的距离,找出距离最近的原型向量。
  • 如果样本的类别标记与原型向量的类别标记一致,则将原型向量向样本方向移动一小步,以增加同类样本的相似度;如果不一致,则将原型向量远离样本方向移动一小步,以减少异类样本的相似度。
  • 重复上述步骤,直到达到预设的迭代次数或者原型向量不再发生变化。

  学习向量量化与k均值算法的异同如下:

  • 相同点:都是通过调整一组原型向量来刻画聚类结构,都是采用贪心策略进行迭代优化,都需要指定原型向量的个数。
  • 不同点:k均值算法是无监督的,不利用样本的类别信息,而LVQ算法是有监督的,利用样本的类别信息来辅助聚类;k均值算法使用簇内平方误差作为优化目标,而LVQ算法使用分类误差作为优化目标;k均值算法每次更新一个簇的均值向量,而LVQ算法每次更新一个样本最近的原型向量。

9.4.3 高斯混合聚类

  与 k k k均值、LVQ用原型向量来刻画聚类结构不同,高斯混合聚类采用概率模型来表达聚类原型。高斯混合聚类的目标是找到一组高斯分布的参数,使得样本数据能够用这些分布的线性组合来近似表示,高斯混合聚类的过程可以概括为以下几个步骤:

  • 初始化一组高斯分布的参数,包括每个分布的均值向量、协方差矩阵和混合系数,可以随机选择或者根据先验知识指定。
  • 从样本集中抽取一个样本,计算它属于每个高斯分布的后验概率,即根据贝叶斯公式计算每个分布的条件概率乘以混合系数,并归一化。
  • 根据每个样本的后验概率,更新每个高斯分布的参数,包括均值向量、协方差矩阵和混合系数,使得样本的对数似然函数最大化。
  • 重复上述步骤,直到达到预设的迭代次数或者参数不再发生变化。

9.5 密度聚类

  密度聚类亦称“基于密度的聚类”,此类算法假设聚类结构通过样本分别的紧密程度确定。通常情况下,密度聚类算法从样本密度的角度来考察样本之间的可连接性,并基于可连接样本不断扩展聚类簇以获得最终的聚类结果。

  DBSCAN是一种著名的密度聚类算法,它基于一组“领域”参数 ( ε , M i n P t s ) (\varepsilon ,MinPts) (ε,MinPts)来刻画样本分布的紧密程度,给定数据集 D = { x 1 , x 2 , . . . , x m } D = \{ {x_1},{x_2},...,{x_m}\} D={x1,x2,...,xm},定义下面这几个概念:

  • ε \varepsilon ε-领域:对 x j ∈ D {x_j} \in D xjD,其 ε − \varepsilon- ε领域包含样本集 D D D中与 x j x_j xj的距离不大于 ε \varepsilon ε的样本,即 N ε ( x j ) = { x i ∈ D ∣ d i s t ( x i , x j ) ⩽ ε } {N_\varepsilon }({x_j}) = \{ {x_i} \in D|dist({x_i},{x_j}) \leqslant \varepsilon \} Nε(xj)={xiDdist(xi,xj)ε}
  • 核心对象:若 x j x_j xj ε − \varepsilon- ε领域至少包含 M i n P t s MinPts MinPts个样本,即 ∣ N ε ( x j ) ∣ ⩾ M i n P t s \left| {{N_\varepsilon }({x_j})} \right| \geqslant MinPts Nε(xj)MinPts,则 x j x_j xj是一个核心对象;
  • 密度直达:若 x j x_j xj位于 x i x_i xi ε \varepsilon ε-领域中,且 x i x_i xi是核心对象,则称 x j x_j xj x i x_i xi密度直达;
  • 密度可达:对 x i x_i xi x j x_j xj,若存在样本序列 p 1 , p 2 , . . . , p n p_1,p_2,...,p_n p1,p2,...,pn,其中 p 1 = x i , p n = x j p_1=x_i,p_n=x_j p1=xi,pn=xj p i + 1 p_{i+1} pi+1 p i p_i pi密度直达,则称 x j x_j xj x i x_i xi密度可达;
  • 密度相连:对 x i x_i xi x j x_j xj,若存在 x k x_k xk使得 x i x_i xi x j x_j xj均由 x k x_k xk密度可达,则称 x i x_i xi x j x_j xj密度相连。

  DBSCAN的目标是根据点之间的密度相似性,将数据划分为不同的簇,并能够识别出噪声点。,DBSCAN的过程可以概括为以下几个步骤:

  • 选择一个未被访问过的点,计算它的 ε \varepsilon ε-领域,即距离它小于 ε \varepsilon ε的点的集合。
  • 如果 ε \varepsilon ε-领域中的点的个数大于等于 M i n P t s MinPts MinPts,那么把这些点标记为核心点,并形成一个新的聚类簇。
  • 如果 ε \varepsilon ε-领域中的点的个数小于 M i n P t s MinPts MinPts,那么把这个点标记为噪声点,并继续选择下一个未被访问过的点。
  • 对于每个核心点,检查它的 ε \varepsilon ε-领域中是否有其他核心点或边界点,如果有,就把它们加入到当前聚类簇中,如果没有,就结束当前聚类簇的扩展。
  • 重复上述步骤,直到所有的点都被访问过或者被分配到某个聚类簇中。

9.6 层次聚类

  层次聚类试图在不同层次对数据集进行划分,从而形成树形的聚类结构,数据集的划分可采用“自底向上”的聚合策略,也可采用“自顶向下”的分拆策略。AGNES是一种采用自底向上聚合策略的层次聚类算法,它先将数据集中的每个样本看作一个初始聚类簇,然后在算法运行的每一步中找出距离最近的两个聚类簇进行合并,该过程不断重复,直到达到预设的聚类簇个数,所以关键在于如何计算聚类簇之间的距离。

  AGNES算法需要指定一个合并簇的准则,即如何计算簇之间的距离。常用的有以下几种方法:

  • 最小距离法(Single Linkage):取两个簇中距离最近的两个样本的距离作为这两个簇的距离。这种方法容易产生长链效应,即将不相似的簇连接在一起。
  • 最大距离法(Complete Linkage):取两个簇中距离最远的两个样本的距离作为这两个簇的距离。这种方法容易产生紧凑的球形簇,但对噪声敏感。
  • 平均距离法(Average Linkage):取两个簇中所有样本两两之间的距离的平均值作为这两个簇的距离。这种方法相对平衡,能够适应不同形状和大小的簇。
  • 中心距离法(Centroid Linkage):取两个簇中各自样本均值点之间的距离作为这两个簇的距离。这种方法类似于K-Means算法,但可能出现反向现象,即合并后导致总距离增大。

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

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

相关文章

替换CentOS 6.x系统中 X11图形界面的启动logo

这个属于定制一个系统的logo了。 网上有很多方法,直接修改一个是最简单的了。 看操作: 下载CentOS 的主题,网上自己搜一个喜欢的就行了。 [rootlocalhost Downloads]# tar zxvf vizta-use-it.tar.gz [rootlocalhost Downloads]# cd vizta …

目标检测数据集:红外图像弱小飞机目标检测数据集

✨✨✨✨✨✨目标检测数据集✨✨✨✨✨✨ 本专栏提供各种场景的数据集,主要聚焦:工业缺陷检测数据集、小目标数据集、遥感数据集、红外小目标数据集,该专栏的数据集会在多个专栏进行验证,在多个数据集进行验证mAP涨点明显,尤其是小目标、遮挡物精度提升明显的数据集会在该…

ArduPilot开源代码之AP_VideoTX

ArduPilot开源代码之AP_VideoTX 1. 源由2. AP_VideoTX子模块2.1 AP_VideoTX2.1.1 AP_VideoTX::init2.1.1 AP_VideoTX::update 2.2 AP_Tramp2.2.1 AP_Tramp::init2.2.2 AP_Tramp::update2.2.3 AP_Tramp::process_requests 2.3 AP_SmartAudio2.3.1 AP_SmartAudio::init2.3.2 AP_S…

requests库的使用

文章目录 get 请求post 请求get 请求和 post 请求的区别response1. res.headers2. status_code3. json get 请求 参数类型作用urlstr发起请求的地址params字典url为基准地址,不包含查询参数;使用此参数会自动对 params 字典编码,然后和url拼…

【Spring】@PropertySource 配置文件自定义加密、自定义Yaml文件加载

文章目录 前言参考目录实现步骤1、包结构2、Maven3、自定义配置文件4、application 文件5、自定义数据库配置 MyDataSource6、加密配置 EncryptYamlProperties7、自定义读取yaml配置 MyPropertySourceFactory8、测试加密解密9、自定义 Properties 文件读取10、测试自定义配置读…

走近科学之《JVM 的秘密》

JVM JVM、内存模型、类加载机制、对象的创建、垃圾回收机制、对象内存分配策略、JVM调优等。 1 简介 JVM 即 java 虚拟机(Java Virtual Machine),JVM是一种用于计算设备的规范,是一个虚构出来的计算机。是通过在实际计算机上仿真…

msvcr120.dll丢失的解决方法-一键解决提示msvcr120.dll丢失问题

msvcr120.dll是的动态链接库文件之一。它在Windows操作系统中发挥着重要的作用,它提供了应用程序所需的各种功能和方法。 该文件返回编译后的代码所需的支持库。msvcr120.dll包含用于C / C编译器生成的应用程序所需的重要功能,包括数学函数,…

Selenium定位不到元素怎么办?一定要这么做

目录 1、frame/iframe表单嵌套 selenium自动化测试视频教程: 2、页面跳转到新标签页,或弹出警告框等 3、页面元素失去焦点导致脚本运行不稳定 4、使用Xpath或CSS定位 6、元素被遮挡,不可用,不可见 2023最新的Selenium自动化…

linux部署rabbitmq开启mqtt插件由于监听1883端口导致重启rabbitmq失败的解决方法

linux部署rabbitmq开启mqtt插件由于监听1883端口导致重启rabbitmq失败的解决方法 第一步:部署rabbitmq 部署rabbitmq请移步(在这里可以找到erlang和rabbitmq适配的版本并下载安装包): https://blog.csdn.net/char1otte/article/de…

mysql:索引原理与慢查询优化

一 索引的原理 1. 索引原理 索引的目的在于提高查询效率,与我们查阅图书所用的目录是一个道理:先定位到章,然后定位到该章下的一个小节,然后找到页数。相似的例子还有:查字典,查火车车次,飞机…

【Shiro】第一章 权限概述

目录 1、什么是权限 2、认证概念 3、授权概念​​​​​​​ 1、什么是权限 权限管理,一般指根据系统设置的安全策略或者安全规则,用户可以访问而且只能访问自己被授权的资源,不多不少。权限管理几乎出现在任何系统里面,只要…

玩转ChatGPT:R代码Debug一例

一、写在前面 今天家里领导发来求助,说是用GPT-3.5写一个 计算mRNA干性指数 的R代码,运行报错。让我用GPT-4帮忙Debug一哈。 搞了半小时,还是有亿点感悟,写段文字记录记录。 二、踩坑过程 (1)先看原始的…

渗透测试报告怎么写?记得收藏好哦

目录 1、准备好渗透测试记录 2、撰写渗透测试报告书 报告书的撰写建议 1、重点 2、图表重于文字 3、结果与建议 总结: 1、准备好渗透测试记录 测试记录是执行过程的日志,在每日测试工作结束后,应将当日的成果做成记录,虽然…

【Spring学习之更简单的读取和存储Bean对象】属性注入,set注入,构造方法注入

前言: 💞💞今天我们依然是学习Spring,这里我们会更加了解Spring的知识,知道Spring是怎么更加简单的读取和存储Bean对象的。也会让大家对Spring更加了解。 💟💟前路漫漫,希望大家坚持…

现在的00后,卷死了呀....

都说00后躺平了,但是有一说一,该卷的还是卷。这不,三月份春招我们公司来了个00后,工作没两年,跳槽到我们公司起薪23K,都快接近我了。 后来才知道人家是个卷王,从早干到晚就差搬张床到工位睡觉了…

数据科学之数据可视化——Tableau可视化气泡图

大家好,我是大鹏,今天给大家分享一个新的一个知识“气泡图”。 气泡图就是用气泡的大小和颜色表示不同的数据。

【RabbitMQ教程】第三章 —— RabbitMQ - 发布确认

💧 【 R a b b i t M Q 教程】第三章—— R a b b i t M Q − 发布确认 \color{#FF1493}{【RabbitMQ教程】第三章 —— RabbitMQ - 发布确认} 【RabbitMQ教程】第三章——RabbitMQ−发布确认💧 🌷 仰望天空,妳我亦是行人…

青大数据结构【2020】【三分析计算】

关键字: 无相连通图、Prim算法最小生成树、哈希函数、线性探测法、平均查找长度 1.对于一个带权连通无向图G,可以采用Prim算法构造出从某个顶点v出发的最小生成树,问该最小生成树是否一定包含从顶点v到其他所有顶点的最短路径。如果回答是&a…

docker 网络理论知识点 - CNM 和命名空间

Network 目录 1 network namespace1.1 动手小实验 2 回到 docker2.1 driver and docker02.2 network2.3 网桥 docker0 3 总结 1 network namespace 1.1 动手小实验 网络命名空间。linux kernel 提供的网络虚拟化的功能。创建多个隔离的网络空间。每个空间内 firewall, ether …

Matplotlib学习

文章目录 Matplotlib曲线图的绘制饼图的绘制直方图的绘制散点图的绘制 Matplotlib 在深度学习的实验中,图形的绘制和数据的可视化非常重要。Matplotlib是用于绘制图形的库,使用Matplotlib可以轻松地绘制图形和实现数据的可视化。这里,我们来…