西瓜书学习——第一、二章笔记

news/2024/5/2 7:23:30

@[]

什么是机器学习?

研究关于“学习算法”(一类能从数据中学习出其背后潜在规律的算法)的一门学科。

PS:深度学习指的是神经网络那一类学习算法,因此是机器学习的子集。

假设空间和版本空间

举个栗子:假设现已收集到某地区近几年的房价和学校数量数据,希望利用收集到的数据训练出能通过学校数量预测房价的模型,具体收集到的数据如下表所示:

在这里插入图片描述

**假设空间:**一元一次函数,算法: 线性回归,模型: y = 3 x − 2 y = 3x - 2 y=3x2

**假设空间:**一元二次函数,算法: 多项式回归,模型: y = x 2 y = x^2 y=x2

所有能够拟合训练集的模型(假设) 构成的集合称为 版本空间

基本术语

样本: 也称为“示例”,是关于一个事件或对象的描述。

一个”色泽青绿,根蒂蜷缩,敲声清脆”的西瓜用向量来表示即为

x = ( 青绿 ; 蜷缩 ; 清脆 ) x =(青绿;蜷缩;清脆) x=(青绿;蜷缩;清脆)

向量中的各个维度称为**“特征”或者”属性”**。

向量中的元素用分号 “;" 分隔时表示此向量为列向量,用逗号 ”," 分隔时表示为行向量。

特征工程:pass

标记:机器学习的本质就是在学习样本在某个方面的表现是否存在潜在的规律,我们称该方面的信息为“标记”

标记通常也看作为样本的一部分,因此,一个完整的样本通常表示为 ( x , y ) (x, y) (x,y)

一条西瓜样本 x = ( 青绿 ; 蜷缩 ; 清脆 ) , y = 好瓜 x=(青绿;蜷缩;清脆),y=好瓜 x=(青绿;蜷缩;清脆),y=好瓜

一条房价样本: x = ( 1 所 ) , y = 1 万 / m 2 x=(1所),y =1万/m^2 x=(1),y=1/m2

样本空间: 也称为“输入空间”或“属性空间”。由于样本采用的是标明各个特征取值的“特征向量“来进行表示,根据线性代数的知识可知,有向量便会有向量所在的空间,因此称表示样本的特征向量所在的空间为样本空间,通常用花式大写的 χ \chi χ 表示。

标记空间: 标记所在的空间称为“标记空间”或“输出空间”,数学表示为花式大写的 y y y

数据集: 数据集通常用集合来表示,令集合 D = { x 1 , x 2 , . . . , x m } D = \{x_1,x_2,...,x_m\} D={x1,x2,...,xm}表示包含m个样本的数据集,一般同一份数据集中的每个样本都含有相同个数的特征,假设此数据集中的每个样本都含有d个特征,则第i个样本的数学表示为d维向量 其 x i = ( x i 1 , x i 2 , . . . , x i d ) x_{i} = (x_{i1},x_{i2},...,x_{id}) xi=(xi1,xi2,...,xid) x i j x_{ij} xij;表示样本 x i x_i xi在第 j j j个属性上的取值。

模型: 机器学习的一般流程如下: 首先收集若干样本(假设此时有100个),然后将其分为训练样本(80个) 和测试样本 (20个),其中80个训练样本构成的集合称为“训练集”,20个测试样本构成的集合称为“测试集”,接着选用某个机器学习算法,让其在训练集上进行”学习”(或称为“训练”),然后产出得到“模型”(或称为“学习器”),最后用测试集来测试模型的效果。执行以上流程时,表示我们已经默认样本的背后是存在某种潜在的规律,我们称这种潜在的规律为“真相“或者“真实”,例如样本是一堆好西瓜和坏西瓜时,我们默认的便是好西瓜和坏西瓜背后必然存在某种规律能将其区分开。当我们应用某个机器学习算法来学习时,产出得到的模型便是该算法所找到的它自己认为的规律,由于该规律通常并不一定就是所谓的真相,所以也将其称为”“假设”。通常机器学习算法都有可配置的参数,同一个机器学习算法,使用不同的参数配置或者不同的训练集,训练得到的模型通常都不同。

