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

核密度估计——从直方图到核密度(核函数)估计_带宽选择

参考

核密度估计(KDE)原理及实现-CSDN博客

机器学习算法(二十一):核密度估计 Kernel Density Estimation(KDE)_算法_意念回复-GitCode 开源社区

引言

        在统计学中,概率密度估计是一种重要的方法,用于估计连续型随机变量的概率密度函数。与基于假设的参数方法不同,概率密度估计是一种非参数方法,能够对数据进行平滑估计。其核心目的是通过对观察数据的平滑处理来揭示其潜在的分布特性,尤其在数据分布未知或没有假设具体分布模型时,概率密度估计成为理解数据基本特征的重要手段。

       概率密度估计方法可以分为直方图密度估计核密度估计两种。其中,直方图密度估计将数据划分为若干区间,通过计算每个区间内的频数来近似表示概率密度,是一种简单而直观的方法。而核密度估计则通过将每个观测值与一个核函数进行加权叠加,得到一个连续平滑的概率密度函数,用于更精细地描述数据的分布特性。

       一元密度估计在描述数据集中趋势、分布状况及多峰情况方面非常有效。这种方法在探索数据特征时提供了一种可靠且灵活的工具,能够帮助研究者理解数据的内在结构,尤其是在数据包含多样性和异常值时,密度估计的方法更显优势。因此,密度估计在统计分析、数据挖掘和机器学习等领域得到了广泛的应用。

一.直方图密度估计

       在直方图密度估计中,如何选择合适的区间数量(也称为组数)是一个关键问题。

        Sturges准则是一种常用的方法,用于确定直方图的最佳区间数量。Sturges准则的核心思想是,当数据样本量较小时,通过对数缩放的方法使得区间数量适中,以避免过度平滑或过度分割数据。这种方法适用于数据呈近似正态分布的情况,能够有效地平衡直方图的平滑性和分辨能力。然而,当样本量较大或者数据分布偏离正态分布时,Sturges准则可能会显得不足,产生较少的区间,从而导致直方图无法很好地捕捉数据的细节特征。

        为了解决这一问题,研究者们还提出了其他区间选择准则,例如Freedman-Diaconis准则Scott准则,这些方法在处理具有不同分布特征的数据时能够提供更为灵活和精确的区间划分。

1.1 Sturges准则

       Sturges准则的核心思想是,当数据样本量较小时,通过对数缩放的方法使得区间数量适中,以避免过度平滑或过度分割数据。这种方法适用于数据呈近似正态分布的情况,能够有效地平衡直方图的平滑性和分辨能力。Sturges准则的思想是通过样本总数的对数来限制分组数,以保持合理的分布假设。在一些特殊情况下,如样本来自二项分布(Binomial)或其他复杂分布时,可以使用这个准则进行分组。Sturges准则的分组区间的最佳宽度可以通过如下公式计算:

       其中 R 表示样本的极差,n 表示样本大小。通过这个公式,区间的宽度主要依赖于样本的大小,而非数据的实际分布。这种选择方式适用于从对称或单峰的总体中抽取的数据,但在某些情况下(如偏态分布或多峰分布),该准则可能并不适用。

1,3为默认分组的直方图;2,4是用Sturges准则

       如何通过直方图来估计数据的密度?

       当样本量为 n=1000,并基于对样本的直方图分组来估计相应的密度值。首先,为了从直方图中重新得到密度估计,需找到包含所关心点的区间,并计算相应的组频率。

       在默认的直方图中,x0=0.1 位于第 7 组,其中密度 f1(0.1)=0.38。而在 Sturges 分组的直方图中,x0​ 在第 6 组,f2(0.1)=0.3889306。换句话说,密度估计是通过分组加权得到的相对频率。结果显示用默认直方图密度估计0.1的概率密度为f1(0.1)=0.38,如果用Sturges 分组的直方图估计0.1的概率密度f2(0.1)=0.3889306。这两个估计值与理论标准正态密度的值 ϕ(0.1)=0.3969525 非常接近,但是用Sturges 分组的直方图估计的结果更接近理论值,说明密度估计的效果相对较好。

使用默认分组和Sturges准则进行直方图密度估计(部分代码与结果图)

