liyuefeilong的专栏

最近开始了模式识别的学习,在此之前需要对模式和模式类的概念有一个了解,这里使用MATLAB实现一些模式类的生成。在此之前,引用百科上对于模式识别和模式类的定义,也算加深以下了解:

模式识别(Pattern Recognition):人类在日常生活的每个环节,从事着模式识别的活动。可以说每个有正常思维的人,在他没有入睡时都在进行模式识别的活动。坐公共汽车找汽车站,骑车判别可行进道路,对观察到的现象作出判断,对听到的声音作出反应,判断东西的好与坏以及水果的成熟与否等等都是人们判断是非,判别事物的过程。但是对模式识别这个词就显得陌生而难以理解了。确切地说,模式识别在这里是针对让计算机来判断事物而提出的,如检测病理切片中是否有癌细胞,文字识别,话语识别,图像中物体识别等等。该学科研究的内容是使机器能做以前只能由人类才能做的事,具备人所具有的、对各种事物与现象进行分析、描述与判断的部分能力。模式类与模式,或者模式与样本在集合论中是子集与元素之间的关系。当用一定的度量来衡量两个样本,而找不出它们之间的差别时,它们在这种度量条件下属于同一个等价类。这就是说它们属于同一子集,是一个模式,或一个模式类。而不同的模式类之间应该是可以区分的,它们之间应有明确的界线。但是对实际样本来说,有时又往往不能对它们进行确切的划分,即在所使用的度量关系中,分属不同的类别的样本却表现出相同的属性,因而无法确凿无误地对它们进行区分。例如在癌症初期,癌细胞与正常细胞的界线是含糊的,除非医术有了进一步发展,能找到更准确有效的分类方法。

下面是练习:

在Matlab 中提供了很多产生随机数和随机向量的函数,以及计算随机函数的概率密度值的函数。下面是几个较常用的函数: rand() 生成均匀分布随机数 randn() 生成高斯分布随机数 mvnrnd() 生成多元高斯分布的随机向量矩阵 mvnpdf() 计算多元高斯分布的概率密度函数值

在阅读了上述函数的MATLAB在线帮助后,完成下面的程序实现,分为三个练习:

练习一:在一维区间[10,70]中,生成1000个均匀分布的随机数,然后统计并绘制这些数的直方图;在二维区间[1,5][20,30]中,生成5000 个均匀分布的二维随机点,并绘制出它们的二维散点图;在三维区间[10,50][30,60][10,15]中,生成10000 个均匀分布的三维随机点量,并绘制出它们的三维散点图。

= 1:1000 a(i) = rand() * 60 + 10;endb = hist(a, 10:70);figure,bar(10:70, b, ‘g’);grid ontitle(‘rand()产生1000个[10,70]的随机数直方图’);for k = 1:5000TwoDimension(k,1) = rand() * 4 + 1;TwoDimension(k,2) = rand() * 10 + 20;endfigure,plot(TwoDimension(:,1), TwoDimension(:,2), ‘*’);xlim([0 6]);ylim([10 40]);grid ontitle(‘在[1,5]*[20,30]中产生5000个均匀分布的二维随机点’);for j = 1:10000ThreeDimension(j,1) = rand() * 40 + 10;ThreeDimension(j,2) = rand() * 30 + 30;ThreeDimension(j,3) = rand() * 5 + 10;endfigure,scatter3(ThreeDimension(:,1),ThreeDimension(:,2),ThreeDimension(:,3),’r’);xlim([0 60]);ylim([20 70]);zlim([0 20]);grid on;title(‘产生10000个均匀分布的三维随机点’);

输出一维、二维和三维随机点生成效果(边界限定参照要求):

下面是在练习一基础上的扩展:利用均匀分布的随机数函数,编写可以生成具有三角分布、以及梯形分布的随机数的函数。用它们生成一定数量的样本数据,并绘制数据分布图。

% 产生5000个随机点,然后根据公式剔除三角形外的点n = 5000;x = rand(n,2) * 2;% 变量名 = @(输入参数列表)运算表达式fx = @(x)(x < 1).*(2*x)+(x >= 1).*(4-2*x);g=0:0.2:2;y=fx(g);% 绘制边界直线,设定直线粗细figure,plot(g,y,’r-‘,’linewidth’,3);hold ont = 1:nif x(t,2) > fx(x(t,1))x(t,:) = [0, 0];t = n:-1:1if x(t,:) == [0, 0]x(t,:) = [];endendplot(x(:,1),x(:,2),’o’);title(‘若干个三角分布的随机点’);% 绘制随机点分布直方图[f, y] = hist(x(:,1), g);figure,bar(y,f,1); title(‘随机点分布直方图’);% 产生5000个随机点,然后根据公式剔除梯形外的点n = 5000;x = rand(n,2) * 3;% 变量名 = @(输入参数列表)运算表达式fx = @(x)(x <= 1).*(3*x)+( x > 1 & x <= 2).*3 + (x > 2).*(9-3*x);g=0:0.1:3;y=fx(g);% 绘制边界直线,设定直线粗细figure,plot(g,y,’r-‘,’linewidth’,3); hold ont = 1:nif x(t,2) > fx(x(t,1))x(t,:) = [0, 0];t = n:-1:1if x(t,:) == [0, 0]x(t,:) = [];endendplot(x(:,1),x(:,2),’o’);title(‘若干个梯形分布的随机点’);% 绘制随机点分布直方图[f, y] = hist(x(:,1), g);figure,bar(y,f,1); title(‘随机点分布直方图’);

输出三角分布和梯形分布的随机点结果、直方图:

一个积极奋进的目标,一种矢志不渝的追求。

liyuefeilong的专栏

相关文章:

你感兴趣的文章:

标签云: