Parzen 窗估计法

       本篇文章是博主在人工智能等领域学习时,用于个人学习、研究或者欣赏使用,并基于博主对人工智能等领域的一些理解而记录的学习摘录和笔记,若有不当和侵权之处,指出后将会立即改正,还望谅解。文章分类在AI学习笔记

      AI学习笔记(15)---《Parzen 窗估计法》

Parzen 窗估计法

目录

1.前言

2.相关知识

2.1无参数估计方法

2.2窗核函数

2.3基本估计式 

3.Parzen 窗估计法原理

3.1基本思想

3.2Parzen 窗估计法

4.编程实现

4.1无参数估计MATLAB代码

4.2 Parzen 窗估计MATLAB代码

4.3 测试输入

4.4 预期输出


1.前言

      理解并掌握无参数估计方法的基本思想以及原理,并使用 matlab 实现一个简单的窗核函数。

      理解并掌握parzen窗估计方法的基本思想以及原理,并使用 matlab 进行一次简单的估计试验。


2.相关知识

2.1无参数估计方法

        相比于有参数估计方法,无参数估计方法不需要假设概率密度函数,能处理任意的概率密度分布。

        无参数估计的目的是从样本集 K{X1​,X2​,...,Xn​} 估计样本空间中任意一点的概率密度 p(x),其基本方法是使用某种核函数 φ(X) 表示某一样本对估计密度函数的贡献,并所有样本核函数的叠加视作概率密度函数。这种方式直观的意义是,靠近样本点位置处的概率密度高,样本点密集出现的地方概率密度高。

2.2窗核函数

        通过前面对无参数估计方法的介绍可以看到,有了样本集和窗核函数我们就能对样本空间的概率密度函数进行无参数的估计。因此,窗核函数的选择是无参数估计方法非常重要的一个部分,这里介绍一些具有代表性的窗核函数—— parzen 窗。

        在 n 维特征空间中,取区域 Rn 中的一个 n 维的超立方体,hN​ 是其棱长,其体积为 VN​=hN​n

定义窗核函数如下:

        这样,φ(u)就以函数值 1界定了一个以原点为中心、棱长为 1n维超立方体。

        parzen 窗估计法可以使用这个方窗来进行无参估计,此外,还可以选择其他的窗核函数,它们需要满足以下两个条件:

2.3基本估计式 

        对于属于同一类 ωi​ 的样本组成的空间,其概率密度函数 p(x∣ωi​)(简写为 p(x))是 ωi​类的总体概率密度。

        随机向量 x 落在区域 R 中的概率为 P=∫R​p(x)dx,设 N 个样本 x1​,x2​,...,xn​ 是上述概率密度为 p(x)的总体中独立抽取的, N 个样本中有 k 个样本落入区域 R 的概率 Pk​ 服从离散随机变量的二项分布

        显然以上是 p(x) 的基本估计式,与 N,V,k 有关,并存在一定的误差。理论上,要使得 p^​(x)→p(x),则需要 V→0,k→∞,N→∞


3.Parzen 窗估计法原理

3.1基本思想

以上概率密度的窗核函数的估计法基本思想可以总结如下:

小区域的概率密度可以近似为:

3.2Parzen 窗估计法

        Parzen 窗估计法使用的是上一关介绍的窗核函数,例如均匀窗核

         并且,为了使得区域序列的体积 Vn​N 的某个函数随 N 的增大 不断地缩小。可令窗的体积

        在这时对应的 kN​NkN​​ 都加以限制从而使得 p^​(x) 收敛于 p(x)


4.编程实现

4.1无参数估计MATLAB代码

function [result] = step1_mission(samples)

    [m, n] = size(samples); % 获取样本矩阵的维度信息(行数和列数)
    result = ones(1, m); % 初始化结果数组,初始值为1

    for i = 1:m % 遍历每一行
        for j = 1:n % 遍历每一列
            if abs(samples(i, j)) > 0.5 % 判断当前元素的绝对值是否大于0.5
                result(i) = 0; % 如果是,则将结果数组中对应的值设置为0
                break; % 立即退出当前行的循环,进入下一行的判断
            end
        end
    end

end

4.2 Parzen 窗估计MATLAB代码

function [pf] = step2_mission(samples, h, f)

    [nf, ~] = size(f); % 获取f矩阵的行数
    [ns, ~] = size(samples); % 获取样本矩阵的行数

    pf = zeros(1, nf); % 初始化pf数组
    V = h / sqrt(ns); % 计算V值
    for i = 1:nf
        p = 0; % 初始化概率累加器
        for j = 1:ns
            p = p + exp(-norm((samples(j, :) - f(i, :)) / V)^2 / 2) / sqrt(2 * pi); % 计算概率密度并累加
        end
        pf(i) = p / (ns * V); % 计算f(i,:)的概率密度函数值
    end

