当前位置: 首页 > news >正文

DataWhale-统计学习方法打卡Task01

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

统计学习方法(第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)

相关文章:

DataWhale-统计学习方法打卡Task01

学习教材《统计学习方法(第二版)》李航 统计学习方法(第2版) by...李航 (z-lib.org).pdf https://www.aliyundrive.com/s/maJZ6M9hrTe 点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无…...

Java面试——Spring 事务

目录 1.什么是Spring 事务 2.Spring 事务的开启方式 3.Spring事务的实现方式/原理 4.事务传播机制 5.事务隔离级别 6.事务失效的原因 1.什么是Spring 事务 事务在逻辑上是一组操作,要么执行,要不都不执行。 如下: Begin; insert into…...

Python语言零基础入门教程(十九)

Python 异常处理 python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误。你可以使用该功能来调试python程序。 1、异常处理 2、断言(Assertions) python标准异常 什么是异常? 异常即是一个事件,该事件会在程序执行过程中发生&…...

重生之我是赏金猎人-SRC漏洞挖掘(一)-某SRC测试系统无脑Getshell

0x01 前言 https://github.com/J0o1ey/BountyHunterInChina 欢迎大佬们点个star 0x02 资产收集到脆弱系统 在某src挖掘过程中,本人通过ssl证书对域名资产进行了收集,通过计算域名对应ip段的权重 整理出其C段资产,进行了批量目录扫描 查看…...

Sciter 结合 PReact 实现组件公共逻辑抽离

