DataWhale-统计学习方法打卡Task01

news2024/10/1 5:24:49

学习教材《统计学习方法(第二版)》李航

统计学习方法(第2版) by...李航 (z-lib.org).pdf https://www.aliyundrive.com/s/maJZ6M9hrTe 点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速播放。

学习内容:第1章 统计学习及监督学习概论

学习视频:B站视频

第一章 统计学习及监督学习概论 1.1-统计学习_哔哩哔哩_bilibili

【合集】十分钟 机器学习 系列视频 《统计学习方法》_哔哩哔哩_bilibili 

第1章 统计学习及监督学习概论

定义:监督学习是从标注数据中心学习模型的机器学习问题,是统计学习或机器学习的额重要组成部分。

1.1 统计学习

1. 统计学习的特点

统计学习是关于计算机基于数据构建概率统计模型并运用模型对数据进行预测与分析的一门学科。

2.统计学习的对象

统计学习的对象是数据data。包括数字、文字、图像、视频、音频数据以及他们的组合。

统计学习的假设,是同类数据具有一定的统计规律性。这是统计学习的前提。

3.统计学习的目的

统计学习用于对数据的预测和分析,特别是对位置新数据的预测与分析。

4. 统计学习的方法

监督学习(supervised learning), 无监督学习(unsupervised learning), 强化学习(reinforecement learning).

学习统计学习方法的步骤:

(1)得到一个有限的训练数据集和;

(2)确定包含所有可能模型的假设空间,即模型的集合;

(3)确定模型选择的准则,即学习的策略;

(4)实现求解最优模型的算法,即学习的算法;

(5)通过学习的方法选择最优模型;

(6)利用学习的最优模型对新数据进行预测或分析。

5.统计学习的研究

6.统计学习的重要性

1.2 统计学习的分类

 1.2.1基本分类

1. 监督学习

监督学习是指从标注数据中学习预测模型的机器学习问题。

(1)输入空间、特征空间和输出空间

输入输出变量用大写字母表示,习惯上输入变量写作X,输出变量写作Y。输入输出变量的取值用小写字母表示,输入变量的取值写作x,输出变量的取值写作y。变量可以是标量或向量,都用相同类型字母表示。除特别说明外,本书中向量均为列向量,输入实例x的特征向量记做:

x=(x^{(1)},x^{(2)}, \cdots x^{(i)}, \cdots x^{(n)})^T

x^{(i)}表示x的第i个特征。注意x^{(i)}x_i不同,本书中通常用x_i表示多个输入变量中第i个变量,即

x_i=(x_i^{(1)}, x_i^{(2)}, \cdots, x_i^{(n)})^T

监督学习从训练数据training data集合中学习模型,对测试数据test data进行预测,训练数据有输入输出对组成。

T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N),\}

输入变量X和输出变量Y有不同的类型,可以是连续的也可以是离散的。输入变量与输出变量均为连续变量的预测问题为回归问题;输入变量为有限个离散变量的预测问题称为分类问题;输入变量与输出变量均为变量序列的预测问题称为标注问题

 (2)联合概率分布

监督学习假设输入与输出的随机变量XY遵循联合概率分布P(X,Y)P(X,Y)表示分布函数或分布密度函数。假设训练数据与测试数据被看做是依联合概率分布P(X,Y)独立同部分产生的。

(3)假设空间

模型输入由输入空间到输出空间的映射集合,这个集合就是假设空间(hypothesis space)。假设空间的确定意味着学习范围的确定。

监督学习的模型可以是概率模型或非概率模型,由条件概率分布P(Y|X)或决策函数(decision function)Y=f(X)表示,随具体学习方法而定。

(4)问题的形式化

监督学习分为学习和预测两个过程,由学习系统和预测系统完成,可用图1.1来描述

 首先给定一个训练集

T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N),\}

