赞
踩
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§); % 二维核密度估计图
fp = getPoints§; % 核密度估计值
效果:
evaluate(kde,x);%根据kde,估计x的密度
[H,X,Y]=hist(kde);%H:对应点的密度,X:第一个属性的点,Y第二个属性的点
mesh(hist(kde));%画密度图,默认取第一个和第二个属性
plot(kde);%如果是一维点,则画曲线图
BW=getBW(kde);%返回带宽
point=getPoints§;%返回p中计算密度的点
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。