matlab多维核密度估计工具箱的使用

关于可密度估计的介绍点击打开链接

KDE类是用于k维核密度估计的通用matlab类。 它是用matlab“.m”文件和MEX / C ++代码混合编写的。因此,要使用它,你需要能够为Matlab编译C ++代码。 请注意,Windows的默认编译器不支持C ++,因此您需要在Linux下使用GCC,或者在Windows下使用GCC或Visual C ++。

KDE下载网址:http://www.ics.uci.edu/~ihler/code/kde.html

该网址还有kde安装说明

kde安装:

1:软件包解压缩,添加到matlab路径下,

2:matlab命令窗口输入:@kde\mex\makemex.m,然后就可以调用kde函数创建核密度估计类对象,调用类对象的各种“方法”实现核密度估计、画图等。

这里举一个例子:

 p = kde(rand(2,1000), [.15;.1], [], 'E'); % 创建核密度估计类对象,列向量,第二个输入参数是每个维度的带宽,一定是列向量
%p = kde( rand(2,1000), 'rot' ); % Gaussian kernel, 2D, BW chosen by "rule of thumb" (below),带宽也可以按一定规则选择
核函数带宽的自动生成规则有:

p = ksize(p, 'lcv'); % 1D Likelihood-based search for BW1D基于似然的搜索BW

p = ksize(p, 'rot'); % "Rule of Thumb"; Silverman '86 / Scott '92“拇指规则”即”经验法则; Silverman '86 / Scott '92

p = ksize(p, 'hall'); % Plug-in type estimator (estimates each dim. separately)  插件类型估计器(单独估计每个dim)


 mesh(hist(p)); % 二维核密度估计图
 fp = getPoints(p); % 核密度估计值
效果:



evaluate(kde,x);%根据kde,估计x的密度

[H,X,Y]=hist(kde);%H:对应点的密度,X:第一个属性的点,Y第二个属性的点

mesh(hist(kde));%画密度图,默认取第一个和第二个属性

plot(kde);%如果是一维点,则画曲线图

BW=getBW(kde);%返回带宽

point=getPoints(p);%返回p中计算密度的点

博主设置当前文章不允许评论。

没有更多推荐了,返回首页