其中(x_i,y_i) \;\;\; i=1,2,\cdots,N,称为样本或样本点。x_i\in\mathcal{X} \subseteq \boldsymbol{R}^n是输入的观测值,也称为输入或实例,y_i\in\mathcal{Y} 是输出的观测值,也称为输出。

 监督学习分为学习和预测两个过程,有学习系统和预测系统完成。在学习过程中,学习系统利用给定的数据集,通过学习得到一个模型,表示为条件概率分布\hat{P}(Y|X)或决策函数Y=\hat{f}(X)。在预测过程中,预测系统对于给定的测试样本集中的输入x_{N+1}由模型y_{N+1}=\underset{y}{argmax}\hat P(y|x_{N+1})y_{N+1}=\hat f(x_{N+1}))给出相应的y_{N+1}

2.无监督学习

无监督学习(unsupervised learning)是指从无标注数据汇总学习预测模型的机器学习问题。无监督学习的本质是学习数据中心的统计规律或潜在结构。预测模型表示数据的类别、转换或概率。

模型可以是实现对数据的聚类、降维或概率估计。

无监督学习通常使用大量的无标注数据学习或训练,每一个样本是一个实例。训练数据表示为

U=\{x_1, x_2,\cdots,x_N\}其中x_i, \;i=1,2,\cdots,N是样本。

无监督学习可以对已有数据分析,也可以用于对未来数据的预测。分析师使用学习得到的模型即函数z=\hat g(x), 条件概率分布\hat P(z|x)或条件概率分布\hat P(x|z)

备注:z_{N+1}=\underset{z}{argmax}\hat P(z|x_N+1)表示在使概率P最大时,z的取值。

3.强化学习 

强化学习(reinforcement learning)是指智能系统在于环境的连续互动中学习最优行为策略的机器学习问题。假设智能系统与环境的互动基于马尔科夫决策过程(Markov decision process),智能系统能观测到的是与环境互动得到数据序列。强化学习的本质是学习最优的序贯决策。

 强化学习没有研究过,此书中好像也没有相关的章节,此处略过,后续学习的时候再补上。

 4.半监督学习与主动学习

 半监督学习是指利用标注数据和未标注数据学习预测模型的机器学习问题。

主动学习是指机器不断主动给出实例让教师进行标注,然后李永彪主数据学习预测模型的机器学习问题。

1.2.2按模型分类

统计学习或机器学习方法可以根据其模型的种类进行分类。

1. 概率模型与非概率模型。

 统计学习的模型可以分为概率模型(probabilistic model)和非概率模型(non-probabilistic model)或确定性模型(deterministic model)。

在本书介绍的决策树、朴素贝叶斯、隐马尔可夫模型、条件随机场、概率潜在语义分析、潜在狄利克雷分配、高斯混合模型是概率模型。感知机、支持向量机、k近邻、Adaboost、k均值、潜在语义分析,以及神经网络是非概率模型。逻辑斯蒂回归即可以看做概率模型,又可以看做非概率模型。

2.线性模型与非线性模型

这个比较容易理解。

3.参数化模型与非参数模型

参数化模型假设模型参数的维度固定,模型可以由有限维完全刻画;非参数模型假设模型参数的纬度不固定或者说无穷大,随着训练数据量的增加二不断增大。

1.2.3按算法分类

统计学习根据算法,可以分为在线学习与批量学习。在线学习值每次接受一个样本,进行预测,之后学习模型,并不断重复该操作的机器学习。与之对应,批量学习一次接受所有数据,学习模型,之后进行预测。

 1.2.4按技巧学习

1. 贝叶斯学习

朴素贝叶斯、潜在狄利克雷分配的学习属于贝叶斯学习。

假设随机变量D表示数据,随意变量\theta表示模型参数。根据贝叶斯定理,可以用以下公式计算后验概率P(\theta|D):

P(\theta|D)=\frac{P(\theta)P(D|\theta)}{P(D)}

其中P(\theta)是先验概率,P(D|\theta)是似然函数。

此处看不太懂,等到后面学习贝叶斯的时候再进行深入研究

2.核方法

核方法(kernel method)时使用核函数表示和学习非线性模型的一种机器学习方法,可以用于监督学习和无监督学习。

1.3 统计学习方法三要素

统计学习方法都是由模型、策略和算法构成的,即统计学习方法由三要素构成,可以简单表示为:

方法=模型+策略+算法

1.3.1模型

在监督学习过程胡总,模型就是us噢要学习的条件概率分布或决策函数。模型的假设空间(hypothesis space)包含所有可能的条件概率分布或决策函数。

假设空间用\mathcal{F}表示。假设空间可以定义为决策函数的集合:

\mathcal{F}=\{f|Y=f(X)\}

其中,X和Y是定义在输入空间\mathcal{X}和输出空间\mathcal{Y}上的变量。这是\mathcal{F}通常是一个参数向量决定的函数族:

\mathcal{F}=\{f|Y=f_{theta}(X),\;\theta\in\mathbf{R}^n\}

参数向量\theta取值与n维欧式空间\mathbf{R}^n,称为参数空间(parameter space)

1.3.2策略

1.损失函数和风险函数

监督学习问题是在假设空间\mathcal{F}中选取模型f作为决策函数,对于给定的输入X,由f(X)

给出相应的输入Y,这个输出的预测值f(X)与真实值Y可能一致也可能不一致,用一个损失函数loss function 或代价函数cost function来度量预测错误的程度。损失函数是f(X) 和Y的非负实值函数,记做L(Y,f(X))

(1)0-1损失函数

L(Y,f(X))=\left\{\begin{matrix} 1, &Y\neq f(X) & \\ 0, & Y=f(X) & \end{matrix}\right.

(2)平方损失函数(quadratic loss function)

L(Y,f(X))=(Y-f(X))^2

(3)绝对值损失函数(absolute loss function)

L(Y,f(X))=|Y-f(X)|

(4)对数损失函数(logarithmic loss function)或对数似然损失函数

L(Y,P(Y|X))=-logP(Y|X)

损失函数值越好,模型就越好。由于模型的输入、输出(X,Y)是随机变量,遵循联合分布P(X,Y), 所以损失函数的期望是

\begin{aligned} R_{exp}(f)&=E_P[L(Y,f(X)]\\ &=\int_{\mathcal{XY}}L(y,f(x))P(x,y)dxdy \end{aligned}

这是理论上模型f(X)关于联合分布P(X,Y)的平均意义下的损失,称为风险函数(risk function)或期望损失(expected loss)。

学习的目标就是选择期望风险最小的模型。

给定一个训练数据集T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\},模型f(X)关于训练数据集的平均损失函数称为经验风险(empirical risk)或经验损失(empirical loss),记做R_{emp}

R_{emp}(f)=\frac{1}{N}\sum_{i=1}^NL(y_i,f(x_i))

根据大数定律,当样本容量N趋近于无穷大时,经验风险R_{emp}(f)趋于期望风险R_{exp}(f)。这就关系到监督学习的连个策略:经验风险最小化和结构风险最小化。

2.经验风险最小化与结构风险最小化

经验风险最小化(empirical risk minimization, ERM)策略认为,经验风险最小的模型是最优的模型。

但是挡烟本很小时,经验风险最小化学习的效果未必很好,会产生“过拟合”现象。

结构风险最小化(Structural risk minimization, SRM)是为了防止过拟合而提出的策略。结构风险最小化等价于正则化(Regularization)。结构风险在经验风险上加上表示模型复杂度的正则化项和惩罚项。

R_{srm}(f)=\frac{1}{N}\sum_{i=1}^NL(y_i,f(x_i))+\lambda J(f)

其中J(f)为模型的复杂度,是定义在假设空间\mathcal{F}上的泛函。模型f越复杂,复杂度J(f)就越大;反之,模型f越简单,复杂度J(f)就越小。也就是说,复杂度表示了对复杂模型的惩罚。\lambda \geqslant 0是系数,用以权衡经验风险和模型复杂度。结构风险小需要经验风险和模型复杂度同时小。结构风险小的模型往往对训练数据以及位置的测试数据都有较好的预测。

1.3.3算法

算法是指学习模型的具体方法。

1.4模型评估与模型选择

1.4.1训练误差与测试误差

假设学习到的模型是Y=\hat f(X),训练误差是模型Y=\hat f(X)关于蓄念书籍的平均损失:

R_{emp}(\hat f)=\frac{1}{N}\sum_{i=1}^NL(y_i,\hat f(x_i))

测试误差是模型关于测试数据集的平均损失:

e_{test}=\frac{1}{N'}\sum_{i=1}^NL(y_i,\hat f(x_i))

1.4.2过拟合与模型选择

过拟合是指学习时选择的模型所包含的参数过多,以至于出现这一模型对于已知数据预测很好,对位置数据预测很差的现象。可以说模型选择旨在避免过拟合并提高模型的预测能力。

 

1.5正则化与交叉验证

1.5.1正则化

 模型选择的典型方法是正则化。正则化是结构风险最小化策略的实现,是在经验风险上加上一个正则化项或惩罚项。

\underset{f\in\mathcal{F}}{min}\frac{1}{N}\sum_{i=1}^NL(y_i,f(x_i))+\lambda J(f)

 其中第一项是经验风险,第二项是正则化项,\lambda\geqslant 0为调整两者之间关系的系数。

正则化可以取不同的形式。有L_2范数。

L(w)=\frac{1}{N}\sum_{i=1}^N(f(x_i;w)-y_i)^2+\frac{\lambda}{2}||w||^2

这里||w||表示参数向量w的L_2范数。

正则化项也可以是参数向量的L_1范数:

L(w)=\frac{1}{N}\sum_{i=1}^N(f(x_i;w)-y_i)^2+\frac{\lambda}{2}||w||_1

正则化符合奥卡姆剃刀原理。奥卡姆剃刀原理应用于模型选择时变为一下想法:在所有可能选择的模型中,能够很好解释已知数据并且十分简单才是最好的模型,也就是应该选择的模型。

1.5.2交叉验证

另外一种常用的模型选择方法是交叉验证(cross validation)。

将数据集切分为三部分,训练集(training set),验证集(validation set)和测试集(test set)。训练集训练模型,验证集用于模型的选择,二测试集用于对最终学习方法的评估。

1.简单交叉验证

2.S折交叉验证

3.留一交叉验证

1.6泛化能力

1.6.1泛化误差

学习方法的泛化能力是指该方法学习到的模型对位置数据的预测能力,是学习方法本质上重要的性质。现实中采用最多的办法是通过测试误差来评价学习方法的泛化能力。

下面是泛化误差的证明,此处省略没看。

1.6.2泛化误差上界

1.7生成模型与判别模型

监督学习方法又可以分为生成方法(generative approach)和判别方法(discriminative approach)。所学到的模型分别称为生成模型和判别模型。

生成方法有数据学习联合概率分布P(X,Y),然后求出条件概率分布P(Y|X)作为预测的模型,即生成模型:

P(Y|X)=\frac{P(X,Y)}{P(X)}

这样的方法之所以称为生成方法,是因为模型表示了给定输入X产生输出Y的生成关系。典型的生成模型有朴素贝叶斯法和隐马尔可夫模型。

判别方法由数据直接学习决策函数f(X)或者条件概率分布P(Y|X)作为预测的模型,即判别模型。

1.8监督学习的应用

监督学习分为:分类问题,标注问题和回归问题。

1.8.1分类问题

在监督学习中,当输出Y取有限个离散值时,预测问题便成为分类问题。分类问题的过程如下:

 对于二分类问题评价指标是精确率precision和召回率recall。

TP-----将正类预测为正类

FN-----将正类预测为负类

FP-----将负类预测为正类

TN-----将负类预测为负类

精确率定义为:

P=\frac{TP}{TP+FP}

召回率定义为:

R=\frac{TP}{TP+FN}

此外还有F1值,是精确率和召回率的调和均值,即

\frac{2}{F_1}=\frac{1}{P}+\frac{1}{R}\Rightarrow F_1=\frac{2TP}{2TP+FP+FN}

1.8.2标注问题

标注(tagging)也是一个监督问题。可以认为标注问题是分类问题的一个推广,标注问题优势更复杂的结构预测问题的简单形式。标注问题的输入是一个观测序列,输出是一个标记序列或状态序列。标注问题的目标在于学习一个模型,使它能够对观测序列给出标记序列作为预测。

1.8.3回归问题

 回归是监督学习的另一个重要问题。回归用于预测输入变量和输出变量之间关系,特别是当输入变量的发生变化时,输出变量的值随之发生变化。

 回归问题可以分为一元回归和多元回归;按照输入变量和输出变量之间的关系可以分为线性回归和非线性回归。

课后习题

习题1.1

说明伯努利模型的极大似然估计以及贝叶斯估计中的统计学习方法三要素。伯努利模型是定义在取值为0与1的随机变量上的概率分布。假设观测到伯努利模型�n次独立的数据生成结果,其中�k次的结果为1,这时可以用极大似然估计或贝叶斯估计来估计结果为1的概率。

解:

第一步:伯努利模型

伯努利方程模型定义为:

\begin{aligned} P(X=1)&=p\\ P(X=0)&=1-p\\ \end{aligned}

其中p为随机变量X取值为1的概率,1-p为取0的概率。

则X的概率分布为:

P_p(X=x)=p^x(1-p)^{1-x}\;\;0\leqslant p\leqslant 1

则伯努利的假设空间为:

\mathcal{F}=\{P|P_p(X)=p^x(1-p)^{1-x},p\in [0,1]]\}

第二步:伯努利模型的极大似然估计及毕业四估计中的统计学习方法三要素

(1)极大似然估计

模型:伯努利模型

策略:经验风险最小化。极大似然估计,等价于当模型是条件概率分布、损失函数是对数损失函数时的经验风险最小化。

算法:极大化似然,\underset{p}{argmax}L(p|X)=\underset{p}{argmax}P(X|p)

(2)贝叶斯估计

模型:伯努利模型

策略:结构风险最小化。贝爷估计中的最大后验概率估计,等价于当模型条件是概率分布、损失函数是对数损失函数、模型复杂度有模型的先验概率表示时的风险结构最小化。

算法:最大化后验概率:\underset{p}{arg max}\;\pi(p|X)=\underset{p}{argmax}\frac{P(X|p)\pi(p)}{\int P(X|p)\pi(p)dp}

第三步:伯努利模型的极大似然估计

对于伯努利模型,可得似然函数:(在n次独立的数据中,k次结构为1,n-k次结构为0)

\begin{aligned} L(p|X)&=P(X|p)\\ &=\prod_{i=1}^nP(x^{(i)}|p)\\ &=p^k(1-p)^{n-k} \end{aligned}

对似然函数取对数,得到对数似然函数:

\begin{aligned} \log L(p|X)&=\log p^k(1-p)^{n-k}\\ &=\log p^k+\log (1-p)^{n-k}\\ &=k\log p+(n-k)\log(1-p) \end{aligned}

求解参数p:

\begin{aligned} \hat p&=\underset{p}{argmax}L(p|X)\\ &=\underset{p}{argmax}[k\log p+(n-k)\log(1-p)] \end{aligned}

对参数p求导,可求解倒数为0时的p的值:

\begin{aligned} \frac{\partial\log Lp}{\partial p}&=\frac{k}{p}-\frac{n-k}{1-p}\\ &=\frac{k(1-p)-p(n-k)}{p(1-p)}\\ &=\frac{k-np}{p(1-p)} \end{aligned}

\frac{\partial\log L(p)}{\partial p}=0

从上式可得k-np=0p=\frac{k}{n}

所以P(X=1)=\frac{k}{n}

步骤四:伯努利模型的贝叶斯估计(没看懂)

习题1.2

通过经验风险最小化推导极大似然估计。证明模型是条件概率分布,当损失函数是对数损失函数时,经验风险最小化等价于极大似然估计。

解:

假设模型的条件概率分布是P_{\theta}(Y|X),样本集D=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\},对数损失函数为:

L(Y,P(Y|X))=-logP(Y|X)

按照经验风险最小化求最优模型就是最优解的结论可得出:

\underset{f\in \mathcal{F}}{min}\frac{1}{N}\sum_{i=1}^NL(y_i,f(x_i))

综合上面两个式子可得经验风险最小化函数:

\begin{aligned} \underset{f\in\mathcal{F}}{argmin}\frac{1}{N}\sum_{i=1}^NL(y_i,f(x_i))&=\underset{f\in\mathcal{F}}{argmin}\frac{1}{N}\sum_{D}[-logP(Y|X)]\\ &=\underset{f\in\mathcal{F}}{argmax}\frac{1}{N}\sum_{D}[logP(Y|X)]\\ &=\underset{f\in\mathcal{F}}{argmax}\frac{1}{N}log\prod_DP(Y|X)\\ &=\frac{1}{N}\underset{f\in\mathcal{F}}{argmax}\prod_DP(Y|X) \end{aligned}

根据似然函数定义:L(\theta)=\prod_DP_\theta(Y|X),以及极大似然函数的一般步骤,可得:

\underset{f\in\mathcal{F}}{argmin}\frac{1}{N}\sum_{i=1}^NL(y_i,f(x_i))=\frac{1}{N}\underset{f\in\mathcal{F}}{argmax}logL(\theta)

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

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