泛化: 由于机器学习的目标是根据已知来对未知做出尽可能准确的判断,因此对未知事物判断的准确与否才是衡量一个模型好坏的关键,我们称此为”泛化”能力。

分布: 此处的“分布”指的是概率论中的概率分布,通常假设样本空间服从一个未知“分布” D D D,而我们收集到的每个样本都是独立地从该分布中采样得到,即“独立同分布”。通常收集到的样本越多,越能从样本中反推出 D D D的信息,即越接近真相。

机器学习任务分类

根据标记的取值类型不同,可将机器学习任务分为以下两类:

当标记取值为离散型时,称此类任务为”分类”,例如学习西瓜是好瓜还是坏瓜、学习猫的图片是白猫还是黑猫等。当分类的类别只有两个时,称此类任务为“二分
类”,通常称其中一个为“正类”,另一个为”反类”或”负类”;当分类的类别超过两个时,称此类任务为”多分类”。由于标记也属于样本的一部分,通常也需要参与运算,因此也需要将其数值化,例如对于二分类任务,通常将正类记为 1 1 1,反类记为 0 0 0,即 y = 0 , 1 y={0,1} y=0,1。这只是一般默认的做法,具体标记该如何数值化可根据具体机器学习算法进行相应地调整,例如支持向量机算法则采用的是 y = { − 1 , + 1 } y = \{-1,+1\} y={1,+1}

当标记取值为连续型时,称此类任务为“回归”,例如学习预测西瓜的成熟度、学习预测未来的房价等。由于是连续型,因此标记的所有可能取值无法直接罗列,通常只有取值范围,回归任务的标记取值范围通常是整个实数域 R R R,即 y = R y=R y=R

根据是否有用到标记信息,可将机器学习任务分为以下两类:

模型训练阶段有用到标记信息时,称此类任务为”监督学习”,例如线性模型。

在模型训练阶段没用到标记信息时,称此类任务为“无监督学习”,例如聚类。

无论是分类还是回归,机器学习算法最终学得的模型都可以抽象地看作为以样本 x x x为自变量,标记 y y y为因变量的函数 y = f ( x ) y = f(x) y=f(x),即一个从输入空间 χ \chi χ 到输出空间 y y y 的映射。

例如在学习西瓜的好坏时,机器学习算法学得的模型可看作为一个函数 f ( x ) f(x) f(x),给定任意一个西瓜样本 x i = ( 青绿 ; 蜷缩 ; 清脆 ) x_i=(青绿;蜷缩;清脆) xi=(青绿;蜷缩;清脆),将其输入进函数即可计算得到一个输出 y i = f ( x i ) y_i= f(x_i) yi=f(xi),此时得到的 y y y 便是模型给出的预测结果,当 y i y_i yi 取值为 1 时表明模型认为西瓜 x i x_i xi是好瓜,当 y i y_i yi 取值为 0 时表明模型认为西瓜 x i x_i xi 是坏瓜。

归纳偏好

当选用一元线性回归算法时,学得的模型是一元一次函数,当在“房价预测”的例子中,选用多项式回归算法时,学得的模型是一元二次函数,所以不同的机器学习算法有不同的偏好,我们称为“归纳偏好”。

对于当前房价预测这个例子来说,这两个算法学得的模型哪个更好呢?著名的奥卡姆剃刀“原则认为“若有多个假设与观察一致,则选最简单的那个”,但是何为”简单”便见仁见智了,如果认为函数的幂次越低越简单,则此时一元线性回归算法更好,如果认为幂次越高越简单,则此时多项式回归算法更好,因此该方法其实并不“简单”,所以并不常用,而最常用的方法则是基于模型在测试集上的表现来评判模型之间的优劣。