1.2 Scott 正态参考准则

       Scott 正态参考准则用于选择最优(或较好)的光滑参数,以使得估计的均方误差最小。均方误差(MSE)用于度量估计函数 f(x)与真实密度函数 f^(x)之间的偏差。MSE 的定义如下:

       为了选择最佳带宽 h需要使得 MISE 最小化。根据 Fubini 定理可以得到:

      为了使得 MISE 最小,选择最优带宽

      这一带宽的选择使得 Asymptotic MISE(渐近 MISE)达到最小值:

     由于密度估计中的 f′′(x) 是未知的,因此无法直接通过上述公式计算最优带宽。Scott 提供了一个被称为“正态参考准则”的估计方法,用于在正态分布假设下获得合理的带宽。根据正态参考准则:

     其中\sigma \hat{}是数据标准差的估计。 当假设数据来自正态分布时(也可以理解为如果当样本量呈现比较明显的对称单峰,也可以考虑使用这个准则),可以通过经验公式来选择合适的带宽。

使用Scott 正态参考准则分组和R中默认的‘Sturges’准则进行直方图密度估计

     不难发现直接使用breaks = ‘scott’呈现的分组如蓝色的直方图显示,与我们根据经验准则选择的带宽不同(使用此准则时注意不要直接用R包里面的就行)根据经验公式选择的带宽使得分组更细使得数据的密度估计更平滑、准确

1.3 Freedman-Diaconis 准则

       如上面的数据集,我们可以很明显的看到数据集存在异常值,如果我们想尽量减小异常值的影响,就可以考虑Freedman-Diaconis 准则。

       Freedman-Diaconis 准则,它是一种用于选择直方图的最佳组距(带宽)的标准,特别是在数据包含异常值或偏态时,Freedman-Diaconis准则通常被认为更为稳健。Freedman-Diaconis准则旨在根据数据的四分位距(IQR,Interquartile Range)来选择最佳的组距(带宽)。具体公式如下:

       h 表示组距(带宽),是确定每个直方柱的宽度的关键参数。IQR 为样本四分位数间距,即数据在第 75 个百分位数与第 25 个百分位数之间的范围。IQR 对异常值(极端值)更加稳健,因此在数据包含离群值时,Freedman-Diaconis准则是更合理的选择。n表示样本量。Freedman-Diaconis准则中,组距与样本量的三次根成反比,即随着样本量增加,组距变窄,使直方图的分辨率更高。

       可以看到使用F-D准则,可以让异常值更远离我们的主要数据与Scott 正态参考准则进行比较,Scott 正态参考准则将数据分为9组,F-D准则将数据分为10组(其中有一组频数为0),在数据包含较多离群值或数据分布不服从正态假设时,F-D准则异常值更加鲁棒。

1.4 频率多边形密度估计

       频率多边形是对直方图的扩展和进一步的平滑处理方法。每个直方图的顶点被连接起来,形成一条连续的折线,这样能够更直观地展现数据的密度变化趋势。在频率多边形的基础上,可以进一步引入核密度估计来得到更加精细的分析结果。这种方法对数据分布的理解提供了一种简化和连续的表示形式,特别适用于需要对数据分布进行更平滑的分析场景。

       给出了频率多边形密度估计的最佳组宽的计算方法:

       其中,σ 表示数据的标准差,n 表示样本量。这个公式用于估计频率多边形的最佳组宽,以确保密度估计更加准确和平滑。如果是一个明显的偏态分布,可以使用 Scott 的方法对组宽进行修正。给出了一个计算组宽的公式:

      该公式通过乘以一个因子来得到适当且更小的组宽,从而更好地应对偏态分布。类似地,如果样本的尾部比正态分布更陡峭,那么可以推导出一个“峰态调整”的方法,以减少组宽,从而更精确地反映样本的密度特征。

       直方图尽管可以有效地描述数据的频率分布,但由于每个组之间是离散的,所以它在描述数据分布的连续性方面存在一定的局限性。而频率多边形通过将各个组的顶点相连,使得最终得到的密度估计曲线看起来更加连续和平滑,从而更好地反映了数据的整体分布趋势。

       我们需要了解密度函数(PDF)的一个重要性质:在整个定义域上的积分必须等于1

       通过积分来验证密度估计的方法。

       我们可以使用插值函数approxfun来对频率多边形的估计进行插值,然后使用integrate函数对其进行积分,计算其在整个定义域内的总和是否等于1。

      上方的代码展示了这一过程:首先通过approxfun函数创建了插值函数fpoly,然后使用integrate函数对其进行积分。在输出中我们可以看到积分的结果非常接近1,并且误差极小这就验证了这个频率多边形密度估计符合概率密度的基本性质。如果积分的结果与1相差较大,那么就说明我们的密度估计存在一些问题,可能是由于数据分布的异常或者在估计过程中的计算误差。这样一来,验证积分结果是否等于1就成为了检查密度估计准确性和可靠性的重要步骤。最后,在频率多边形密度估计的应用中,我们不仅要关注曲线形态是否合理,还必须通过数学手段验证它的正确性,确保它符合概率分布的要求。这对于我们在实际数据分析中保证模型的可靠性至关重要。

