机器学习学习笔记(吴恩达)(第三课第一周)(无监督算法,K-means、异常检测)

欢迎

在这里插入图片描述

聚类算法:

无监督学习:聚类、异常检测
推荐算法:
在这里插入图片描述
在这里插入图片描述
强化学习:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

聚类(Clustering)

聚类算法:查看大量数据点并自动找到彼此相关或相似的数据点。是一种无监督学习算法
在这里插入图片描述
聚类与二院监督学习算法对比:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
无监督:(聚类是无监督学习算法之一)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
聚类算法应用:如相似的新闻文章组合,市场细分,DNA数据分析,天文数据分析(星系、天体结构)

在这里插入图片描述
在这里插入图片描述

K-means算法

是一种常用的聚类算法

原理概述

【K-means工作原理过程】(会重复执行一个过程)
1.随机猜测集群的中心(即簇质心)的位置,遍历每一个点,并看它是接近两个簇质心中的哪个(如上图中红叉还是蓝叉)将这些点分配给 与它更接近的那个簇质心(如下图中为每个点标明颜色)
2.分别计算当前 蓝色和红色所有点的平均值(即对应位置),将 上一步的两个簇质心分别移动到 计算后的两个平均值处,得到新的簇质心的位置。根据新的簇质心位置 与各个点之间的距离,重新 为每个点分配类别(即标记颜色)
3.重复步骤2
【注】实际可能有k个类别,并不只适用于二分类问题
簇(聚类簇、cluster):由聚类所生成的一组样本的集合。同一簇内样本彼此相似,与其他簇中的样本相异
簇质心:即聚类中心、聚类质心,簇的中心

举例:有30个点
在这里插入图片描述
随机
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
先初步随机选两个点,分别作为两个集群的可能的中心

在这里插入图片描述
在这里插入图片描述

簇(聚类簇、cluster):由聚类所生成的一组样本的集合。同一簇内样本彼此相似,与其他簇中的样本相异
簇质心:簇的中心

【K-means工作原理过程】(会重复执行一个过程)
1.随机猜测集群的中心(即簇质心)的位置,遍历每一个点,并看它是接近两个簇质心中的哪个(如上图中红叉还是蓝叉)将这些点分配给 与它更接近的那个簇质心(如下图中为每个点标明颜色)
2.分别计算当前 蓝色和红色所有点的平均值(即对应位置),将 上一步的两个簇质心分别移动到 计算后的两个平均值处,得到新的簇质心的位置。根据新的簇质心位置 与各个点之间的距离,重新 为每个点分配类别(即标记颜色)
3.重复步骤2

step1:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
离红色簇质心近的点标记为红色,同理蓝色
在这里插入图片描述

step2:
查看所有红点并取他们的平均值,并将 红叉(即该红色类的簇质心)移动到该平均值处的位置(同理蓝点和蓝叉)
在这里插入图片描述
在这里插入图片描述
然后继续这个查看所有点并看其是否更接近 其对应的类别的新的簇质心的位置,此时 原来标记为某类颜色的点可能会变为另一类(因为 簇质心的位置发生了变化)

在这里插入图片描述
在这里插入图片描述
重复2的过程
在这里插入图片描述
直到
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

注:下个视频讲解如何计算 某类所有点的平均值位置

K-means算法具体过程

muk:为第k个类别的示例点的 聚类质心
如下例中,mu1和mu2是和 所有训练示例一样维度的向量

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
mu1和mu2是和 所有训练示例一样维度的向量

在这里插入图片描述
然后按照上一小节的过程开始执行
在这里插入图片描述
当共有m个训练示例、分类的类别为k时,c(i)为第i个训练示例xi对应的类别索引(i=1 to m)。
如举的例子中有30个训练示例,则 m=30, 每个训练示例是 x(1),…,x(30)