例如在房价预测问题中,通常会额外留有部分未参与模型训练的数据来对模型进行测试。假设此时额外留有1条数据:(年份 :2022年;学校数量:3所;房价 :7万 /m)
于测试,模型 y = 3 x − 2 y =3x - 2 y=3x2的预测结果为 3 ∗ 3 − 2 = 7 3*3-2=7 332=7,预测正确,模型 y = x 2 y = x^2 y=x2 的预测结果为32=9,预测错误,因此,在当前房价预测问题上,我们认为一元线性回归算法优于多项式回归算法。机器学习算法之间没有绝对的优劣之分,只有是否适合当前待解决的问题之分,例如上述测试集中的数据如果改为(年份:2022年;学校数量:3所;房价 :9万 /m),则结论便逆转为多项式回归算法优于一元线性回归算法。

数据决定模型的上限,而算法则是让模型无限逼近上限

数据决定模型效果的上限: 其中数据是指从数据量和特征工程两个角度考虑。从数据量的角度来说,通常数据量越大模型效果越好,因为数据量大即表示累计的经验多,因此模型学习到的经验也多,自然表现效果越好。例如以上举例中如果训练集中含有相同颜色但根蒂不蜷缩的坏瓜,模型a学到真相的概率则也会增大;从特征工程的角度来说,通常对特征数值化越合理,特征收集越全越细致,模型效果通常越好,因为此时模型更易学得样本之间潜在的规律。例如学习区分亚洲人和非洲人时,此时样本即为人,在进行特征工程时,如果收集到每个样本的肤色特征,则其他特征例如年龄、身高和体重等便可省略,因为只需靠肤色这一个特征就足以区分亚洲人和非洲人。

算法则是让模型无限逼近上限:是指当数据相关的工作已准备充分时,接下来便可用各种可适用的算法从数据中学习其潜在的规律进而得到模型,不同的算法学习得到的模型效果自然有高低之分,效果越好则越逼近上限,即逼近真相。

评估方法

书中关于过拟合的解释,我觉得很到位:

我们实际希望的,是在新样本上能表现得很好的学习器.为了达到这个目的,应该从训练样本中尽可能学出适用于所有潜在样本的“普遍规律"这样才能在遇到新样本时做出正确的判别.然而,当学习器把训练样本学得“太好” 了的时候,很可能已经把训练样本自身的一些特点当作了所有潜在样本都会具有的一般性质,这样就会导致泛化性能下降.这种现象在机器学习中称为“过拟合"(overfitting).与 “过拟合”相对的是“欠拟合"(underfitting),这是指对训练样本的一般性质尚未学好

留出法

留出法是将数据集划分为两个互斥的集合,为了不使分类得到的数据集出现偏颇的情况,通常会使用保留类别比例的采样方式,被称作“分层采样”。不同的划分也会导致模型评估的结果上的差异,所以往往会进行多次随机划分、实验及评估,得到一个平均值。

同时,这种方法还存在一定保真性降低的情况。

若令训练集 S 包含绝大多数样本,则训练出的模型可能更接近于用 D 训练出的模型,但由于 T 比较小,评估结果可能不够稳定准确;若令测试集 T 多包含一些样本,则训练集 S 与 D 差别更大了,被评估的模型与用 D 训练出的模型相比可能有较大差别,从而降低了评估结果的保真性(fidelity)。

交叉验证法

在这里插入图片描述

书中的图很简单明了。交叉验证法评估结果的稳定性和保真性在很大程度上取决于k的取值,最常见的取值为10、5、20。

还有一个特例:留一法,数据集有几个样本,就是几折交叉验证(绝大多数情况下,留一法中被实际评估的模型与期望评估的用D训练出的模型很相似.因此,留一法的评估结果往往被认为比较准确)。当数据集比较大的时候,计算开销是难以忍受的。

自助法

留出法与交叉验证法因为使用的训练数据集比初始数据集小,一定会造成因训练样本不同导致的估计偏差,虽然留一法会通过减小与训练集的差距从而减小这种偏差,但是计算开销太高了。那接下来的自助法是一个比较好的解决方案。

自助法的核心思想是通过对原始数据集进行有放回的随机抽样来创建多个自助数据集。每个自助数据集的大小与原始数据集相同,但是因为是有放回抽样,所以每个自助数据集中会包含原始数据集中的某些数据多次,而不包含其他一些数据。

此时有个问题出现,如何划分训练集和测试集?

训练集:通过有放回抽样得到的新数据集作为训练集。由于是有放回抽样,原始数据集中的某些样本可能会在训练集中多次出现,而其他样本可能一次都不出现。

测试集:原始数据集中未出现在训练集中的样本(即每次抽样都没有被选中的样本)构成了测试集。由于是有放回抽样,测试集通常会比训练集小,其大小约为原始数据集的36.8%。36.8%如何得到的,书中有详细的推导。

在自助法中,原始数据集中的每个样本都有相同的概率被选中放入训练集中,这个概率是1/n,其中n是原始数据集中的样本数。因此,一个特定的样本在每次抽样中都不被选中的概率是(1 - 1/n)。如果进行n次抽样,那么这个样本一次都不被选中的概率就是(1 - 1/n)^n。

当n趋向于无穷大时,(1 - 1/n)^n会趋向于1/e,其中e是自然对数的底数,大约等于2.71828。因此,一个特定的样本在自助法中不被选中的概率大约是1/e,即大约36.8%(因为1/e约等于0.368)。

这个结果意味着,在自助法中,大约36.8%的原始样本不会出现在训练集中,而是自动成为测试集的一部分。这个百分比是一个理论值,实际情况可能会略有不同,因为它取决于原始数据集的大小和抽样的具体结果。

调参与最终模型

调参的好坏会直接关键地影响模型的好坏。这里存在一个很现实的问题:参数一般在实数范围中进行取值,对于每种参数进行实验是不太现实的,计算开销太大了。

于是需要为每一个参数设置一个合适的范围和变化步长,进行可控有限的实验。虽然得到的不一定是“最佳”结果,但这已经是在计算开销和性能估计之间进行折中的最好结果了。

书中在此处引入了测试集的概念。

在研究对比不同算法的泛化性能时,我们用测试集上的判别效果来估计模型在实际使用时的泛化能力,而把训练数据另外划分为训练集和验证集,基于验证集上的性能来进行模型选择和调参.

验证集和测试集的区别

验证集:用于调整模型的参数和选择模型。在模型训练过程中,验证集用来评估不同参数设置下的模型性能,帮助开发者找到最佳的超参数配置。

测试集:用于评估最终模型的泛化能力。在模型训练和参数调整完成后,测试集用来提供一个无偏的评估,即模型在未见过的数据上的表现如何。

性能度量

对学习器的泛化性能进行评估,不仅需要有效可行的实验估计方法,还需要有衡量模型泛化能力的评价标准,这就是性能度量(performance measure).

均方误差

在回归问题中最常用的性能度量就是均方误差。

有两种表达写法:

MSE = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 \text{MSE} = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 MSE=n1i=1n(yiy^i)2

其中, y i y_i yi 是第 i 个实际观测值, y ^ i \hat{y}_i y^i 是对应的模型预测值,N 是总体中的样本数量。

假设有一个连续随机变量,其真实的概率密度函数为 f ( x ) f(x) f(x),而我们有一个基于数据集得到的概率密度函数的估计 f ^ ( x ) \hat{f}(x) f^(x)。那么,这两个概率密度函数之间的均方误差可以定义为:

MSE = ∫ ( f ( x ) − f ^ ( x ) ) 2 d x \text{MSE} = \int (f(x) - \hat{f}(x))^2 \, dx MSE=(f(x)f^(x))2dx

错误率与精度

在回归问题中最常用的性能度量就是错误率和精度。这两个是一对相反的概念,得到一个就会得到另外一个。错误率是指分类错误的样本数占总样本数的比例,而精度就是指分类正确的样本数占总样本数的比例。两者的和为 1 。

查准率、查全率与F1

假设我们有一个模型用于预测瓜是好是坏,我们可以根据模型的预测结果和实际的瓜的好坏来构建混淆矩阵:

  • TP(真正例):模型预测为好瓜,实际也是好瓜。
  • FP(假正例):模型预测为好瓜,实际是坏瓜。
  • TN(真反例):模型预测为坏瓜,实际也是坏瓜。
  • FN(假反例):模型预测为坏瓜,实际是好瓜。

查准率(Precision, P),也称为精确度,是所有预测为正例的样本中,实际上为正例的比例。查准率关注的是在所有被模型判定为好瓜的瓜中,真正好瓜的比例。计算公式为:

P = T P T P + F P P = \frac{TP}{TP + FP} P=TP+FPTP

查全率(Recall, R),也称为召回率或灵敏度,是所有实际为正例的样本中,被正确预测为正例的比例。查全率关注的是**在所有真正好瓜中,模型能够正确识别好瓜出的比例。**计算公式为:

R = T P T P + F N R = \frac{TP}{TP + FN} R=TP+FNTP

举个例子,假设我们有100个瓜,其中80个好瓜,20个坏瓜。模型预测了90个好瓜,其中70个是真的好瓜(TP),10个是预测错了的坏瓜(FP)。剩下的10个好瓜模型没有预测出来(FN),而20个坏瓜中,模型正确地预测了10个(TN),错误地将另外10个预测为好瓜(FP)。

查准率 PP 是模型预测为好瓜的瓜中真正好瓜的比例,即

P = 70 70 + 10 = 70 80 = 0.875 或 87.5 % 。 P = \frac{70}{70 + 10} = \frac{70}{80} = 0.875 或 87.5\%。 P=70+1070=8070=0.87587.5%

查全率 RR 是所有真正好瓜中模型能够正确识别出的比例,即

R = 70 70 + 10 = 70 80 = 0.875 或 87.5 % 。 R = \frac{70}{70 + 10} = \frac{70}{80} = 0.875 或 87.5\%。 R=70+1070=8070=0.87587.5%

F1pass

ROC与AUC

pass

代价敏感错误率与代价曲线

pass

比较检验

pass

偏差与方差

  1. 偏差(Bias)
    • 定义:偏差是指模型在多次训练过程中对目标函数或数据的平均预测误差。它反映了模型在训练集上的拟合程度,即模型对训练数据的平均学习能力。
    • 低偏差:模型能够很好地拟合训练数据,对目标函数的近似很接近。
    • 高偏差:模型对训练数据的拟合不足,可能是由于模型过于简单或者数据特征不足以捕捉目标函数的复杂性。
  2. 方差(Variance)
    • 定义:方差是指模型在不同训练集上的预测结果的波动程度。它反映了模型对训练数据的敏感程度,即模型的稳定性。
    • 低方差:模型对不同的训练集产生类似的预测结果,说明模型对训练数据的变化不敏感,泛化能力强。
    • 高方差:模型对不同的训练集产生差异很大的预测结果,可能是由于模型过于复杂,导致对训练数据中的随机波动过度拟合。
  3. 噪声(Noise)
    • 定义:噪声是指数据本身的不确定性或随机性。在实际应用中,数据往往受到多种因素的影响,其中一些因素可能是不可预测的,这些不可预测的因素就是噪声。

偏差-方差分解

书中有偏差-方差分解以回归问题为例,推导得出的式子过程(结合南瓜书)比较详实流畅。

泛化误差 = 偏差 2 + 方差 + 不可减少的误差 \text{泛化误差} = \text{偏差}^2 + \text{方差} + \text{不可减少的误差} 泛化误差=偏差2+方差+不可减少的误差

偏差-方差窘境

  1. 偏差与模型复杂度的关系
    • 低复杂度模型:简单模型(如线性回归)通常具有高偏差,因为它们可能无法捕捉数据中的复杂关系。这些模型往往对训练数据的拟合不足,导致在训练集和测试集上的性能都不佳。
    • 高复杂度模型:复杂模型(如深度神经网络)通常能够减少偏差,因为它们有足够的能力来拟合复杂的数据关系。然而,如果模型过于复杂,它可能会对训练数据中的随机噪声过度拟合,导致方差增加。
  2. 方差与模型复杂度的关系
    • 低复杂度模型:简单模型对训练数据的微小变化不敏感,因此方差较低。这意味着即使是在不同的训练集上,简单模型也会产生类似的预测结果,具有较好的泛化能力。
    • 高复杂度模型:复杂模型对训练数据中的随机波动非常敏感,导致方差较高。在新的数据集上,这些模型可能会产生与训练集上截然不同的预测结果,泛化能力较差。
  3. 偏差-方差权衡
    • 在实践中,我们通常需要在偏差和方差之间找到一个平衡点。如果模型过于简单(高偏差),它可能无法捕捉数据中的关键信息。如果模型过于复杂(高方差),它可能会对训练数据中的噪声过度敏感,导致在未见过的数据上表现不佳。
    • 优化这个权衡涉及到选择合适的模型架构、特征工程、正则化技术等。目标是构建一个既能够很好地拟合训练数据又能够在测试数据上表现良好的模型。