相关文章

论文笔记:NeuLF: Efficient Novel View Synthesis with Neural 4D Light Fight

中文标题:基于神经4D光场的高效新视角合成 创新点 在我们的方法中,一个3D场景被表示为一个光场,即一组射线,每条射线在到达图像平面时都有相应的颜色。为了实现高效的新视图渲染,我们采用了光场的双平面参数化&#…

JAVA实现心跳检测【长连接】

文章目录1、心跳机制简介2、心跳机制实现方式3、客户端4 、服务端5、代码实现5.1 KeepAlive.java5.2 MyClient.java5.3 MyServer5.4 测试结果1、心跳机制简介 在分布式系统中,分布在不同主机上的节点需要检测其他节点的状态,如服务器节点需要检测从节点…

Git 介绍和使用

文章目录前言1、Git 安装和使用2、Git 工作区域和状态3、Git 常用指令3.1、Git 参数配置3.2、Git 本地仓库3.3、Git 远程仓库3.4、分支前言 Git 是一个免费,开源的分布式版本控制系统,可以敏捷高效的进行各种规模大小的版本管理。Git 与 SVN 的二者最核心…

ChatGPT到底是什么

ChatGPT到底是什么 我将在这里尝试解释清楚 ChatGPT 到底什么。 对于非常了解和非常熟悉 ChatGPT 的朋友,这篇推文您可以跳过不看! ChatGPT 在全球互联网上制造了一场人工智能风暴。 ChatGPT是什么? ChatGPT是由OpenAI开发的一个人工智能聊…

