核密度估计 Kernel Density Estimation (KDE) MATLAB
对于已经得到的样本集,核密度估计是一种可以求得样本的分布的概率密度函数的方法:
通过选取核函数和合适的带宽,可以得到样本的distribution probability,在这里核函数选取标准正态分布函数,bandwidth通过AMISE规则选取
具体原理及定义:传送门 https://en.wikipedia.org/wiki/Density_estimation
MATLAB 代码实现如下:
% Kernel Density Estimation
% 只能处理正半轴密度
function [t, y_true, tt, y_KDE] = KernelDensityEstimation(x)
% clear % x = px_last;
% x = px_last_tu;
%%
%参数初始化
Max = round(max(x)); %数据中最大值
Min = round(min(x)); %数据中最小值
Ntotal = length(x); %数据个数
tt = : 0.1 : Max; %精确x轴
t = : Max; %粗略x轴 y_KDE = zeros( * Max+, ); %核密度估计值
sum1 = ; %求和的中间变量
%%
%计算带宽h
R = /(*sqrt(pi));
m2 = ;
h = ;
% h = (R)^(/) / (m2^(/) * R^(/) * Ntotal^(/)); %%
%计算核密度估计
for i = : 0.1 : Max
for j = : Ntotal
sum1 = sum1 + normpdf(i-x(j));
end
y_KDE(round(i*+)) = sum1 / (h * Ntotal);
sum1 = ;
end sum2 = sum(y_KDE)*0.1; %归一化KDE密度
for i = : 0.1 : Max
y_KDE(round(i*+)) = y_KDE(round(i*+))/sum2;
end %%
%计算真实密度的分布
y_true = zeros(Max+,);
for i = : Max
for j = : Ntotal
if (x(j) < i+)&&(x(j) >= i)
y_true(i+) = y_true(i+) + ;
end
end
y_true(i+) = y_true(i+) / Ntotal;
end %%
%绘图 % figure() %真实密度的分布图象
% bar(t, y_true);
% axis([Min Max+ max(y_true)*1.1]);
%
% figure() %核密度估计的密度分布图象
% plot(tt, y_KDE);
% axis([Min Max max(y_true)*1.1]);
给定测试数据:
data = [1,2,3,4,5,2,1,2,4,2,1,4,7,4,1,2,4,9,8,7,10,1,2,3,1,0,0,3,6,7,8,9,4]
样本的条形统计图和KDE密度分布图分别如下,可以看到KDE可以较好的还原样本的分布情况:

真实概率分布图

KDE密度分布图
核密度估计 Kernel Density Estimation (KDE) MATLAB的更多相关文章
- 非参数估计:核密度估计KDE
http://blog.csdn.net/pipisorry/article/details/53635895 核密度估计Kernel Density Estimation(KDE)概述 密度估计的问 ...
- kdeplot(核密度估计图) & distplot
Seaborn是基于matplotlib的Python可视化库. 它提供了一个高级界面来绘制有吸引力的统计图形.Seaborn其实是在matplotlib的基础上进行了更高级的API封装,从而使得作图 ...
- 【转】用深度学习做crowd density estimation
本博文主要是CVPR2016的<Single-Image Crowd Counting via Multi-Column Convolutional Neural Network>这篇文章 ...
- R语言与非参数统计(核密度估计)
R语言与非参数统计(核密度估计) 核密度估计是在概率论中用来估计未知的密度函数,属于非参数检验方法之一,由Rosenblatt (1955)和Emanuel Parzen(1962)提出,又名Parz ...
- More 3D Graphics (rgl) for Classification with Local Logistic Regression and Kernel Density Estimates (from The Elements of Statistical Learning)(转)
This post builds on a previous post, but can be read and understood independently. As part of my cou ...
- 泡泡一分钟:Geometric and Physical Constraints for Drone-Based Head Plane Crowd Density Estimation
张宁 Geometric and Physical Constraints for Drone-Based Head Plane Crowd Density Estimation 基于无人机的向下平面 ...
- <轻量算法>根据核密度估计检测波峰算法 ---基于有限状态自动机和递归实现
原创博客,转载请联系博主! 希望我思考问题的思路,也可以给大家一些启发或者反思! 问题背景: 现在我们的手上有一组没有明确规律,但是分布有明显聚簇现象的样本点,如下图所示: 图中数据集是显然是个3维的 ...
- 非参数估计——核密度估计(Parzen窗)
核密度估计,或Parzen窗,是非参数估计概率密度的一种.比如机器学习中还有K近邻法也是非参估计的一种,不过K近邻通常是用来判别样本类别的,就是把样本空间每个点划分为与其最接近的K个训练抽样中,占比最 ...
- Windows内核开发-6-内核机制 Kernel Mechanisms
Windows内核开发-6-内核机制 Kernel Mechanisms 一部分Windows的内核机制对于驱动开发很有帮助,还有一部分对于内核理解和调试也很有帮助. Interrupt Reques ...
随机推荐
- Java实例---计算器实例
1.计算器上的键的显示名字 1.0 继承JFrame类 public class Calculate extends JFrame { } 1.1定义常量 /** 计算器上的键的显示名字 */ pub ...
- Linux中如何安装loadgenerator
/* 1. 到官方网站到HP官网下载Load Generator 安装文件 _Load_Generator_11.00_T7330-15010.iso或者其它网站下载loadrunner-11-loa ...
- Exchange 2016 CU6 安装后,发生错误 出现意外错误,无法处理您的请求
公司的Exchange2016环境准备上线了,今天owa打不开了.出现如下图的错误,更多详细信息没有截图,但最关键的一句记下来了. X-OWA-Error Microsoft.Exchange.Dia ...
- December 21st 2016 Week 52nd Wednesday
Keep conscience clear, then never fear. 问心无愧,永不畏惧. I find it is very difficult for me to keep consci ...
- 【bbs】index、post
列表 奇数行和偶数行设置不同的背景 http://blog.csdn.net/facecrazy/article/details/51252850 实现ul li中的内容上下左右居中,不用设置li宽度 ...
- 9、RabbitMQ-集成Spring
spring封装RabbitMQ看官网:https://spring.io/projects/spring-amqp#learn 开发时根据官网的介绍进行开发,具体的说明都有具体的声明 1.导入依赖 ...
- python执行linux和window的命令
linux: python执行shell脚本常用的方法 import os val=os.system("shell语句") >>> val=os.system ...
- 使用iptables和tc对端口限速
首先,我们来看一下tc,TC(Traffic Control)命令,是linux自带的告警流控命令.Linux操作系统中的流量控制器TC(Traffic Control)用于Linux内核的流量控制, ...
- 通讯协议(三)Protocol Buffers协议
Protocol Buffers是Google开发一种数据描述语言,能够将结构化数据序列化,可用于数据存储.通信协议等方面. 不了解Protocol Buffers的同学可以把它理解为更快.更简单.更 ...
- 2018 HNUCM ACM集训队选拔第一场
1.小c的倍数问题 http://acm.hdu.edu.cn/showproblem.php?pid=6108 分析: 比赛的时候真的是各种想,结果发现自己是想多了...数论基础差得一批 求有多少个 ...