end

4.3 测试输入

MATLAB终端输入下面指令

测试step1_mission(samples)

samples = [-7.82 -4.58 -3.97; -6.68 3.16 2.71; 4.36 -2.91 2.09; 6.72 0.88 2.80; -8.64 3.06 3.50; -6.87 0.57 -5.45; 4.47 -2.62 5.76; 6.73 -2.01 4.18; -7.71 2.34 -6.33; -6.91 -0.49 -5.68; 6.18 2.81 5.82; 6.72 -0.93 -4.04; -6.25 -0.26 0.56; -6.94 -1.22 1.13; 8.09 0.20 2.25; 6.81 0.17 -4.15; -5.19 4.24 4.04; -6.38 -1.74 1.43; 4.08 1.30 5.33; 6.27 0.93 -2.78];

s = samples(1:10,:)/10;
disp('task1');
r = step1_mission(s)

s = samples(10:20,:)/10;
disp('task2');
r = step1_mission(s)

s = samples(1:20,1)/10;
disp('task3');
r = step1_mission(s)

s = samples(1:20,2:3)/10;
disp('task4');
r = step1_mission(s)

 测试step2_mission(samples, h, f)

samples  = normrnd(0,1,1,10000)';
f = -5:0.01:5;
f = f';

p1 = step2_mission(samples(1:10,:),0.25,f);
p2 = step2_mission(samples(1:10,:),1,f);
p3 = step2_mission(samples(1:10,:),4,f);
subplot(331);
plot(f,p1);
subplot(332);
plot(f,p2);
subplot(333);
plot(f,p3);

hold on

p1 = step2_mission(samples(1:100,:),0.25,f);
p2 = step2_mission(samples(1:100,:),1,f);
p3 = step2_mission(samples(1:100,:),4,f);
subplot(334);
plot(f,p1);
subplot(335);
plot(f,p2);
subplot(336);
plot(f,p3);

hold on

p1 = step2_mission(samples(1:1000,:),0.25,f);
p2 = step2_mission(samples(1:1000,:),1,f);
p3 = step2_mission(samples(1:1000,:),4,f);
subplot(337);
plot(f,p1);
subplot(338);
plot(f,p2);
subplot(339);
plot(f,p3);

saveas(1,'./result/myfig.png');

disp("Runing Finished");

4.4 预期输出


     文章若有不当和不正确之处,还望理解与指出。由于部分文字、图片等来源于互联网,无法核实真实出处,如涉及相关争议,请联系博主删除。如有错误、疑问和侵权,欢迎评论留言联系作者,或者私信联系作者。

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

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

相关文章

一文弄懂逻辑回归算法

1. 引言 今天我们将深入探讨另一种基本的机器学习算法:逻辑回归。在前两篇文章中,我们使用线性回归和梯度下降法帮助我们的朋友马克确定了他 2400 平方英尺房子的理想售价。 最近马克再次向我们求助。他住在一个高档社区,他认为低于一定面积…

docker pull 镜像的时候遇到Pulling fs layer问题

最近遇到一个很奇怪的问题,docker pull 镜像的时候,总是出现Pulling fs layer问题,导致镜像拉取不成功,以前是安装好docker,正常拉取镜像都是没什么问题的,在这里记录一下这个问题的解决方法,当然,可能并不通用。 1、进入阿里云容器服务 地址:https://cr.console.aliy…

宝藏网站推荐,这些网站不可不知

在如今网络信息爆炸的时代,想要在众多网站中查找筛选一些好用的宝藏网站不是一件容易的事情。下面小编就来和大家分享几个值得推荐的宝藏网站,可以极大的提高大家上网效率,涵盖办公,学习,生活各个方面。 一、b站 b站…

IDEA中导入Maven项目

相关内容: Maven的安装与配置 在IDEA中配置Maven环境 在IDEA中创建Maven项目 IDEA中Maven配置依赖和排除依赖 IDEA中导入Maven项目 方式1:使用Maven面板,快速导入项目 打开IDEA,选择右侧Maven面板,点击 号&…

基于DSMM数据安全能力建设方案的落地性评估指标