因此,偏差和方差之间存在冲突,因为它们对模型复杂度的需求相反:减少偏差通常需要增加模型复杂度,而这又可能导致方差增加。在机器学习中,我们的目标是在偏差和方差之间找到一个最优的平衡点,以构建一个既强大又稳健的模型。


http://www.mrgr.cn/p/44842446

相关文章

【布局进阶】巧用 :has drop-shadow 实现复杂布局效果

最近,群里聊到了一个很有意思的布局效果。大致效果如下所示,希望使用 CSS 实现如下所示的布局效果:正常而言,我们的 HTML 结构大致是如下所示: <div class="g-container"><div class="g-nav"><ul><li>Tab 1</li><li…

benchmarksql压测lightdb的oracle模式

一、编译安装BenchMarkSQL 1.下载源码,输入ant编译。确保已经安装配置JDK环境,BenchMarkSQL是Java开发的。cd benchmarksql/ benchmarksql]$ ant 二、创建BenchMarkSQL测试数据库和角色 [lightdb@linuxtestba65 ~]$ ltsql ltsql (13.8-23.4) compatible type: postgresql Typ…

飞行机器人专栏(十四)-- Kinect DK 人体骨骼点运动提取方法

系列文章目录 Ubuntu 18.04/20.04 CV环境配置&#xff08;下&#xff09;--手势识别TRTposeKinect DK人体骨骼识别_ubuntu kinect骨骼测试-CSDN博客文章浏览阅读1.3k次。trt_pose_ros kinect实现手势识别和人体骨骼识别&#xff0c;用于机器人运动控制参考_ubuntu kinect骨骼测…

K8s集群nginx-ingress监控告警最佳实践

nginx-ingress作为K8s集群中的关键组成部分。主要负责k8s集群中的服务发布,请求转发等功能。如果在访问服务过程中出现404和502等情况,需要引起注意。本文分享自华为云社区《K8s集群nginx-ingress监控告警最佳实践》,作者:可以交个朋友。 一 背景 nginx-ingress作为K8s集群…

