当前位置:文档之家› 概率论实验报告一

概率论实验报告一

实验报告
一、问题描述
1.研究一些概率密度函数的估计的特性:
(a )编写程序,根据均匀分布产生位于单位立方体内的样本点,即-1/2≤xi ≤1/2,其中i=1,2,3.共产生10^4个点。

(b )编写程序,基于这10^4个样本点,估计原点附近的概率密度,作为边长为h 的立方体体积的函数,并且对于0<h ≤1,画出估计的函数图像。

(c )估计原点附近的概率密度,使用n 个样本点,并且选择窗使得恰好包含进n 个样本点。

对于n=1,2,……10^4,画出估计的函数图像。

(d )编写程序,产生服从球形高斯分布的概率密度并且以原点为中心的样本点。

重复(b ),(c )。

(e )定性的讨论在一致和高斯密度两种情况下,估计结果对函数形式的依赖性的异同。

2.考虑对于表格中的数据进行Parzen 窗估计和设计分类器。

窗函数为一个球形的高斯函数,如下: ()()()()()[]
22/exp /h x x x x h x x i t i i ---∝-ϕ
(a )编写程序,使用Parzen 窗估计方法对一个任意的测试样本点x 进行分类。

对分类器的训练则使用表格中的三维数据。

同时令h=1,分类样本点为(0.5,1.0,0.0)^t,(0.31,1.51,-0.50)^t ,(-0.3,0.44,-0.1)^t 。

(b )令h=0.1,重复(a )。

二、复现代码及结果
题目1:
(a)
clc;
clear;
Upb=0.5*ones(3,10000);
Lob=-0.5*ones(3,10000);
%先设置分布的上、下界、样本点的维度以及样本数量
X=unifrnd(Lob,Upb);
%用unifrnd函数生成规定数目的样本点
scatter3(X(1,:),X(2,:),X(3,:),'filled');
%以散点图形式绘制在三维坐标系下
(b)
count=zeros(100,1);
for h=1:100
%选择不同的边长h
l=h/200;
for i=1:10000
if(abs(X(1,i))<l&&abs(X(2,i))<l&&abs(X(3,i))<l)
count(h,1)=count(h,1)+1;
end
end
count(h,1)=count(h,1)/(10000*8*l^3);
end
plot(count);
xlabel('100*h');
ylabel('p(h)=k(h)/(n*h^3)');
%通过公式 p k=k
估计原点附近的概率密度,并画出 h-k h的分布图nV k
(c)
k=sort(max(abs(X),[],1));
%取各样本点绝对值最大分量,这个分量表示能刚好将它包围在内的立方体边长的一半
%并从小到大排序,排序后数组中第k个元素就是包围k个样本点所需的最小立方体边长的一半for i=1:10000
k(i)=i/(10000*8*k(i)^3);
end
plot(k);
xlabel('k');
ylabel('p(k)=k/(n*V(k))');
估计原点附近的概率密度,并画出 k-p k的分布图
%通过公式 p k=k
nV k
(d)
X=normrnd(0,1,3,10000);
scatter3(X(1,:),X(2,:),X(3,:),'filled');
%调用内置函数normrnd生成样本点并绘制散点分布图
l=zeros(10000,1);
l(:,1)=sqrt(X(1,:).^2+X(2,:).^2+X(3,:).^2);
l=sort(l);
%统计每个样本点到原点的距离并排序
count=zeros(10000,1);
%统计半径r不同的球形包围的样本点个数k r
for i=1:10000
r=max(l)*i/10000;
%选择不同的距离r
k=1;
while(r>l(k))
count(i)=count(i)+1;
k=k+1;
end
count(i)=count(i)/(10000*0.75*pi*r^3);
end
plot(count);
xlabel('10000*r/max(r),max(r)=4.7407');
ylabel('p(r)=k(r)/(nV)');
%,并画出 r-p r的分布图
count=zeros(10000,1);
for k=1:10000
count(k)=k/(10000*0.75*pi*l(k)^3);
%通过公式p r=k r
(V=0.75πr3) 估计原点附近的概率密度
nV
end
plot(count);
xlabel('k');
ylabel('p(k)=k/(nV(k))');
%画出 k-p k的分布图
(e)
对于同一概率密度分布,使用窗函数法和k-近邻法估计概率密度的结
果基本相同。

在均匀分布下的较小尺寸窗函数或k较少的k-近邻法估计的结果会出现一些波动,随着窗函数尺寸增加或k的增加估计结果很快趋于稳定。

在高斯分布下,较小尺寸窗函数或k较少的k-近邻法估计时也会出现波动,但增加窗函数尺寸过大或增加k过多也会导致对于原点附近的概率密度估计严重失真,对于概率密度较准确的估计应该只存在于开始的波动结束后的一小段区域。

题目2:
(a)
clc;
clear;
X1=[0.28,0.07,1.54,-0.44,-0.81,1.52,2.2,0.91,0.65,-0.26;1.31,0.58,2.01,1.18,0.21,3.16,2.42 ,1.94,1.93,0.82;-6.2,-0.78,-1.63,-4.32,5.73,2.77,-0.19,6.21,4.38,-0.96];
X2=[0.011,1.27,0.13,-0.21,-2.18,0.34,-1.38,-0.12,-1.44,0.26;1.03,1.28,3.12,1.23,1.39,1.96, 0.94,0.82,2.31,1.94;-0.21,0.08,0.16,-0.11,-0.19,-0.16,0.45,0.17,0.14,0.08];
X3=[1.36,1.41,1.22,2.46,0.68,2.51,0.6,0.64,0.85,0.66;2.17,1.45,0.99,2.19,0.79,3.22,2.44,0. 13,0.58,0.51;0.14,-0.38,0.69,1.31,0.87,1.35,0.92,0.97,0.99,0.88];
X=[X1;X2;X3];
%训练样本点
x1=[0.5;1;0];
x2=[0.31;1.51;-0.5];
x3=[-0.3;0.44;-0.1];
x=[x1,x2,x3];
%测试样本点
h=1;
%设定参数h
label=zeros(3,1);
%用’label’存放每个测试样本点的分类结果
l=zeros(3,1);
for i=1:3
P=zeros(3,1);
for j=1:3
for k=1:10
l=x(:,i)-X(3*j-2:3*j,k);
P(j)=P(j)+exp(-l'*l/(2*h^2));
%对于测试样本点,计算它在每一类中的φ值
end
end
[a,b]=max(P); label(i)=b;
%对于测试样本点,比较得出φ值最大的一类ω
i ,后验概率p(ω
i
|x)也是最大的
end
(b)
修改h的值,其他与(a)相同
h=0.1;
四、实验总结
通过这两个编程实践,使我更深刻的理解了理论知识,也体会到了将非参数估计的理论应用于实际分类的过程,同时加强编程能力也很重要。

相关主题