题外话:

你肯定能感受到带宽选择 h  的重要性,

后面到核密度估计,

ta会更重要!!!!!!!

1.5 平均移动直方图(Average Shifted Histogram, ASH)

     ASH 方法 是一种通过对直方图进行平移并取平均值来计算概率密度估计的非参数方法。相比于简单的直方图,ASH 能有效减少在组距选择上的误差,并得到一个更为平滑的密度估计。ASH 密度估计涉及将数据划分为多个区间,然后通过计算每个区间的频数并对这些区间进行平移得到的平均值。具体地:

(a)将原始样本分组,并计算每个组的频数。

(b) 通过设定多个平移区间 m,对原始分组位置进行移动,形成多组重叠直方图。

(c) 最后对每个移动后的直方图求均值,形成最终的 ASH 密度估计。

例子

对样本大小 n=100进行估计,用四个不同的直方图宽度(分别为 0、0.25、0.5 和 0.75)计算每个直方图中的区间计数(breaks)和 counts。找到包含 x=0.2x = 0.2x=0.2 的区间,进行求平均值计算,计算公式为:

或者通过构造一个网格宽度为 δ=h/m=0.25 的子区间构成的网来计算。点 x=0.2在区间 (−0.75,0.25),(−0.5,0.5),(−0.25,0.75),(0,1] 中,对应着第 14 个到第 20 个子区间,分组计数为 [1:12] [13:24] [25:35]。给出一般情况下 tj之间估计密度的加权平均公式:

example

可以看到,通过加权函数可以简化计算,要求左右两边各有 m−1 个空的分组。

二.  核密度估计

2.1理论推导

通过上面内容可以理解如下:

累积分布函数(CDF) F(x)=P(X≤x),用于描述随机变量小于或等于某个值 x 的概率。对于任意给定的数据集,我们可以通过样本来估计其分布函数,定义为:

其中,n 表示样本总数。

为了得到概率密度函数,可以通过定义差商的极限:

这相当于取样本数据在点 xxx 附近的变化率,以此估计其密度。我们可以通过将区间分割来估计概率密度:

其中,h 为带宽参数,表示区间的宽度。可以使用卷积核函数对密度进行平滑:

这里用到的核函数为单位矩形函数,取值为 1 当 ∣x−xi∣<1时,否则为 0。如果我们定义一个均匀分布的核函数 k(x),如下所示:

那么均匀核密度估计公式可以表示为:

这是利用核函数进行加权平均以平滑估计数据的分布特性

带宽参数 h 控制核函数的宽度,决定了平滑程度。(非常重要!!!!!!!!)

核函数 K(t) 的五个性质:

2.2核密度估计

    K(.)为核函数(非负、积分为1,符合概率密度性质,并且均值为0),h>0为一个平滑参数,称作带宽(bandwidth),也看到有人叫窗口。有很多种核函数,uniform,triangular, biweight, triweight, Epanechnikov,normal,等。

各种核函数的图像如图2.1:

2.1

    图 2.2 中展示了对标准正态分布的 100 个样本点使用不同的核函数进行核密度估计的结果,带宽固定为 h=0.5高斯核(Gaussian)红色虚线显示。高斯核具有平滑连续的特性,因此估计的曲线也是相对光滑的;Epanechnikov 核蓝色虚线显示,通常被认为是最优的核函数,因为它在均方误差意义下的效率最高;矩形核(Rectangular)绿色虚线表示,估计结果呈现出明显的块状特征,不够平滑;三角核(Triangular)紫色虚线显示,估计相对平滑,但比高斯核略差;余弦核(Cosine)橙色虚线显示,也能较好地反映数据的分布。不同核函数的曲线表现出不同的平滑效果,但大部分曲线最终都在正态分布上表现良好。

2.2