计算每个训练示例xi到各个类别(共k类,如此例中k=2)的聚类质心muk的距离,并对于每个训练示例,找到 其 到某个聚类质心距离最短的 对应的那个类别,将该类别设为c(i)
实际计算过程中,用的好像是 距离的平方(因为更好计算,本质是一样的)

n=2的意思是 好像对于每个 x(i)特征向量中,都有两个元素 如x(i)=(a,b) 即下图中坐标轴的横纵轴
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
计算距离采用L2范数(欧几里得范数)
在这里插入图片描述

在这里插入图片描述

下一步:

计算每个类别示例的 聚类质心(即分别计算 每个训练示例每个维度上元素和的平均值(如下图中每个训练示例是二维的,即(a,b),如下图中就是计算每个属于1类(即红色)的示例的横坐标之和的平均值,同理另一个维度 即纵轴)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
同理计算其他类别,如蓝色的横纵轴

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
【极端情况下可能某个类别 一个示例都没有,最后计算出的 聚类质心在原点】则此时:
方式一(更常用):取消该类别,此时是k-1个类别(簇),如下图中右上角的k=k-1
在这里插入图片描述
方式二:如果一定要保持k个类别,则重新随机初始化该集群的质心
在这里插入图片描述

对于不那么好分离的簇,K-means也适用
例子:设计师划分短袖的尺码标准SML(如下图中右边图)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

K-means的成本函数(亦称 失真函数distortion function)

【作用】通过成本函数 是不是 减小至保持不变,为我们提供判断 k-means收敛的依据

【背景】
在这里插入图片描述
【k-means的成本函数J】
在这里插入图片描述
【变量解释】
c(i)为第i个训练示例xi对应的类别索引
muk是第k个类别的聚类质心
muc^(i)^是第i个训练示例所对应(或者说为其分配的)的类别的聚类质心(的位置)
m:共m个训练示例
在这里插入图片描述
下图中的成本函数J(在有些文献中也称为失真函数Distortion function):所有样本点到它所属类的距离的平方 的平均值
算法的执行过程中会 更新c(1) … c(m) 和 mu1…muk 以降低J
在这里插入图片描述

在这里插入图片描述

【深入理解,及 为什么要最小化上面的成本函数J】
J的参数中的第一部分( c(1)…c(m),即 “k-means中 为示例点分配不同 聚类质心”一步 ),定义不同的c(i) 即为示例取不同的类别,会影响该示例到 类别聚类质心的距离,从而影响成本函数
J的参数中的第二部分( mu1,…,muk, 即 "不断计算同一类别示例的平均值 以调整聚类质心位置"一步)
在这里插入图片描述
下图为了解释上图中 参数的第二部分,即 选择不同的 聚类质心, 当 取平均值时计算距离最小

在这里插入图片描述

(博主)
在这里插入图片描述
在这里插入图片描述

下节讲述,将 聚类质心随机初始化 可以实现更好的k-means

K-means聚类质心初始化(μ)

【背景及目的】
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
以找到更好的k-means分类

【正文】
最终聚类的总数k < 训练示例数量m,才有意义。此处举例k=2,m=30
【选择聚类质心的常用方法】随机选择k个训练示例作为 初始的聚类质心(如下图中红叉和蓝叉)(而不是选择某k个特定的训练示例)
在这里插入图片描述
当k=3时,举例:当 进行多次随机初始化时,可能得到不同的 聚类质心初始化位置, 一旦质心选不好,可能陷入局部最小值(局部最优)(如下图中的 右下角两个图)。
解决方式: 分别计算出 不同随机初始化聚类质心后 对应的成本函数J,选择其中的min对应的那种
在这里插入图片描述

【结论】
经过一定次数的随机初始化后,选择 成本函数最小 对应的那种 聚类质心方式
在这里插入图片描述

(博主)
在这里插入图片描述
在这里插入图片描述

选择聚类数量(k)

聚类数量:即最后要将数据分成多少类

在这里插入图片描述
在这里插入图片描述

如下图中,分成两类或四类都有道理
在这里插入图片描述
在这里插入图片描述

(博主) 老师通常不用肘部法确定聚类数量k
在这里插入图片描述
确定聚类数量的常用方法:看 你后续的任务或目的,结合实际需求和成本
例如基于k-means压缩图像时(有作业), 综合考虑图像所占空间和图像质量 以确定图像压缩的程度
在这里插入图片描述
作业链接:https://blog.csdn.net/m0_56607174/article/details/126512061

异常检测(Anomaly detection)

是一种无监督学习算法
【个人概述】就是通过概率密度估计方法(如高斯分布)计算一种情况(即一个特征,特征中可能含有n种具体特征)出现的概率,如果该概率<epsilon(或一个很小的阈值),则认为其出现的概率很低、视为异常;反之如果大于epsilon,则认为正常
在这里插入图片描述

发现异常事件

density estimation:密度估计

【密度估计】异常检测中的密度估计是指根据已知数据集的分布情况,推测新的样本数据在该数据集中的概率分布,并利用这种概率分布来判断样本是否异常。

举例:
检测正在制造的飞机发动机存在的问题(此处为了方便仅以这两个特征为例)
计算发动机的不同特征
x1:发动机产生的热量
x2:震动强度
数据集共m台
roll off the assembly line:从流水线滚落(应该是装配完成)
在这里插入图片描述
在这里插入图片描述
数据集中每个元素都是一个 二维向量(横坐标是产生的热量,纵坐标是振动强度)
anomaly:异常[əˈnɑːməli]
在这里插入图片描述
【实现异常检测的常用方法】密度估计

首先为 特征x的概率建立一个算法模型(具体建立方法建后面几节的内容,暂时感觉就是概率论中学的概率密度函数)。 该算法模型能划分出 某个特征出现概率的高低,如 画下图所示的椭圆,能 最终判断或估计出 某种特征出现的概率高低

不同椭圆圈中的概率不同。(某特征(此处 就例如某种发动机对应的二维特征)出现的概率,具体解释可以看下节的p(x)解释)
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

密度估计模型:相当于 设定了个很小的数或阈值epsilon,当 新的特征向量(待检测的特征)xtest的概率p大于该阈值时,认为不会出现异常(为ok)
在这里插入图片描述
【异常检测的应用场景】
欺诈检测
互联网用户行为检测:如下图中 x(i)是用户i一些活动、行为的特征。根据这些可以对 用户的典型行为进行建模
制造业:同理也可以应用于制造业(如判断 某些制造的设备产品是否存在异常)
监视集群和数据中心的计算机:CPU运行情况、负载情况、流量等,被黑客入侵等
欺诈性金融交易
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

(博主)
在这里插入图片描述

下面将如何建立概率估计模型(暂时感觉就是概率论中学的概率密度函数)

(单个数字、特征)高斯分布(正态分布)(Gaussian (Normal) Distribution)

x是一个数字,如果x(为某值?)的概率可以由 均值为mu、方差为sigma的平方 的高斯分布给出(sigma为标准差,sigma的平方为方差),则其曲线如下
在这里插入图片描述
在这里插入图片描述
【p(x)的含义】
当你有少部分的示例时,获取得不到下图的曲线;当你有 接近无限量的样本时,可以得到下图所示的曲线规律
看着像钟形,因此 左边曲线也被称为钟形曲线

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
【下面看一下 均值mu和标准差sigma是如何影响高斯分布的】

在这里插入图片描述

在这里插入图片描述
【高斯分布应用到异常检测】
此处只是举例 数据集(共m个示例)中的每个示例x(i)是单个数字(即 只对某一种特征进行异常检测),实际上可能有很多种特征,即x(i)是多维特征向量(具体见下节)

使用1/m或1/m-1作为系数没有本质区别

在这里插入图片描述

(补充)
高斯分布:
在这里插入图片描述
概率密度函数:
在这里插入图片描述

(博主)
在这里插入图片描述
在这里插入图片描述

异常检测算法公式及细节

在这里插入图片描述
上节讲的是 训练集中的元素是 单个数字(即 只考虑 单个特征),本节 考虑多个特征(以 飞机发动机为例,考虑 两种特征,n=2)
在这里插入图片描述
在这里插入图片描述
尝试建立一个密度估计模型,判断 任意一个给定的特征向量的概率
在这里插入图片描述
在统计学中,当给定的一个特征向量中的n种特征之间是相互独立时,可以 写成下面
(但老师说,事实证明 这些特征即便不是独立的,算法也能正常工作,即也可以写成 概率乘积的形式
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
对特征向量x的不同特征建模时的 mu和sigma不同
当对x1(例如是飞机发动机例子中的热量特征)进行概率建模时,mu1和sigma1对应于 热量特征的均值和方差
在这里插入图片描述
在这里插入图片描述
对x2(例如是飞机发动机例子中的振动特征)建模时,mu和sigma对应于震动特征的 均值和方差
在这里插入图片描述
在这里插入图片描述
如果特征向量有n维特征,对于x3,…,xn的概率 p(x3 ; mu3, sigma3^ 2),…, p(xn ; mun, sigma n^ 2)也是同理

在这里插入图片描述

【结论】如何构建异常检测系统
1.确定出可以用于异常检测的有指导意义的特征xi
2.确定用于估计第j个特征的 均值muj和方差sigmaj2 (其中1<=j<=n)
注:如果是向量化实现的特征,也可以用下图中右下角红框公式计算mu(其中x和mu都是向量)
此时通过在未标记的训练集上估计这些mu和sigma,已经的得到了模型的所有参数
3.此时如果有一个新的示例x,计算x的概率p(x) 注:代入高斯分布公式
4.判断是否p(x)<epsilon,如果小于,认为是异常情况

在这里插入图片描述

在这里插入图片描述
【看一下在示例中的实际含义】

x1特征比x2特征取值范围大得多
(方差数值越大,说明这组数据的分散程度越大)

左下角图片中 任一点的高度=p(x1)*p(x2) 即取到该点特征(x1, x2)的概率
在这里插入图片描述
对于两个样本x(1) test和x(2) test
在这里插入图片描述

(博客)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

开发与评估异常检测系统(如何选择ε)

实数评估:如果有一套评估系统通过返回一个实数来评估你的算法,一个系统即使在开发过程中,也可以做出决定和改进。
(感觉就是通过量化指标的方式 来反映当前算法的效果)
在这里插入图片描述
在这里插入图片描述

举例:飞机发动机

假如10000个正常的发动机样本(表示为y=0),20个异常的发动机样本(表示为y=1)(通常异常样本很少)
下面拆分集合:
将6000个作为训练集,并假设全部为正常样本(因为极少数异常样本不会影响结果)。
2000个作为交叉验证集,其中要包含10个已知的异常样本(y=1)。
2000个作为测试集,其中要包含10个已知的异常样本(y=1)。

在这里插入图片描述
当准备好训练集、验证集和测试集后:
1.在训练集上训练模型。
2.在交叉验证集上优化参数 ε ,让算法更可靠;测试保留或去掉某个特征xj时算法的效果。
3.将测试集的结果当做最终评估指标。
这仍然是无监督学习算法,因为训练集是无标签的(或者 即便认为它是有标签的,标签也均为y=0,即尽管我们假设其都是正常的)

另一种异常检测算法(如下图中):在已知的异常样本更少时,尤其是像如下图中的20变成2个,没有能力创建测试集,所以只有训练集和交叉验证集(优化参数),缺点是使用交叉验证集的结果作为评估结果是不客观的(因为你没有测试集)。(但这是 当你仅有很少量的样本 尤其是很少量的异常样本时 的最佳方式)

在这里插入图片描述

【具体评估】
下面详细看一下 如何实际评估一下 在交叉验证集或测试集上的算法:
首先在训练集上拟合 模型p(x) (如上面的例子 训练集有6000个样本),
然后在任意的交叉验证集示例或测试集示例上计算p(x), 并根据下图的计算结果与 该示例的实际类别进行比较,以查看算法的效果。

【当数据具有倾斜数据集的特点时】
方式一:类比之前的第二课第三周选修部分的 衡量指标(Recall、Precision)、倾斜数据集部分,当 此处的数据也是倾斜数据集时(即 负例数远小于正例数 ,如下图的10<<2000),可以考虑用 TP、FP、FN、TN、Precision、Recall、F1-Score等指标来衡量算法的效果
metric:度量指标

方式二:也可以通过查看算法在 交叉验证集上的效果来 调整参数epsilon
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

异常检测与监督学习对比(没太看懂)

【个人总结】
当 目标是检测出某些问题时,如果 该问题的样本数量很少 且可能很快就有新的类型出现、比较不固定、以一种全新的方式出现(如黑客攻击、飞机引擎的新类型缺陷),那么用异常检测;
如果有足够的正样本且类型相对固定,比如 制造手机可能出现很多问题且异常类型相对固定(如天气预报,无非就那几种天气类型;或 基于症状判断患者是否某种疾病)。
异常检测试图找到全新的正样本,这些正样本可能是之前没出现过的类型;监督学习会查看已有的正样本并尝试确定 待测示例是否和之前的正样本相似

假如我们有带标签的数据,如果我们有已知的是异常的例子,还有一些已知正常的例子,如何选择使用异常检测方法还是监督学习的方法?

  • 【正例样本数量少、负例样本很多时,用异常检测(此时正例就是 异常,正例是 你的目标,例如异常检测的正向目标就是检测异常)】正常例子数量很少(记住y=1时这些例子为异常样例),那么你可以考虑使用一个异常检测算法。典型情况下,我们有 0 到 20 个,可能最多到50 个正样本,通常情况下,我们只有非常少量的正样本,因此正样本仅用于 cv集和测试集中的参数调整了

  • 【没有足够正样本时】未来可能出现的异常看起来可能会与已有的截然不同(没有足够的正样本用来学习),所以可能在正样本中,你可能已经了解 5 个或 10 个或 20个航空发动机发生故障的情况,但是可能到了明天,你需要检测一个全新的集合、一种新类型异常、一种全新的飞机发动机出现故障的情况,而且之前从来就没有见过。如果是这样的情况,那么我们就更应该对负样本用高斯分布模型
    p(x) 来建模,而不是费尽心思对正样本建模,因为明天的异常可能与迄今为止见过的情况完全不同。

  • 【足够多的正样本和负样本时(或即便只有20个正样本时),使用监督学习】有足够数量的正样本或是一个已经能识别正样本的算法,尤其是,假如你认为未来可能出现的正样本与你当前训练集中的正样本类似,那么这种情况下使用一个监督学习算法会更合理,它能够查看大量正样本和大量负样本来学到相应特征,并且能够尝试区分正样本和负样本(从正样本y=1中学习)。

在这里插入图片描述
【二者的应用】

在这里插入图片描述

在这里插入图片描述

总结: 当遇到一个特定问题时,我们应该能够判断出是用异常检测算法还是监督学习算法。二者的关键不同在于,在异常检测中,我们通常只有很少量的正样本(异常检测中的正样本即 出现异常的样本,y=1),因此对于一个学习算法而言,它是不可能从这些正样本这学习到足够的知识的,所以我们要做的是使用大量负样本,试图学出未出现过的全新正样本,从那些负样本中学习 p(x) 的值,比如说是飞机发动机故障的情况,我们保留小数量的正样本,用来评估我们的算法,这个算法用于交叉验证集或测试集。

选择使用什么特征

应用异常检测时,其中有一个因素对运行有很大影响,那就是使用什么特征,或者说选择什么特征来实现异常检测算法。

特征选择很重要,特征选择对于异常检测来说 甚至比 其对于监督学习方法更重要
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

选择呈高斯分布的特征(或能通过变换 转变为高斯分布的特征)

通常来说,我们选择特征的方法是选择那些特别大或者特别小的特征(那些很可能异常的样本中)

【选择的特征是呈高斯分布的 可有效帮助异常检测算法(如果不是,则将其通过各种转换变换的方式向高斯分布进行靠拢和转化)】确保选择的特征是或近似于高斯分布,或者转换数据使其近似于高斯分布。
【注意】如果要进行转换变换,对交叉验证集和测试集的数据要采用相同的变换方式
(用呈高斯分布的特征的异常检测模型时,有更大的概率去很好的拟合数据)
【举例】原特征非高斯分布 但可以通过变换向高斯特征进行转化:
如 对原特征取log(如下图x1 -> logx1)
或 用新的特征替换它(如下图给定x2,则取 log(x2+C))
或 取几次方根(如下图x3 1/2、x41/3
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

代码举例:(多尝试几种方式以找到最接近高斯分布的变换方式)
原输入特征:
在这里插入图片描述
尝试平方根:
在这里插入图片描述
尝试0.4次方,此时更接近高斯:
在这里插入图片描述
尝试用log:
在这里插入图片描述

还存在一些自动检测原始分布与高斯分布相似程度的算法,但是实践表明,上述方式已经足够了。

通过误差分析步骤来得到异常检测算法的特征

【概述】感觉和之前监督学习部分学的误差分析类似,重点关注算法做的不好的地方,即那些 预测出错的样本(特征)
通过一个误差分析步骤,这跟之前讨论监督学习算法时误差分析步骤是类似的,先完整地训练出一个算法,然后在一组交叉验证集上运行算法,然后找出那些预测出错的样本,并看看我们能否找到一些不寻常的可能使预测出错的新特征来帮助学习算法,然后添加此特征,使该样本与其他样本区分开,提高算法的性能。

可能存在这种情况:某示例确实是异常情况,但是 其和示例集中的其他示例相差不大,即 该异常示例出现的概率也不是特别低(如下图 虚线的点)
此时老师会详细查看一下该异常实例,并 尝试分析并识别出一些有助于 区分异常示例和正常示例 的新特征,然后 在算法模型中添加该新特征,以便提高性能
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
举例:进行欺诈行为检测,x1特征是交易数量,但是发现某个用户的交易数量没什么异常(仅凭x1特征很难区分出异常和正常),但其打字速度却快的离谱,此时就可以将 打字速度作为一个新的特征x2用于区分异常和正常,此时 基于x1和x2特征绘制模型曲线 就可以很明显的区分出异常和正常示例

在这里插入图片描述

还可以在原有特征的基础上将相关特征进行组合

【个人概述】直接看某些 基本的特征 并没觉得有异常,但是可以将这些特征组合起来得到新的特征, 基于这些特征进行 异常检测建模(如下图中x5= x3/x4)

举例:数据中心计算机的异常检测
选择 发生异常时具有特别大的值或特别小的值对应的特征

数据中心的监控计算机的特征,包括占用内存x1,磁盘每秒访问次数x2,CPU 负载x3,网络流量x4。假如猜测正常计算机CPU 负载和网络流量应该互为线性关系,如我们运行了一组网络服务器,如果其中一个服务器正在服务很多个用户,那么CPU负载和网络流量都很大。但有一台计算机CPU负载升高,但网络流量没有升高,可能的出错情形是我们的计算机在执行一个任务或一段代码时,进入了一个死循环卡住了,因此CPU负载升高,但网络流量没有升高,因为只是CPU执行了较多的工作,所以负载较大,卡在了死循环里。

所以创造两个特征的比值作为用于监测的新特征:

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

常见的限流算法

本文已收录至我的个人网站&#xff1a;程序员波特&#xff0c;主要记录Java相关技术系列教程&#xff0c;共享电子书、Java学习路线、视频教程、简历模板和面试题等学习资源&#xff0c;让想要学习的你&#xff0c;不再迷茫。 天下武学出同源 正所谓天下武学殊途同归&#xff…

用二维码介绍产品详情,扫码查看图文并茂的宣传册

传统的产品宣传方式&#xff0c;往往以产品手册、宣传单等纸质物料为主&#xff0c;更新成本高昂&#xff0c;一旦修改内容&#xff0c;就必须重新印刷&#xff0c;而且不易携带和保存&#xff0c;影响宣传效果和客户体验。 为了避免上述问题&#xff0c;可以在草料上搭建产品…

Python之循环判断语句

一、if判断语句 1. if...else if 条件: 满足条件时要做的事情1 满足条件时要做的事情2 ...... else: 不满足条件时要做的事情1 不满足条件时要做的事情2 ...... # -*- coding:utf-8 -*- age input("请输入年龄:") age int(age) if age > 18:print("已经成…

云贝教育 |【技术文章】存储对象的LIBRARY CACHE LOCK/PIN实验(一)

注: 本文为云贝教育 刘峰 原创&#xff0c;请尊重知识产权&#xff0c;转发请注明出处&#xff0c;不接受任何抄袭、演绎和未经注明出处的转载。 实验环境 操作系统&#xff1a;Red Hat Enterprise Linux release 8.8 (Ootpa) 数据库&#xff1a;oracle Version 19.3.0.0.0 …

Openstack云计算(六)Openstack环境对接ceph

一、实施步骤&#xff1a; &#xff08;1&#xff09;客户端也要有cent用户&#xff1a; useradd cent && echo "123" | passwd --stdin cent echo -e Defaults:cent !requiretty\ncent ALL (root) NOPASSWD:ALL | tee /etc/sudoers.d/ceph chmod 440 /et…

Endothelin-1(内皮素-1) ELISA kit

灵敏、快速的内皮素-1 ELISA试剂盒&#xff0c;适用于心血管和应激相关研究 内皮素&#xff08;Endothelin, ET&#xff09;是由血管内皮细胞产生的异肽&#xff0c;具有强大的血管收缩活性。这种肽由三个独立的基因编码&#xff0c;经过加工产生39个残基的 大ET 分子&#xff…

Linux的SSH远程管理和服务器之间的免密连接

目录 一、远程管理基础 1.ssh协议 2.ssh原理 3、使用ssh协议传输的命令 4.登录方法 二、免密连接 1.免密连接的原理 2.实战 一、远程管理基础 1.ssh协议 ssh协议是基于C/S机构的安全通道协议&#xff0c;通信数据进行加密处理&#xff0c;用于远程管理。 ssh的服务名…

Linux多网卡绑定实现负载均衡详解

将多块网卡绑定同一IP地址对外提供服务&#xff0c;可以实现高可用或者负载均衡。直接给两块网卡设置同一IP地址是不可以的。通过 bonding&#xff0c;虚拟一块网卡对外提供连接&#xff0c;物理网卡的被修改为相同的MAC地址。 目录 1、bond的作用 2、Bonding聚合链路工作模…

低代码开发,企业的金钥匙,工业4.0转型的催化剂

近年&#xff0c;国内工业产值开始逐渐放缓&#xff0c;人口红利也开始逐渐消退&#xff0c;工业领域现在面临着高能耗、高投入、高风险以及低效益的困境。我国将“先进制造”作为十四五规划重要目标&#xff0c;推动工业领域实体经济、智能化转型、实现数字化、加快工业互联网…

PattPatel-“Introduction to Computing Systems“(3)期末样卷题目解析:C语言与汇编语言转化

上接&#xff08;1&#xff09;basic ideas和与解析&#xff08;1&#xff09; 核心思路还是借具体题目来理解书中的两条basic ideas——abstraction of layers与think both softwarely and hardwarely。 C语言与汇编语言的转化 题目的要求是将下面的这段代码用LC-3改写。 这…

SQL备忘--集合运算

前言 本文讨论的是两个子查询结果的合并问题&#xff0c; 是行维度下的合并处理 例如子查询A查出5条记录、子查询B查出3条记录&#xff0c;那么将两个结果合并&#xff0c;则共返回8条记录 行维度上要能进行合并&#xff0c;前置要求是&#xff1a;子查询的列字段是相同的&…

erlang/OTP 平台(学习笔记)(一)

OTP 我们在OPT概述里曾简单的了解过&#xff0c;现在让我们来进行进一步了解 理解并发和erlang的进程 1.理解并发 并发就是并行吗?不完全是&#xff0c;至少在讨论计算机和编程时二者并不等同。 有个常用的半正式定义是这么说的:“并发&#xff0c;用于形容那些无须以特定…

数据库——DAY1(Linux上安装MySQL8.0.35(网络仓库安装))

一、环境部署 1、Red Hat Enterprise Linux 9.3 64 位 2、删除之前安装过本地镜像版本的MySQL软件&#xff08;以前未安装过&#xff0c;请跳过此步骤&#xff09; [rootlocalhost ~]# dnf remove mysql-server -y [rootlocalhost ~]# rm -rf /var/lib/mysql [rootlocalhost …

十一、three场景实现太阳光晕

今天讲的太阳光不是three自带的DirectionalLight这个灯光,而是在场景里面能真实看到的光线特效,也可以叫做光晕。 先看实现效果图 现在讲讲实现步骤 安装maath,这是一个由数学助手、随机生成器、bits和bobs的集合。引入这个的目的是LensFlare.js文件要用这个来做太阳的旋转…

odoo 一日一技 odoo去除业务模块的基础框架

基础介绍​​​ 为了单纯使用odoo基础框架&#xff0c;我将源码整理成四个版本&#xff0c;分为社区版、企业版、社区基础版(去除非必要的业务模块)、企业基础版(去除非必要的业务模块)。如图还可以这样创建四个对应配置文件。 这边以社区基础版为例 下面简单介绍一下这些模…

SSL证书怎么选?

首先&#xff0c;我们需要理解不同类型的SSL证书及其费用差异。通常情况下&#xff0c;SSL证书分为域名验证型&#xff08;DV&#xff09;、组织验证型&#xff08;OV&#xff09;和企业验证型&#xff08;EV&#xff09;三种。其中&#xff0c;DV证书是最常见的类型&#xff0…

Vue2-Vuex中State、Mutation及mapState辅助函数、mapMutations的基本用法

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态&#xff0c;并以相应的规则保证状态以一种可预测的方式发生变化。 个人笔记&#xff0c;仅供参考。 state&#xff1a;全局共享的响应式数据 mutation:声明修改全局响应式数据…

纯跟踪横向控制和算法仿真实现

文章目录 1. Pure Pursuit2. 算法原理3. 算法和仿真实现 1. Pure Pursuit Pure Pursuit是一种几何跟踪控制算法&#xff0c;也被称为纯跟踪控制算法。他的思想就是基于当前车辆的后轮中心的位置&#xff0c;在参考路径上寻找一个预瞄点&#xff0c;假设车辆可按照一定转弯半径…

odoo16 销售订单中数量与单价,手机录入不方便

odoo16 销售订单中数量与单价&#xff0c;手机录入不方便 在销售订单中&#xff0c;服装批发&#xff0c;数量与单价均是整数&#xff0c;系统默认的为保留两位小数的float类型&#xff0c;输入起来很不方便&#xff0c;如何修改 电脑版&#xff0c;输入时&#xff0c;自动选取…

Linux:NTP校时、PTP校时

目录 前言一、NTP校时1、简介2、ubuntu使用 NTP3、嵌入式设备使用 NTP 校时4、NTP 服务器的校时精度 二、PTP校时1、简介2、ubuntu使用 PTP3、嵌入式设备使用 PTP 校时 三、PTP 校时和 NTP 校时那个精度高一些 前言 在进行网络协议通信时&#xff0c;我们有时候需要计算通信的延…