写在前面: 随着信息技术的迅猛发展,数据已成为企业最宝贵的资产之一。然而,数据安全问题也随之而来,如何确保数据的安全性、完整性和可用性,已成为企业面临的重要挑战。DSMM(数据安全能力成熟度模型&#x…

路径规划 | 基于蜣螂优化算法的栅格地图机器人路径规划(Matlab)

目录 效果一览基本介绍程序设计参考文献 效果一览 基本介绍 路径规划 | 基于蜣螂优化算法的栅格地图机器人路径规划(Matlab) 1.利用蜣螂算法DBO优化栅格地图机器人路径规划,效果如图所示,包括迭代曲线图、栅格地图等等&#xff5e…

知识不成体系?这篇Mysql数据库将成为你的解忧杂货店!(Mysql用户管理)

欢迎来到一夜看尽长安花 博客,您的点赞和收藏是我持续发文的动力 对于文章中出现的任何错误请大家批评指出,一定及时修改。有任何想要讨论的问题可联系我:3329759426qq.com 。发布文章的风格因专栏而异,均自成体系,不足…

【鸿蒙学习笔记】尺寸设置

官方文档:尺寸设置 目录标题 width:设置组件自身的宽度,缺省时自适应height:设置组件自身的高度,缺省时自适应size:设置高宽尺寸。margin:设置组件的外边距padding:设置组件的内边距…

LeetCode题练习与总结:环形链表Ⅱ--142

一、题目描述 给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测…

【鸿蒙学习笔记】位置设置

官方文档:位置设置 目录标题 align:子元素的对齐方式direction:官方文档没懂,看图理解吧 align:子元素的对齐方式 Stack() {Text(TopStart)}.width(90%).height(50).backgroundColor(0xFFE4C4).align(Alignment.TopS…

数据分析的线上云端数据库搭建及Excel和Tableau连接

数据分析的线上云端数据库搭建及Excel和Tableau连接 SQL基础知识 线上SQL训练: SQlZOO: https://www.sqlzoo.net/wiki/SQL_Tutorial 牛客网SQL真题:https://www.nowcoder.com/ta/sql select,from,where, order by, limit, group by, having, substr(),…

windows 本地ES 7.11.0 版本集群搭建

1.先下载JDK ,建议下载JDK11. 2.下载ES Windows安装包 7.11.0下载 3.下载完成后,在本地解压三份,分别取名 node1,node2,node3 4.若启动一直报端口占用,这修改 每个文件夹下bin/elasticsearch.bat文件,没有则跳过 在…

MySQL高级-MVCC- readview介绍

文章目录 1、介绍2、ReadView中包含了四个核心字段:3、版本链数据的访问规则:4、不同的隔离级别,生成ReadView的时机不同: 1、介绍 ReadView(读视图)是 快照读 SQL执行时MVCC提取数据的依据,记录…

基于bootstrap的12种登录注册页面模板

基于bootstrap的12种登录注册页面模板,分三种类型,默认简单的登录和注册,带背景图片的登录和注册,支持弹窗的登录和注册页面html下载。 微信扫码下载

[Redis]主从模式

启动主从复制 由于我们只有一台机器,所以我们只能在机器上开多个redis程序来演示不同的机器 因为一个端口号只能被一个进程绑定,所以我们需要修改配置,绑定不同的端口号,并且还要修改工作目录(数据持久化的位置&#…

第二天:ALOAM前端讲解【第1部分】

第二天:ALOAM前端讲解 目标: 熟悉 ALOAM基本原理与代码框架,快速熟悉代码ALOAM效果 内容: LOAM论文论文精讲整体代码框架介绍前端特征提取,点到线、点到面ICP代码讲解ALOAM精讲 一、ALOAM整体架构 LOAM主要包含两个模块,一个是Lidar Odometry,即使用激光雷达做里程计计…

Qt项目天气预报(8) - 绘制温度曲线 + 回车搜索(最终篇)

全部内容在专栏: Qt项目 天气预报_mx_jun的博客-CSDN博客 目录 绘制温度曲线 事件过滤器在子控件上绘图 子控件下载事件过滤器 事件过滤器进行绘图 - eventFilter 画初步高温曲线 画初步低温曲线 效果演示 画低温曲线 画高温曲线 效果演示 按下回车搜索: …

ETAS工具导入DEXT生成Dcm及Dem模块(二)

文章目录 前言DcmDcmDsdDcmDslDcmDspDcmPageBufferCfgDem报错解决总结前言 之前一篇文章介绍了导入DEXT之后在cfggen之前的更改,cfggen完成之后,就可以生成dcm,dem的配置了,但生成完配置后,如果直接生成BSW代码,会报错。本文介绍在cfggen完成后,生成BSW代码前的修改 Dc…

Go环境安装---附带每一步截图

Windows环境 Go安装包下载 下载后直接安装步骤按照即可。 测试 winR 输入cmd 在命令行输出go version可以看到自己的版本。 go env 查看环境变量 在桌面创建hello.go的文件 编写代码。注意,编码必修是UTF-8 在命令行输入路径刚刚代码所在的路径&#x…

【从零开始学架构 架构基础】三 架构设计的复杂度来源:高可用复杂度来源

架构设计的复杂度来源其实就是架构设计要解决的问题,主要有如下几个:高性能、高可用、可扩展、低成本、安全、规模。复杂度的关键,就是新旧技术之间不是完全的替代关系,有交叉,有各自的特点,所以才需要具体…