图 2.3 展示了对标准正态分布的 100 个样本点,在高斯核下使用不同带宽进行核密度估计的结果。带宽较小(h=0.05),核密度估计曲线非常不平滑,表现出对每个样本点的敏感性,出现了过拟合。带宽适中(h=0.5),估计曲线较为平滑,能较好地反映数据的整体分布。带宽进一步增大(h=1),曲线变得更加平滑,细节减少,整体特征保留。带宽较大(h=2),估计的曲线过于平滑,丢失了部分数据的细节。

可以看出选择不同的核函数对于核密度估计的影响没有选择带宽大小的影响大。怎么选择一个合适的带宽也是一个值得考虑的问题。

在实际中,样本分布不一定是正态的,因此有时候需要选择一个更加鲁棒的带宽估计公式。Silverman 提出了一个缩减带宽的公式:

其中 S为样本标准差,IQR为四分位距(Interquartile Range),使用最小值 σ 是为了确保带宽的选择既能反映样本的整体特征,也能够对异常值和极端值具有一定的鲁棒性。则在积分均方误差(IMSE)最小准则下的带宽为:

(类似于刚刚第一部分直方图的F-D准则)

Silverman 指出,在大多数情况下,这个缩减的带宽是一个很好的起点,即使样本分布不是正态的,它仍然能够提供一个较好的平滑效果。这使得该带宽选择方法在许多应用中都比较实用。带宽 h 的缩减有助于在存在离群值时,使得估计结果不至于受到极端数据点的过度影响。

用两种带宽计算方式,进行来自双峰分布的离散数据的核密度估计

   在样本数量较少的情况下(n=6),使用不同核函数进行核密度估计的效果,带宽固定为 h=2.5。样本点为:-6.66,-9.27,0.88, 11.27,5.20, 5.12,结果如图2.4所示。核密度估计的蓝色实线代表整体的密度估计,而红色虚线表示每个数据点对核函数的贡献。可以看到,不同的核函数曲线形式不同,但总体趋势相似。

   使用高斯核函数的核密度估计。高斯核是一种平滑且对称的核函数,在很多情况下是默认的选择。余玹核函数在边界处逐渐收敛到 0,相比高斯核,余弦核在某些位置的贡献稍微集中一些,呈现出一种周期性的光滑趋势。使用埃潘尼切尼科夫核的核密度估计,在理论上具有最小的均方误差(IMSE),在积分均方误差意义下是最优的。核函数的选择则取决于数据特性和具体需求,高斯核通常是默认选择,但其他核函数在某些情况下可以提供更好的结果,如 Epanechnikov 核在均方误差意义下是最优的。

相关文章:

核密度估计——从直方图到核密度(核函数)估计_带宽选择

参考 核密度估计&#xff08;KDE&#xff09;原理及实现-CSDN博客 机器学习算法&#xff08;二十一&#xff09;&#xff1a;核密度估计 Kernel Density Estimation(KDE)_算法_意念回复-GitCode 开源社区 引言 在统计学中&#xff0c;概率密度估计是一种重要的方法&#xff0…...

javaScript Tips

一键去掉鼠标的图标 document.body.style.cursor none; 获取一个随机颜色 const randomHex () >#${Math.floor(Math.random() * 0xffffff).toString(16).padEnd(6, 0)}; 生成随机字符串&#xff0c;各种随机基本都是这个原理 const randomString () > Math.rand…...

【Ubuntu】清理、压缩VirtualBox磁盘空间大小

1、说明 本人为虚拟机创建了两个硬盘:root.vdi 和 hoom.vdi,在创建虚拟机时,分别挂载在/root目录和/home目录下。 下面演示分别清理、压缩两个磁盘的空间。 2、清理空间 1)清理 root.vid sudo dd if=/dev/zero of=/EMPTY bs=1M;sudo rm -f /EMPTY输出信息中会提示,如…...

若依 ruoyi VUE el-select 直接获取 选择option 的 label和value

1、最新在研究若依这个项目&#xff0c;我使用的是前后端分离的方案&#xff0c;RuoYi-Vue-fast(后端) RuoYi-Vue-->ruoyi-ui(前端)。RuoYi-Vue-fast是单应用版本没有区分那么多的modules 自己开发起来很方便&#xff0c;这个项目运行起来很方便&#xff0c;但是需要自定义的…...

C++小小复习一下

类&#xff0c;对象&#xff0c;成员变量&#xff0c;成员函数 特点&#xff1a;面向对象程序设计---因为要创建对象来调用类里面的函数或者成员变量 比如你的对象是一个生物-人&#xff1a;他会有自己的一些属性&#xff1a;身高&#xff0c;体重&#xff0c;性别等&#xf…...