Sciter 结合 PReact 实现组件公共逻辑抽离 下面例子是获取鼠标移动位置,将这部分逻辑进行抽离 一、使用高阶组件抽离公共逻辑 import {Component } from ./preact.js; export const HOCFactory = (Component) => {class HOC...

OpenTracing协议规范链接

一、官网链接 OpenTracing specificationhttps://opentracing.io/specification/不过目前OpenTracing项目已归档,不再维护。需要参考OpenTelemetry官网链接 Migrating from OpenTracing | OpenTelemetryBackward compatibility with OpenTracing has been a prior…...

金三银四面试必看,自动化测试如何解决日志问题

前言 前几天在员群里,有同学问了一个自动化测试实践中遇到的问题: 持续集成的自动化用例很多,测试环境日志level为debug,日志量大概40G/每天,定位问题时日志查询很慢,该怎么解决? 这个问题可…...

微信怎么开小店?【企业商家微信开店】

企业商家入局微信做营销已经是经营规划中必须做的一件事了,对于企业商家来说,最简单直接的方式就是开一个微信小店,然后通过自己宣传推广来在微信小店中成商品。那么企业商家在微信怎么开小店呢?下面内容分享给想在微信开店的企业…...

Java 中FastJson的使用【吃透FastJson】

如果不了解JSON格式,建议先看下:JSON数据格式【学习记录】 JSON序列化、反序列化JavaBean的框架有很多,最常见的Jackson、阿里巴巴开源的FastJson、谷歌的GSON、apache提供的json-lib等,下面我们主要来熟悉一下:Java语…...

Redis5.0集群搭建

Redis集群教程 此文重在介绍 Redis5.0 三主三从集群安装,无复杂难懂的概念,若想深入了解集群原理请参考Redis集群规范。 Redis集群介绍 Redis Cluster 提供一种 Redis 安装方式:数据自动在多个 Redis 节点间分片。 Redis Cluster 提供一定…...

继企业级信息系统开发学习1.1 —— Spring配置文件管理Bean

骑士救美计划采用构造方法注入属性值1、创建救美任务类2、创建救美骑士类2、创建救美骑士类3、创建旧救美骑士测试类3、配置救美骑士Bean5、创建新救美骑士测试类采用构造方法注入属性值 1、创建救美任务类 在net.huawei.spring.day01包里创建RescueDamselQuest类 Rescue Da…...

Web 容器、HTTP 服务器 、Servlet 容器区别与联系

首先浏览器发起 HTTP 请求,像早期的时候只会请求一些静态资源,这时候需要一个服务器来处理 HTTP 请求,并且将相应的静态资源返回。 这个服务器叫 HTTP 服务器。 简单点说就是解析请求,然后得知需要服务器上面哪个文件夹下哪个名字…...

eBPF 进阶: 内核新特性进展一览

Linux 内核在 2022 年主要发布了 5.16-5.19 以及 6.0 和 6.1 这几个版本,每个版本都为 eBPF 引入了大量的新特性。本文将对这些新特性进行一点简要的介绍,更详细的资料请参考对应的链接信息。总体而言,eBPF 在内核中依然是最活跃的模块之一&a…...

2.输入子系统学习-multi-touch-protocol-2023.02

Documentation/input/multi-touch-protocol.txt&#xff08;百度翻译&#xff09; Multi-touch (MT) Protocol ------------------------- Copyright (C) 2009-2010 Henrik Rydberg <rydbergeuromail.se> 一、Introduction ------------ In order to utilize t…...

【靶机】vulnhub靶机pylington

靶机下载地址 Pylington: 1 ~ VulnHub kali ip&#xff1a;192.168.174.128 靶机ip&#xff1a;192.168.174.146 arp-scan -l发现靶机ip是192.168.174.146 进行靶机的端口扫描&#xff0c;这里使用的是nmap的gui 可以发现开放了21和80端口&#xff0c;80端口扫描到了robot…...

【大数据】大数据学习路线

职位选择 首先明确一点&#xff1a;大数据涉及的知识面广度还是有的&#xff0c;需要学习的组件繁多&#xff0c;想要每一项精通几乎不可能&#xff0c;所以企业在招聘的时候会进行细分&#xff0c;基于某个方向进行招聘&#xff0c;比如关键字&#xff0c;数据仓库工程师、数…...

【Python爬虫案例教学】采集某网站壁纸,实现壁纸自由

前言 (&#xff61;&#xff65;∀&#xff65;)&#xff89;&#xff9e;嗨 大家好&#xff0c;这里是小圆 现在开始每天都给大家 分享些关于python爬虫的案例教学 从最简单的开始 — 采集图片壁纸 今天就来扒拉这个优质的壁纸网站~ 网址 &#x1f447; 顺便瞧一眼 这里的…...

波卡2022年第四季度报告

本文将介绍Messari最新发布的波卡Polkadot 2022年第四季度报告内容。 1 Messari已经发布关于波卡Polkadot最新的报告&#xff1a;显示了2022年第四季度的日活账户增加了64%&#xff0c;新用户增长49%。 2 Messari指出&#xff0c;波卡中继链在2022第四季度的环比增长令人印象…...

第一章:初始化react项目+antd+less

初始化react项目 我们首先使用react脚手架创建一个项目 Ant Design less creact-react-app中文文档 creact-react-app demo生产环境打包运行 当我们执行了 npm run build 打包后直接访问index.html 看效果白屏 这时候就需要安装一个serve包 npm install -g serve当我们安…...

图的基本概念

1、图的概念 G(V&#xff0c;E) 图G由节点集合VV(G)和边集合EE(G)组成&#xff0c;其中V为非空有限集合。 集合V中的节点&#xff08;node&#xff09;用红色标出&#xff0c;通过集合E中黑色的边&#xff08;edge&#xff09;连接。 G的边&#xff1a;E中的每个顶点对&#x…...

MySQL必会四大函数-窗口函数

在了解窗口函数之前&#xff0c;我们必须了解聚合函数。常见的聚合函数&#xff0c;包括 AVG、COUNT、MAX、MIN、SUM 以及 GROUP_CONCAT&#xff0c;常和GROUP BY 函数一起使用。聚合函数的作用就是对一组数据行进行汇总计算&#xff0c;并且返回单个分析结果。 窗口函数和聚合…...

各CCF期刊点评网站/学术论坛的信息汇总及个人评价

CCF中文期刊投稿选择之篇章一:各CCF期刊点评网站/学术论坛的信息汇总及个人评价中文科技期刊A类&#xff08;EI检索&#xff09;中文期刊投稿点评网站整理1.小木虫学术论坛2. Letpub3. Justscience4. 发表记5. 会伴&#xff08;Conference Partner)6. ijouranl7. 掌桥科研这是以…...

深度解析 JavaScript 严格模式:利弊长远的考量

前言 ECMAScript 5首次引入严格模式的概念。严格模式用于选择以更严格的条件检查JavaScript代码错误&#xff0c;可以应用到全局&#xff0c;也可以应用到函数内部。 严格模式的好处是可以提早发现错误&#xff0c;因此可以捕获某些 ECMAScript 问题导致的编程错误。 理解严格…...

Vue.js 循环语句

Vue.js 循环语句 在Vue开发中&#xff0c;for循环是我们最常遇见的场景之一&#xff0c;我们知道常见的遍历方式有for循环&#xff0c;for of、forEach、for in.虽然在开发过程中&#xff0c;这几种方式基本上可以满足我们大多数的场景&#xff0c;但是你真的知道他们之间的区…...

家政服务小程序实战教程12-详情页

我们的家政服务小程序已经完成了首页和分类展示页面的开发&#xff0c;接下来就需要开发详情页了。在详情页里我们展示我们的各项服务内容&#xff0c;让用户可以了解每项家政服务可以提供的内容。 低码开发不像传统开发&#xff0c;如果开发详情页需要考虑每个字段的类型&…...

十四、平衡二叉树

1、看一个案例&#xff08;说明二叉排序树可能的问题&#xff09; 给你一个数列{1,2,3,4,5,6}&#xff0c;要求创建一棵二叉排序树&#xff08;BST&#xff09;&#xff0c;并分析问题所在。 上面二叉排序树存在问题分析&#xff1a; 左子树全部为空&#xff0c;从形式上看&…...

AC/DC 基础

一、概念&#xff1a; AC转换成DC的基本方法有变压器方式和开关方式&#xff0c;如下图1、2所示&#xff1b;整流的基本方法有全波整流和半波整流&#xff0c;如下图3所示。 图1 变压器方式 图2 开关方式 图3 整流方式 二、转换方式 1、变压器方式 变压器方式首先需要通过变压…...

集成电路相关书籍

注&#xff1a;从此开始&#xff0c;文中提到的书籍都会在公众号对应文章末尾给出链接&#xff0c;不需要在微信后台获取&#xff0c;当然还是可以通过在微信后台回复相关书名获取对应的电子书。 在后台看到很多人回复集成电路相关的一些书籍&#xff0c;所以本文就提供一些书籍…...

前端开发之防抖与节流

前端开发中我们经常会通过监听某些事件来完成项目需求 1.通过监听 scroll 事件&#xff0c;检测滚动位置&#xff0c;根据滚动位置显示返回顶部按钮 2.通过监听 resize 事件&#xff0c;对某些自适应页面调整DOM的渲染&#xff08;通过CSS实现的自适应不再此范围内&#xff09;…...

大公司如何用A/B测试解决增长问题?

摘要&#xff1a;上线六年&#xff0c;字节跳动的短视频产品——抖音已成为许多人记录美好生活的平台。除了抖音&#xff0c;字节跳动旗下还同时运营着数十款产品&#xff0c;从资讯、游戏&#xff0c;到房产、教育等横跨多个领域。在产品迭代速度和创新能力的快速发展下&#…...

国外色情网站app/河南专业网站建设

4.2 EditText(输入框) EditText 输入框&#xff0c;继承于TextView, 也继承其属性EditText 特有属性&#xff1a; 属姓名 说明 android:hint 默认提示文本 android:textColorHint 默认提示文本的颜色 android:selectAllOnFocus 布尔值。点击输入框获得焦点后&#xff0…...

如何查询网站的备案信息/电商怎么做

宜昌华为交换机S5720-28使用方法&#xff0c;北京乾行捷通有限公司华为交换机S5720-28&#xff0c;公司成立于2019年&#xff0c;是集ICT产品分销、系统集成与服务、基础架构建设为主营业务的综合服务提供商。乾行捷通秉承“由所思&#xff0c;应所需&#xff0c;客户至上”的经…...

厦门外贸网站建设哪家公司大/app推广一手单

主要内容1.编码问题2.File类的使用3.RandomAccessFile的使用4.I/O 输入输出流编码问题&#xff1a;1 importjava.io.UnsupportedEncodingException;23 public class编码问题 {4 public static voidmain(String[] args) {5 //我们项目的默认编码是GBK6 String s "测试 ABC…...

中山建公司网站/广告推广语

title: 拉刷新&#xff0c;上拉加载更多 date: 2018-07-09 14:37:58 tags: 前端 categories:前端继续上一内容&#xff0c;更新第三部分&#xff0c;防重复点击-节流函数的使用。 截图分享功能按钮防重复点击(节流函数应用)3. 下拉刷新&#xff0c;上拉加载更多(这个地方有坑) …...

成都网站app开发/网络广告投放渠道有哪些

1、父组件传值给子组件------->子组件使用 props 属性接收 2、子组件传值给父组件-------->子组件通过$emit 传递&#xff08;自定义事件传递&#xff09;&#xff0c;父组件通过属性名称接收 3、父组件&#xff0c;子组件&#xff0c;兄弟组件相互传值------>需要 …...

河南郑州app建设网站/网络推广外包内容

Visual Studio 中预定于修饰层的实际显示优先级。转载于:https://www.cnblogs.com/NanaLich/archive/2013/05/20/3088438.html...