【前端寻宝之路】学习和总结HTML的标签属性

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法|MySQL| ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-tgsZb9zTBxJHHYhD {font-family:"trebuchet ms",verdana,arial,sans-serif;f…

Deep Learning

Deep Learning 基础知识损失函数MSE(mean square error loss)(均方误差) CEE(cross entropy error loss)(交叉熵误差)反向传播(backward):Sigmoid:ReLU:Add: (直接传播,不发生改变) Multiply: (相当于互换输入)Affine: (矩阵乘法,也是交替相乘,不过需要考虑矩阵的形…

vscode python开发插件

05 Git Graph这玩意可是Git神器,堪比Pycharm内的Git管理器。 通过这个扩展,可以清楚地看见当前分支的commit记录和变化,可以通过按钮的方式轻易地创建、切换分支、cherry pick、merge等操作。 对比分支、查看未提交的修改……还有许多可定制的扩展设置。 08 autoDocstring这…

手持式电能质量分析仪

TH-6500随着电力系统的快速发展和智能化水平的提高&#xff0c;电能质量问题越来越受到人们的关注。为了有效地监测、分析和评估电能质量&#xff0c;手持式电能质量分析仪成为了不可或缺的工具。 一、手持式电能质量分析仪概述 手持式电能质量分析仪是一种便携式设备&#x…

【Python】高级进阶(专版提升3)

Python 1 程序结构1.1 模块 Module1.1.1 定义1.1.2 作用1.1.3 导入1.1.3.1 import1.1.3.2 from import 1.1.4 模块变量1.1.5 加载过程1.1.6 分类 1.2 包package1.2.1 定义1.2.2 作用1.2.3 导入1.1.3.1 import1.1.3.2 from import 2 异常处理Error2.1 异常2.2 处理 3 迭代3.1 可…

Python Flask+Pandas读取excel显示到html网页: CSS控制表格样式、表头文字居中

前言全局说明CSS控制表格样式一、安装flask模块 二、引用模块 三、启动服务 模块安装、引用模块、启动Web服务方法,参考下面链接文章: https://www.cnblogs.com/wutou/p/17963563 Pandas 安装 https://www.cnblogs.com/wutou/p/17811839.html Pandas 官方API说明 https://pand…

jmeter导入脚本报错:Cause: CannotResolveClassException: kg.apc.jmeter.perfmon.PerfMonCollector

下载plugins-manager.jar放到lib/ext下,重启jmeter后脚本导入成功,下载地址:https://jmeter-plugins.org/install/Install/ 内容有不可之处,欢迎评论指出

文章解读与仿真程序复现思路——中国电机工程学报EI\CSCD\北大核心《含状态耦合约束的分布式船舶储能系统两层能量管理方法》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

2024蓝桥杯——宝石问题

先展示题目 声明 以下代码仅是我的个人看法&#xff0c;在自己考试过程中的优化版&#xff0c;本人考试就踩了很多坑&#xff0c;我会—一列举出来。代码可能很多&#xff0c;但是总体时间复杂度不高只有0(N) 函数里面的动态数组我没有写开辟判断和free&#xff0c;这里我忽略…

Springboot整合mybatis_plus + redis(使用原生的方式)

首次&#xff0c;创建一个springboot项目&#xff0c;勾选相应的依赖Lombok、Web 添加依赖&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency>…

实验一讯飞输入法APP设计

一、实验题目:原型设计 二、实验目的:掌握产品原型设计方法和相应工具使用。 三、实验要求: 1.对比分析墨刀、Axure、Mockplus等原型设计工具的各自的适用领域及优缺点 (1)墨刀 适用领域: 网页设计和移动应用界面设计 快速原制作和协作设计 用户体验设计和交互设计 优点:…

CSS 滚动驱动动画终于正式支持了

在最新的Chrome 115中,令人无比期待的CSS 滚动驱动动画(CSS scroll-driven animations)终于正式支持了\~有了它,几乎以前任何需要JS监听滚动的交互都可以纯 CSS 实现了,就是这么强大,一起了解一下吧 温馨提示:文章略长,建议收藏后反复查阅 一、快速入门 CSS 滚动驱动动画…

第一次博客作业:三周题目总结

1.前言 一、知识点 关于类 1:类似于C语言的结构体,但比C语言中的结构体作用更多,且适用范围更广 2:懂得封装和公开的区别,即private和public的区别,用private可以防止数据的泄露 3:用类把题目分解,以便更好的解决题目,创立多个类,来分解题目。 4:在Java开发中,类是…

C语言的OJ判题机设计与实现

1. 接收判题入参 判题需要作答代码、测试输入和期望输出、编译器名称、时空限制。对于支持special judge的还需要传入是否为sj和sj代码。推荐使用消息队列&#xff0c;应对高并发的比赛情况会比较好。 但是消息队列是异步的&#xff0c;我为了快点实现能提交后在当前页面获得判…

mysql搭建主从

mysql搭建主从: 1:拉取mysql镜像 docker pull mysql2:创建主从对应目录 3:建立一个简易的mysql docker run -it --name mytest -e MYSQL_ROOT_PASSWORD123 -d mysql4:进入这个简易的mysql;从中获取my.cnf文件 docker exec -it mytest bash5:从容器中将my.cnf拷贝到 /3306/c…

Hyperledger Fabric

一.Hyperledger Fabric介绍 Hyperledger区块链全家桶 Hyperledger Fabric技术特性 资产 — 资产定义使得几乎任何具有货币价值的东西都可以在网络上交 换&#xff0c;包括从食品到古董汽车再到货币期货。链码 — 链码执行与交易排序的分离&#xff0c;限制了跨节点类型所需的…