JavaWeb学习(4)(四大域、HttpSession原理(面试)、SessionAPI、Session实现验证码功能)

目录 一、web四大域。 &#xff08;1&#xff09;基本介绍。 &#xff08;2&#xff09;RequestScope。(请求域) &#xff08;3&#xff09;SessionScope。(会话域) &#xff08;4&#xff09;ApplicationScope。(应用域) &#xff08;5&#xff09;PageScope。(页面域) 二、Ht…...

quartz 架构详解

‌Quartz是一个开源的作业调度框架&#xff0c;完全由Java编写&#xff0c;主要用于定时任务的调度和管理。Quartz的架构主要包括以下几个核心组件‌&#xff1a; 1.‌调度器&#xff08;Scheduler&#xff09;‌&#xff1a;调度器是Quartz的核心组件&#xff0c;负责管理Qua…...

Redis安装和Python练习(Windows11 + Python3.X + Pycharm社区版)

环境 Windows11 Python3.X Pycharm社区版 思路 1 github下载redis压缩包 &#xff0c;安装并启动redis服务&#xff0c;在Pycharm中运行python程序&#xff0c;连接redis服务&#xff0c;熟悉redis的使用和巩固python语言。 2 python开发环境的搭建参考 https://mp.csdn.…...

明年 iPhone 将搭载苹果自研 5G 基带芯片

明年 iPhone 将搭载苹果自研 5G 基带芯片 据彭博社记者 Mark Gurman 透露&#xff0c;苹果首款自主研发 5G 基带芯片即将面世。 苹果首款自研 5G 基带芯片将命名为「Sinope」&#xff0c;将应用在 2025 年发布的 iPhone SE、iPhone 17 Slim 版以及低端系列的 iPad 系列。「Si…...

1.1 Beginner Level学习之“编写简单的发布服务器和订阅服务器”(第十二节)

学习大纲&#xff1a; 1. 编写发布服务器节点 在ROS中&#xff0c;**节点&#xff08;Node&#xff09;**是与ROS网络通信的基本单位。在这个部分&#xff0c;我们将创建一个简单的发布节点&#xff08;talker&#xff09;&#xff0c;它会不断向话题&#xff08;topic&#x…...

C语言 字符串操作函数

strncpy() 用于将一个字符串的一部分拷贝到另一个字符串中。 char* strncpy(char* destination, const char* source, size_t num);参数&#xff1a;destination 是目标字符串的指针&#xff0c;表示将要拷贝到的位置source 是源字符串的指针&#xff0c;表示要拷贝的字符串num…...

论文概览 |《Cities》2024.07 Vol.150(上)

本次给大家整理的是《Cities》杂志2024年07月第150期的论文的题目和摘要&#xff0c;一共包括90篇SCI论文&#xff01;由于论文过多&#xff0c;我们将通过两篇文章进行介绍&#xff0c;本篇文章介绍第1--第45篇论文! 论文1 Spatiotemporal infection dynamics: Linking indiv…...

查看Windows系统上的Redis服务器是否设置了密码

查看 Redis 配置文件 1.找到 Redis 配置文件&#xff1a; 通常Redis配置文件名为 redis.windows.conf 或 redis.conf&#xff0c;它位于Redis安装目录中。 2.打开配置文件&#xff1a; 使用文本编辑器&#xff08;如Notepad、VS Code等&#xff09;打开该文件。 3.查找 re…...

30天学会Go--第6天 GO语言 RESTful API 学习与实践

30天学会Go–第6天 GO语言 RESTful API 学习与实践 文章目录 30天学会Go--第6天 GO语言 RESTful API 学习与实践一、 RESTful API 的设计原则1.1 RESTful API 的核心概念1.2 RESTful API 的 URL 设计1.3 RESTful API 的数据格式 二、 实现 RESTful API2.1 定义数据模型2.2 实现…...

数据分析特征标准化方法及其Python实现

数据分析特征标准化方法及其Python实现 1、概述 在数据分析中,对特征进行标准化主要是: 1、消除量纲影响 不同特征可能具有不同的量纲和数量级。 例如,一个特征可能是以米为单位的长度,而另一个特征可能是以秒为单位的时间。直接使用这些具有不同量纲的原始数据进行分析…...

【推导过程】常用共轭先验分布