Golang-数组与切片常见错误及陷阱

数组与切片有什么区别 slice 的底层数据是数组,slice 是对数组的封装,它描述一个数组的片段。两者都可以通过下标来访问单个元素。 数组是定长的,长度定义好之后,不能再更改。在 Go 中,数组是不常见的,因…

Zabbix 3.0 从入门到精通(zabbix使用详解)

Zabbix 3.0 从入门到精通(zabbix使用详解) 第1章 zabbix监控 1.1 为什么要监控 在需要的时刻,提前提醒我们服务器出问题了 当出问题之后,可以找到问题的根源 网站/服务器 的可用性 1.1.1 网站可用性 在软件系统的高可靠性(也称为可用性…

css复习

CSS 最大价值: 由 HTML 专注去做结构呈现,样式交给 CSS,即 结构 ( HTML ) 与样式( CSS ) 相分离。 CSS 规则由两个主要的部分构成:选择器以及一条或多条声明。 代码风格: ①属性值前面,冒号后面,保留一个空…

Java基础:异常与错误(ExceptionError)

1 缘起 某天上网冲浪时,偶然看到一个问题,说Java的Error和Exception有什么区别? 一句话:不知道。并不能很清晰地描述出个中区别。 当然,曾经也看过Throwable相关的知识,但是,并没有通过源码及注…

Java递归问题

3 递归 3.1 递归基础 递归概述:以编程的角度来看,递归指的是方法定义中调用方法本身的现象递归解决问题的思路: 把一个复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解递归策略只需少量的程序就可描述出解题过程所需要的多次重…

CHAPTER 3 Zabbix Grafana

Zabbix & Grafana3.1 Grafana简介3.2 安装grafana3.3 启动grafana3.4 登录控制台3.5 链接zabbix1.安装zabbix插件2.启用插件3.链接数据源4.导入仪表盘5.创建仪表板6.创建仪表盘7.添加自建监控项8.监控信息3.1 Grafana简介 Grafana是一款开源的数据可视化工具,使…

多商户java版小程序+公众号+h5+app秒杀拼团砍价分销商城源码

三勾多商户商城小程序、支持多端发布,一套代码发布到8个平台,面向开发,方便二次开发 项目介绍 三勾多商户小程序商城基于springbootelement-uiuniapp打造的面向开发的小程序商城,方便二次开发或直接使用,可发布到多端&…

做软文发布需要注意哪些细节?

软文发布是一种有效的网络营销和推广活动,它以媒体等形式把产品信息植入到软文报道或新闻中,进行心理暗示和引导销售,进行正面宣传以及促进销售的新型网络营销方式,它不但能够有效地推行产品宣传、也能有效地提高网络曝光率&#…

【Kafka进阶】-- unclean.leader.election.enable参数的内涵

一、背景近期,我们的kafka 消息队列集群(1.x版本)经过了一次事故。某节点意外宕机,导致 log 文件损坏,重启 kafka 失败,最后导致某个 topic 的分区不可用,本文对此做了简单的分析、解决和复现参考,以此为记…

opencv图像处理

CV模块 基本操作 T1家全叫米TF,拍 图像的IO操作,读取和保存方法在图像上绘制几何图形 怎么获取图像的属性 怎么访问图像的像素,进行通道分离,合并等 怎么实现颜色空间的变换 图像的算术运算 掌握图像的读取和保存方法 # 读取图像 cv.imrea…

Spring Boot集成Quartz实现定时任务的动态创建、启动、暂停、恢复、删除

一、整个 Quartz 的代码流程基本基本如下:首先需要创建我们的任务(Job),比如取消订单、定时发送短信邮件之类的,这是我们的任务主体,也是写业务逻辑的地方。创建任务调度器(Scheduler),这是用来调度任务的,主要用于启动…

【Unity细节】RigidBody中Dynamic和Kinematic的区别

👨‍💻个人主页:元宇宙-秩沅 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 秩沅 原创 收录于专栏:unity细节和bug ⭐Dynamic和Kinematic的区别⭐ 文章目录⭐Dynamic和Kinematic的区别⭐&#x1f3…

恰饭近800w播放,官方涨粉5000,B站用户直呼“巅峰制作”!

开年之际,QQ飞车在B站打造了一场「2023QQ飞车手游新春会」,并宣布首款女性机甲、赛车皮肤即将上线,携手玩家一起狂欢。来源-B站17日当晚,QQ飞车官方号在B站直播间举办「2023QQ飞车手游新春会」直播活动,共有11位UP主参…

二十五、Gtk4-多线程分析

1 回顾 1.1 Gnome相关 首先回顾一下GLib,GObject,GIO,Gtk的不同,因为下面会涉及到这些概念里面的函数。 所有这些都是由Gnome项目开发的库,一般都用于Gnome环境相关的应用程序。 Gtk:GUI界面库。GLib&a…

esxi不能识别不兼容网卡解决方案

相信很多网友在安装测试VMWARE Esxi 6.0的时候,总会遇到无法兼容网卡的情况,本人也是遇到了再组装的台式机上测试ESXI 6.0的时候,无法识别REALTEK RTL 8111E的情况。 找了很多网友提供的博客,方法是正确的,但是不够严…

Vue3 中实现关键字高亮的一种思路

前言: 这几天在项目中遇到了需要将用户在搜索框中输入的文字高亮的效果,思考了很久,暂时没有想到更优雅的解决方式,于是采用了最简单的一种思路来实现,特来记录一下。 一. 需求的场景 我接手的这个需求需要和后端搭配&…