文章目录 相关教程相关文献常用共轭先验分布预备知识贝叶斯统计后验分布的计算 正态均值(方差已知)的共轭先验分布是正态分布二项分布中的成功概率 θ 的共轭先验分布是贝塔分布正态均值(方差已知)的共轭先验分布是倒伽玛分布 作者&#xff1a;小猪快跑 基础数学&计算数学&…...

notepad++安装教程(超详细)

1.下载地址&#xff08;可以私信博主&#xff09; https://notepad-plus.en.softonic.com/download 2.解压安装...

Django快速入门

目录 1 创建django工程2 运行django3 Django工程目录详解4 开始一个app5 CBV和FBV6 使用模板7 使用模板语言8 自定义simple_tag Django 是用 Python 写的一个自由和开放源码 web 应用程序框架。 web框架是一套组件&#xff0c;能帮助你更快、更容易地开发web站点。当你开始构建…...

ISO45001职业健康安全管理体系认证流程

前期准备 领导决策&#xff1a;企业高层领导需认识到实施 ISO 45001 体系的重要性和必要性&#xff0c;做出认证决策&#xff0c;并承诺提供必要的资源支持。成立工作小组&#xff1a;由企业各相关部门人员组成工作小组&#xff0c;明确各成员的职责和分工&#xff0c;确保工作…...

Elasticsearch一分钟

参考 FST有穷状态转换器/咆哮位图/增量缩紧 Es技术难点 架构...

MFC中如何创建一个非模态对话框

对话框是编程中常用的一个控件&#xff0c;非模态对话框与用户交互更加友好&#xff0c;用户不必关闭对话框就能进行其他操作&#xff0c;比如拷贝黏贴&#xff0c;对比数据&#xff0c;执行其他命令。 由于无模态对话经常使用&#xff0c;且用法类似&#xff0c;因此我把它写…...

【设计模式】单例模式 在java中的应用

文章目录 引言什么是单例模式单例模式的应用场景单例模式的优缺点优点缺点 单例模式的基本实现饿汉式单例模式懒汉式单例模式双重检查锁定静态内部类枚举单例 单例模式的线程安全问题多线程环境下的单例模式线程安全的实现方式1. **懒汉式单例模式&#xff08;线程不安全&#…...

北京2024年CSP-S/J 及NOIP游记

北京2024年CSP-S/J 及NOIP游记 2024.9 开学2024.9 CSP-S12024.9 停课2024.10假期 误入歧途2024.10 CSP-S2 冲刺 2024.9 开学 开学升入初三&#xff0c;9月的前半个月一直在搞文化课&#xff08;把文化课搞得风生水起&#xff09;&#xff0c;经历了1天的校运动会&#xff08;摆…...

vue 纯前端对接阿里云oss文件上传封装,支持批量多文件上传,大文件上传时拿到上传进度。

使用阿里云上传先看官方文档&#xff08;阿里云官方文档&#xff09; 我这边只做了简单上传和分片上传&#xff0c;也包含了粘贴上传和拖拽上传。 1.首页先安装 npm i ali-oss2.在utils下创建uploadOss.js const OSS require(ali-oss) import { getOsstoken } from /api/in…...

YOLO系列发展历程:从YOLOv1到YOLO11,目标检测技术的革新与突破

文章目录 前言一、YOLOv1&#xff1a;单阶段目标检测的开端二、YOLOv2&#xff1a;更精准的实时检测三、YOLOv3&#xff1a;阶梯特征融合四、YOLOv4&#xff1a;性能和速度的新平衡五、YOLOv5&#xff1a;易用性和扩展性的加强六、YOLOv6&#xff1a;工业部署的利器七、YOLOv7&…...

认识Java中的异常(半成品)

1.异常的概念与体系结构 1.1在Java中,将程序执行过程中发生的不正常行为称为异常.比如 1.算数异常 public class Main1 {public static void main(String[] args){System.out.println(10/0);} } //异常信息为:Exception in thread "main" java.lang.ArithmeticExc…...

Sqoop 指令语法手册

目录 help指令list-databases参数描述示例 codegen参数描述 Sqoop create-hive-table参数描述 eval参数描述 Export参数描述 import参数描述 import-all-tables参数描述 import-mainframe参数描述 job参数描述 list-tables参数描述 merge参数描述 help指令 sqoop help 下面的S…...

网络安全 - SQL Injection

1.1.1 摘要 日前&#xff0c;国内最大的程序员社区CSDN网站的用户数据库被黑客公开发布&#xff0c;600万用户的登录名及密码被公开泄露&#xff0c;随后又有多家网站的用户密码被流传于网络&#xff0c;连日来引发众多网民对自己账号、密码等互联网信息被盗取的普遍担忧。 网络…...

spi 发送与接收 移位写法

spi _tx 发送模块 片选信号cs可以在top顶层控制模块产生 timescale 1ns / 1psmodule spi_rom#(parameter SIZE 8 )(input wire clk ,input wire rst_n,input wire [SIZE-1:0] data ,input wire …...

MyBatis关联映射

目录 一、什么是关联注解&#xff1f; 二、数据库建表 1.学生表 2.教师表 三、一般查询 &#xff08;1&#xff09;创建StudentTeacher类 &#xff08;2&#xff09;mapper层 &#xff08;3&#xff09;Dao接口 &#xff08;4&#xff09;Test类 &#xff08;5&#x…...

通过华为鲲鹏认证的软件产品如何助力信创产业

软件通过华为鲲鹏认证与信创产业有着密切的联系。鲲鹏认证是华为推动信创产业发展的一项重要举措&#xff0c;通过该认证&#xff0c;软件可以在华为的生态系统中实现更好的兼容性和性能优化&#xff0c;从而推动信创产业的全面发展和国产化替代。 鲲鹏认证的定义和重要性 鲲…...

陈志刚解读:国家数据基础设施建设解读(附下载)

本期分享陈志刚解读&#xff1a;国家数据基础设施建设解读&#xff0c;从背景意图、概念内涵、发展愿景与总体功能、总体架构、重点方向、算力底座、网络支撑、安全防护和组织保障十个方面展开&#xff0c;共52页ppt。 加入星球可获取完整版资料 篇幅限制&#xff0c;部分内容…...

QT 中 sqlite 数据库使用

一、前提 --pro文件添加sql模块QT core gui sql二、使用 说明 --用于与数据库建立连接QSqlDatabase--执行各种sql语句QSqlQuery--提供数据库特定的错误信息QSqlError查看qt支持的驱动 QStringList list QSqlDatabase::drivers();qDebug()<<list;连接 sqlite3 数据库 …...

VPN设备

定义: 虚拟专用网络指的是在公用网络上建立专用网络的技术。之所以称为虚拟网主要是因为整个VPN网络的任意两个节点之间的连接并没 有传统专网所需的端到端的物理链路&#xff0c;而是架构在公用网络服务商所提供的网络平台之上的逻辑网络&#xff0c;用户数据在逻辑链路中传输…...

centos部署SkyWalking并在springcloud项目中用法举例

文章目录 场景SkyWalking介绍部署部署Storage [单机版Elasticsearch]部署SkyWalking OAP [下载地址](https://skywalking.apache.org/downloads/#SkyWalkingAPM)部署SkyWalking Java AgentspringCloud 使用举例 场景 SkyWalking是应用性能监控平台&#xff0c;可用于分布式系统…...

[创业之路-186]:《华为战略管理法-DSTE实战体系》-1-为什么UTStarcom死了,华为却活了,而且越活越好?

目录 前言 一、市场定位与战略选择 二、技术创新能力 三、企业文化与团队建设 四、应对危机的能力 五、客户为中心的理念 六、市场适应性与战略灵活性 七、技术创新与研发投入 八、企业文化与团队建设 九、应对危机的能力 前言 UT斯达康&#xff08;UTStarcom&#…...

算法设计5_分支限界法

分支限界法 分支限界法常以广度优先或以最小耗费(最大效益)优先的方式搜索问题的解空间树&#xff0c;裁剪那些不能得到最优解的子树以提高搜索效率。 步骤&#xff1a; ① 定义解空间(对解编码); ② 确定解空间的树结构&#xff1b; ③ 按BFS等方式搜索&#xff1a; a.每个活…...

【设计模式系列】状态模式(二十三)

一、什么是状态模式 状态模式&#xff08;State Pattern&#xff09;是一种行为设计模式&#xff0c;其核心目的是管理一个对象在其内部状态改变时的行为变化&#xff0c;其核心理念是将对象的行为和状态分离。这种模式通过将每个状态相关的行为封装在独立的类中&#xff0c;使…...

github创建发布分支

创建一个名为 latest 的分支&#xff0c;并将其作为稳定版本分支。以下是操作步骤&#xff1a; 1. 创建 latest 分支 首先&#xff0c;确保你在 master 分支&#xff08;或当前的稳定版本分支&#xff09;上&#xff0c;并且已经提交了所有更改。然后&#xff0c;你可以创建一…...

【Linux】网络服务

声明&#xff0c;以下内容均学习自《Linux就该这么学》一书 1、创建网络会话 Linux系统使用NetworkManager提供网络服务&#xff0c;它是一种动态管理网络配置的守护进程&#xff0c;能够让网络设备保持连接状态。 nmcli nmcli是一款基于命令行的网络配置工具&#xff0c;它…...

错题:Linux C语言

题目&#xff1a;手写代码&#xff1a;判断一个数&#xff08;int类型的整数&#xff09;中有有多少1 题目&#xff1a;手写代码&#xff1a;判断一个数(转换成二进制表示时)有几个1 #include <stdio.h> int main(int argc, const char *argv[]) { //判断一个数&#xf…...

机器学习期末速成

文章参考自B站机器学习期末速成课 本文仅作者个人复习使用 一、机器学习分类 聚类和分类的区别&#xff1a; 分类&#xff1a;一开始就知道有哪些类别 聚类&#xff1a;一开始不知道有哪些类别 损失函数&#xff1a;简单来说就是你预测出来的结果和真实值的差距。 0-1损失函数…...

【学习总结|DAY015】Java面向对象高级-抽象类、接口

引言 在今天的课程中&#xff0c;我们详细探讨了 Java 编程语言的几个核心特性&#xff1a;多态、final 关键字、抽象类和接口。这些概念是面向对象编程的基础&#xff0c;对于构建健壮、可维护的应用至关重要。本文将通过具体的例子和解释帮助大家更好地掌握这些知识点。 一…...

单词拼写纠正-04-161.力扣 相隔为 1 的编辑距离

拼写纠正系列 NLP 中文拼写检测实现思路 NLP 中文拼写检测纠正算法整理 NLP 英文拼写算法&#xff0c;如果提升 100W 倍的性能&#xff1f; NLP 中文拼写检测纠正 Paper java 实现中英文拼写检查和错误纠正&#xff1f;可我只会写 CRUD 啊&#xff01; 一个提升英文单词拼…...

深入理解 NumPy 广播机制:从基础到应用

目录 什么是广播机制&#xff1f;广播机制的规则广播机制示例1. 一维数组与标量运算2. 二维数组与一维数组运算3. 维度不同的数组运算4. 广播失败的情况 广播机制的实际应用场景1. 数据归一化2. 批量计算欧氏距离 总结广播机制的核心要点&#xff1a; 在使用 NumPy 进行数组操作…...

Springboot(五十三)SpringBoot3整合redisson

前边我们有记录Springboot2/3整合redis的方式。是基于Springboot默认集成的Lettuce客户端实现的。 今天我们在项目中集成的redission是在Lettuce之上构建的redis客户端。 Redisson:一个在Jedis和Lettuce之上构建的Redis客户端。提供了一系列分布式Java对象和服务,比如:分布式…...

UAC2.0 speaker——带反馈端点的 USB speaker(16bit 单声道)

UAC2.0 speaker 系列文章 UAC2.0 speaker——单声道 USB speaker(16bit) UAC2.0 speaker——类特殊请求 UAC2.0 speaker——音量控制 UAC2.0 speaker——多采样率支持 UAC2.0 speaker——24/32bit 支持 UAC2.0 speaker——speaker 数据传输 UAC2.0 speaker——同时支持 16bi…...

P2562 [AHOI2002] Kitty猫基因编码

P1498P2562 [AHOI2002] Kitty猫基因编码 #include <iostream> using namespace std; #include <cmath> #include <vector> #include <string> string encode(string str){if(str.find("0") string::npos) return "B";if(str.fin…...

HarmonyOS(65) ArkUI FrameNode详解

Node 1、Node简介2、FrameNode2.1、创建和删除节点2.2、对FrameNode的增删改2.3 FramNode的查询功能3、demo源码4、总结5、参考资料1、Node简介 在HarmonyOS(63) ArkUI 自定义占位组件NodeContainer介绍了自定义节点复用的原理(阅读本本篇博文之前,建议先读读这个),在Node…...

40分钟学 Go 语言高并发:负载均衡与服务治理

负载均衡与服务治理 一、知识要点总览 模块核心内容技术实现难度负载策略轮询、权重、最小连接数自定义负载均衡器中服务降级服务降级、熔断降级、限流降级Hystrix模式高熔断机制熔断器状态机、失败计数、自动恢复Circuit Breaker高限流设计令牌桶、滑动窗口、计数器Rate Lim…...