欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索

模式識(shí)別算法matlab程序 壓縮 剪輯近鄰法 parzen窗 c均值算法 bayes判別

查看數(shù): 4289 | 評(píng)論數(shù): 3 | 收藏 0
關(guān)燈 | 提示:支持鍵盤(pán)翻頁(yè)<-左 右->
    組圖打開(kāi)中,請(qǐng)稍候......
發(fā)布時(shí)間: 2017-4-22 21:12

正文摘要:

關(guān)于模式識(shí)別中的一些算法的matlab程序 bayes判別\ c均值算法\ parzen窗\ 剪輯近鄰法\ 壓縮近鄰法\ 下面是剪輯近鄰法源碼: %% 剪輯近鄰法 %% 初始化操作 clc close all clear all n=100; N= ...

回復(fù)

ID:1 發(fā)表于 2017-4-22 22:28
壓縮近鄰法:
  1. %% 剪輯近鄰法
  2. %% 初始化操作
  3. clc
  4. close all
  5. clear all
  6. n=100;
  7. N=3*n;
  8. %% 訓(xùn)練樣本1 二維聯(lián)合正態(tài)分布的期望和方差,并隨機(jī)產(chǎn)生 N 個(gè)樣本
  9. mu1=[2 3];
  10. SIGMA1=[20 1.5; 1.5 30];
  11. tra_sam1 = mvnrnd(mu1,SIGMA1,N);
  12. %% 訓(xùn)練樣本2 二維聯(lián)合正態(tài)分布的期望和方差,并隨機(jī)產(chǎn)生 N 個(gè)樣本
  13. mu2=[10,11];
  14. SIGMA2=[20 1.5;1.5 30];
  15. tra_sam2 = mvnrnd(mu2,SIGMA2,N);
  16. %% 保留原始樣本
  17. tra_sam_org1=tra_sam1;
  18. tra_sam_org2=tra_sam2;
  19. %% 對(duì)樣本進(jìn)行分類(lèi),分為3類(lèi)
  20. num0=0; %% 用于存放上一次剪輯后樣本個(gè)數(shù)
  21. edit_time=0; %% 記錄剪輯次數(shù)
  22. m=0;    %% 記錄沒(méi)有可被剪輯樣本的連續(xù)次數(shù)
  23. N1=N;N2=N; %%分別記錄剪輯后樣本類(lèi)1,類(lèi)2的樣本個(gè)數(shù)
  24. while m<5
  25.     m11=1;m21=1;m31=1;
  26.     m12=1;m22=1;m32=1;
  27.     %% 將樣本分成三類(lèi)
  28.     for i=1:N1
  29.         t=rand;
  30.         if t<=0.33
  31.             cell_sam11(m11,:)=tra_sam1(i,:);
  32.             m11=m11+1;
  33.         elseif t<=0.66
  34.             cell_sam21(m21,:)=tra_sam1(i,:);
  35.             m21=m21+1;
  36.         else
  37.             cell_sam31(m31,:)=tra_sam1(i,:);
  38.             m31=m31+1;
  39.         end
  40.     end
  41.     for i=1:N2
  42.         s=rand;
  43.         if s<=0.33
  44.             cell_sam12(m12,:)=tra_sam2(i,:);
  45.             m12=m12+1;
  46.         elseif s<=0.66
  47.             cell_sam22(m22,:)=tra_sam2(i,:);
  48.             m22=m22+1;
  49.         else
  50.             cell_sam32(m32,:)=tra_sam2(i,:);
  51.             m32=m32+1;
  52.         end
  53.     end

  54.     %% 對(duì)子集進(jìn)行剪輯,去掉錯(cuò)分的樣本
  55.     %% 利用子集2,對(duì)子集1中的cell_sam11進(jìn)行裁剪
  56.     cell_sam11=cutting(cell_sam11,cell_sam21,cell_sam22);
  57.     %% 利用子集2,對(duì)子集1中的cell_sam12進(jìn)行裁剪
  58.     cell_sam12=cutting(cell_sam12,cell_sam22,cell_sam21);

  59.     %% 利用子集3,對(duì)子集2中的cell_sam21進(jìn)行裁剪
  60.     cell_sam21=cutting(cell_sam21,cell_sam31,cell_sam32);
  61.     %% 利用子集3,對(duì)子集2中的cell_sam22進(jìn)行裁剪
  62.     cell_sam22=cutting(cell_sam22,cell_sam32,cell_sam31);

  63.     %% 利用子集1,對(duì)子集3中的cell_sam31進(jìn)行裁剪
  64.     cell_sam31=cutting(cell_sam31,cell_sam11,cell_sam12);
  65.     %% 利用子集1,對(duì)子集3中的cell_sam32進(jìn)行裁剪
  66.     cell_sam32=cutting(cell_sam32,cell_sam12,cell_sam11);
  67.    
  68.     %% 剪輯后對(duì)樣本進(jìn)行整理,合并,組成新的訓(xùn)練樣本
  69.     tra_sam1=[cell_sam11;cell_sam21;cell_sam31];
  70.     tra_sam2=[cell_sam12;cell_sam22;cell_sam32];
  71.     cell_sam11=zeros(1,2);cell_sam21=zeros(1,2);cell_sam31=zeros(1,2);
  72.     cell_sam12=zeros(1,2);cell_sam22=zeros(1,2);cell_sam32=zeros(1,2);
  73.     [a1,b1]=size(tra_sam1);  
  74.     [c1,d1]=size(tra_sam2);
  75.     num1=a1+c1;  %% 計(jì)算剩余總樣本個(gè)數(shù)
  76.     N1=a1;
  77.     N2=c1;
  78.     if (num1-num0==0)
  79.         m=m+1;
  80.     else
  81.         m=0;
  82.     end
  83.     num0=num1;
  84.     edit_time=edit_time+1;
  85.       
  86. end
  87. %% -------------------%%
  88. %% 對(duì)剪輯好的樣本進(jìn)行壓縮
  89. grabbag1=tra_sam1;
  90. grabbag2=tra_sam2;
  91. grabbag=[grabbag1;grabbag2];
  92. %% 計(jì)算存儲(chǔ)器grabbag中類(lèi)1和類(lèi)2 的個(gè)數(shù)
  93. [gra_r1,column3]=size(grabbag1);
  94. [gra_r2,column4]=size(grabbag2);
  95. %% 隨機(jī)選取一個(gè)樣本放入store中,
  96. %% 可以等價(jià)為隨機(jī)選取類(lèi)1和類(lèi)2,兩個(gè)樣本放入store中
  97. store1=grabbag1(1,:);
  98. grabbag1=grabbag1(2:gra_r1,:);
  99. gra_r1=gra_r1-1;
  100. store2=grabbag2(1,:);
  101. grabbag2=grabbag2(2:gra_r2,:);
  102. gra_r2=gra_r2-1;
  103. gra_r=gra_r1+gra_r2;

  104. sto_num1=2;%% store 的下標(biāo)
  105. sto_num2=2;
  106. gra_tem=0;
  107. m=0;
  108. while(m<2*gra_r)
  109.     t=rand;
  110.     if t<=0.5 %% 如果屬于類(lèi)1
  111.         q=randperm(gra_r1);
  112.         for i=1:sto_num1-1
  113.             distance1(i)=norm(grabbag1(q(1),:)-store1(i,:));
  114.         end
  115.         for i=1:sto_num2-1
  116.             distance2(i)=norm(grabbag1(q(1),:)-store2(i,:));
  117.         end
  118.         dist_min1=min(distance1);
  119.         dist_min2=min(distance2);
  120.         if dist_min1>dist_min2 %% 如果判斷錯(cuò)誤,放入store
  121.             store1(sto_num1,:)=grabbag1(q(1),:);
  122.             grabbag1=[grabbag1(1:q(1)-1,:);grabbag1(q(1)+1:gra_r1,:)];
  123.             gra_r1=gra_r1-1;
  124.             sto_num1=sto_num1+1;
  125.         end
  126.     else  %% 如果屬于類(lèi)2
  127.         q=randperm(gra_r2);
  128.         for i=1:sto_num1-1
  129.             distance1(i)=norm(grabbag2(q(1),:)-store1(i,:));
  130.         end
  131.         for i=1:sto_num2-1
  132.             distance2(i)=norm(grabbag2(q(1),:)-store2(i,:));
  133.         end
  134.         dist_min1=min(distance1);
  135.         dist_min2=min(distance2);
  136.         if dist_min1<dist_min2 %% 如果判斷錯(cuò)誤,放入store
  137.             store2(sto_num2,:)=grabbag2(q(1),:);
  138.             grabbag2=[grabbag2(1:q(1)-1,:);grabbag2(q(1)+1:gra_r2,:)];
  139.             gra_r2=gra_r2-1;
  140.             sto_num2=sto_num2+1;
  141.         end   
  142.     end
  143.     gra_r=gra_r1+gra_r2;
  144.     if gra_r==gra_tem
  145.         m=m+1;
  146.     else
  147.         m=0;
  148.     end
  149.     gra_tem=gra_r;
  150. end
  151. edit_time
  152. sto_num1=sto_num1-1
  153. sto_num2=sto_num2-1
  154. %% 繪圖
  155. %% 繪制原始樣本點(diǎn)
  156. figure('NumberTitle', 'off', 'Name', '原樣本點(diǎn)');
  157. scatter(tra_sam_org1(:,1),tra_sam_org1(:,2),'r')
  158. hold on
  159. scatter(tra_sam_org2(:,1),tra_sam_org2(:,2),50,'kx')
  160. axis([-20,30,-20,30])
  161. title('原始樣本')
  162. xlabel('特征1')
  163. ylabel('特征2')
  164. legend('類(lèi)1','類(lèi)2',2)
  165. %% 繪制剪輯后樣本點(diǎn)
  166. figure('NumberTitle', 'off', 'Name', '剪輯后樣本點(diǎn)');
  167. scatter(tra_sam1(:,1),tra_sam1(:,2),'r')
  168. hold on
  169. scatter(tra_sam2(:,1),tra_sam2(:,2),50,'kx')
  170. axis([-20,30,-20,30])
  171. title('算法終止時(shí)樣本點(diǎn)')
  172. xlabel('特征1')
  173. ylabel('特征2')
  174. legend('類(lèi)1','類(lèi)2',2)
  175. %% 繪制壓縮后樣本點(diǎn)
  176. figure('NumberTitle', 'off', 'Name', '壓縮后樣本點(diǎn)');
  177. scatter(store1(:,1),store1(:,2),'r')
  178. hold on
  179. scatter(store2(:,1),store2(:,2),50,'kx')
  180. axis([-20,30,-20,30])
  181. title('壓縮后樣本點(diǎn)')
  182. xlabel('特征1')
  183. ylabel('特征2')
  184. legend('類(lèi)1','類(lèi)2',2)

  185.    
  186.    
  187.    
復(fù)制代碼



ID:1 發(fā)表于 2017-4-22 22:27
c均值算法:
  1. %% c-均值算法
  2. %% 初始化操作
  3. clc
  4. close all
  5. clear all
  6. n=100;
  7. N=5*n;
  8. %% 產(chǎn)生5類(lèi)隨機(jī)樣本,假設(shè)類(lèi)別數(shù)已知
  9. %% 樣本1
  10. mu1=[2 2];
  11. SIGMA1=[1 1.5; 1.5 3];
  12. tra_sam1 = mvnrnd(mu1,SIGMA1,n);
  13. %% 樣本2
  14. mu2=[20,20];
  15. SIGMA2=[4 3;3 5];
  16. tra_sam2 = mvnrnd(mu2,SIGMA2,n);
  17. %% 樣本3
  18. mu2=[11,11];
  19. SIGMA2=[1 1;1 2];
  20. tra_sam3 = mvnrnd(mu2,SIGMA2,n);
  21. %% 樣本4
  22. mu2=[20,2];
  23. SIGMA2=[2 1.2;1.2 4];
  24. tra_sam4 = mvnrnd(mu2,SIGMA2,n);
  25. %% 樣本5
  26. mu2=[2,20];
  27. SIGMA2=[3 2;2 3];
  28. tra_sam5 = mvnrnd(mu2,SIGMA2,n);
  29. tra_sam=[tra_sam1;tra_sam2;tra_sam3;tra_sam4;tra_sam5];
  30. %% 將樣本隨機(jī)分成5類(lèi),計(jì)算代表點(diǎn)
  31. n1=1;n2=1;n3=1;n4=1;n5=1;
  32. for i=1:N
  33.     t=rand;
  34.     if t<=0.2
  35.         cell_sam1(n1,:)=tra_sam(i,:);
  36.         n1=n1+1;
  37.     elseif t<=0.4
  38.         cell_sam2(n2,:)=tra_sam(i,:);
  39.         n2=n2+1;
  40.     elseif t<=0.6
  41.         cell_sam3(n3,:)=tra_sam(i,:);
  42.         n3=n3+1;
  43.     elseif t<0.8
  44.         cell_sam4(n4,:)=tra_sam(i,:);
  45.         n4=n4+1;
  46.     else
  47.         cell_sam5(n5,:)=tra_sam(i,:);
  48.         n5=n5+1;
  49.     end
  50. end
  51. %% 求每類(lèi)的均值
  52. m1=mean(cell_sam1);
  53. m2=mean(cell_sam2);
  54. m3=mean(cell_sam3);
  55. m4=mean(cell_sam4);
  56. m5=mean(cell_sam5);
  57. m=[m1;m2;m3;m4;m5];

  58. cell_sam1=zeros(1,2);cell_sam2=zeros(1,2);
  59. cell_sam3=zeros(1,2);cell_sam4=zeros(1,2);
  60. cell_sam5=zeros(1,2);
  61. n1=1;n2=1;n3=1;n4=1;n5=1;
  62. %% 獲得初始分類(lèi)
  63. for i=1:N
  64.     for j=1:5
  65.         distance1(j)=norm(tra_sam(i,:)-m(j,:));
  66.     end
  67.     [a,b]=min(distance1);
  68.     if b==1
  69.         cell_sam1(n1,:)=tra_sam(i,:);
  70.         n1=n1+1;
  71.     elseif b==2
  72.         cell_sam2(n2,:)=tra_sam(i,:);
  73.         n2=n2+1;
  74.     elseif b==3
  75.         cell_sam3(n3,:)=tra_sam(i,:);
  76.         n3=n3+1;
  77.     elseif b==4
  78.         cell_sam4(n4,:)=tra_sam(i,:);
  79.         n4=n4+1;
  80.     else
  81.         cell_sam5(n5,:)=tra_sam(i,:);
  82.         n5=n5+1;
  83.     end   
  84. end
  85. %% 移動(dòng)初始分類(lèi)的樣本使分類(lèi)更加合理
  86. j_num=0;j_e1=0;
  87. while (j_num<5)
  88.     [cell_sam1,cell_sam2,cell_sam3,cell_sam4,cell_sam5]=y_move(cell_sam1,cell_sam2,cell_sam3,cell_sam4,cell_sam5);
  89.     [cell_sam2,cell_sam1,cell_sam3,cell_sam4,cell_sam5]=y_move(cell_sam2,cell_sam1,cell_sam3,cell_sam4,cell_sam5);
  90.     [cell_sam3,cell_sam1,cell_sam2,cell_sam4,cell_sam5]=y_move(cell_sam3,cell_sam1,cell_sam2,cell_sam4,cell_sam5);
  91.     [cell_sam4,cell_sam1,cell_sam2,cell_sam3,cell_sam5]=y_move(cell_sam4,cell_sam1,cell_sam2,cell_sam3,cell_sam5);
  92.     [cell_sam5,cell_sam1,cell_sam2,cell_sam3,cell_sam4]=y_move(cell_sam5,cell_sam1,cell_sam2,cell_sam3,cell_sam4);
  93.     %% 計(jì)算改變后的誤差平方
  94.     m1=mean(cell_sam1);
  95.     m2=mean(cell_sam2);
  96.     m3=mean(cell_sam3);
  97.     m4=mean(cell_sam4);
  98.     m5=mean(cell_sam5);
  99.     [r1,c1]=size(cell_sam1);
  100.     [r2,c2]=size(cell_sam2);
  101.     [r3,c3]=size(cell_sam3);
  102.     [r4,c4]=size(cell_sam4);
  103.     [r5,c5]=size(cell_sam5);
  104.     j_e=0;
  105.     for i=1:r1
  106.         j_e=j_e+norm(cell_sam1(i,:)-m1)^2;
  107.     end
  108.     for i=1:r2
  109.         j_e=j_e+norm(cell_sam2(i,:)-m2)^2;
  110.     end
  111.     for i=1:r3
  112.         j_e=j_e+norm(cell_sam3(i,:)-m3)^2;
  113.     end
  114.     for i=1:r4
  115.         j_e=j_e+norm(cell_sam4(i,:)-m4)^2;
  116.     end
  117.     for i=1:r5
  118.         j_e=j_e+norm(cell_sam5(i,:)-m5)^2;
  119.     end
  120.     if abs(j_e1-j_e)<=0.001
  121.         j_num=j_num+1;
  122.     else
  123.         j_num=0;
  124.     end
  125.     j_e1=j_e;
  126. end

  127. % 繪圖
  128. figure('NumberTitle', 'off', 'Name', '待分類(lèi)樣本點(diǎn)');
  129. scatter(tra_sam1(:,1),tra_sam1(:,2),'r')
  130. hold on
  131. scatter(tra_sam2(:,1),tra_sam2(:,2),'k')
  132. hold on
  133. scatter(tra_sam3(:,1),tra_sam3(:,2),'b')
  134. hold on
  135. scatter(tra_sam4(:,1),tra_sam4(:,2),'y')
  136. hold on
  137. scatter(tra_sam5(:,1),tra_sam5(:,2),'g')
  138. title('待分類(lèi)樣本點(diǎn)')
  139. xlabel('特征1')
  140. ylabel('特征2')
  141. legend('類(lèi)1','類(lèi)2','類(lèi)3','類(lèi)4','類(lèi)5',2)

  142. figure('NumberTitle', 'off', 'Name', '分類(lèi)后樣本點(diǎn)與正確分類(lèi)樣本點(diǎn)對(duì)比');
  143. scatter(cell_sam1(:,1),cell_sam1(:,2),'rx')
  144. hold on
  145. scatter(cell_sam2(:,1),cell_sam2(:,2),'kx')
  146. hold on
  147. scatter(cell_sam3(:,1),cell_sam3(:,2),'bx')
  148. hold on
  149. scatter(cell_sam4(:,1),cell_sam4(:,2),'yx')
  150. hold on
  151. scatter(cell_sam5(:,1),cell_sam5(:,2),'gx')
  152. hold on
  153. scatter(tra_sam1(:,1),tra_sam1(:,2),'r')
  154. hold on
  155. scatter(tra_sam2(:,1),tra_sam2(:,2),'k')
  156. hold on
  157. scatter(tra_sam3(:,1),tra_sam3(:,2),'b')
  158. hold on
  159. scatter(tra_sam4(:,1),tra_sam4(:,2),'y')
  160. hold on
  161. scatter(tra_sam5(:,1),tra_sam5(:,2),'g')
  162. title('分類(lèi)后樣本點(diǎn)與正確分類(lèi)樣本點(diǎn)對(duì)比')
  163. xlabel('特征1')
  164. ylabel('特征2')
  165. legend('類(lèi)1','類(lèi)2','類(lèi)3','類(lèi)4','類(lèi)5',2)




復(fù)制代碼



ID:1 發(fā)表于 2017-4-22 22:26
bayes判別:
  1. % 初始設(shè)置
  2. clc
  3. clear all
  4. close all
  5. n=2000;           %% 樣本個(gè)數(shù)為 2*n
  6. n1=0;n2=0;       %% 判別為類(lèi)1的個(gè)數(shù)為n1,判別為類(lèi)2的個(gè)數(shù)為n2
  7. m1=1;m2=1;
  8. error1to2=0;error2to1=0;     %% erroritoj為類(lèi)i判為類(lèi)j的錯(cuò)誤個(gè)數(shù)
  9. % 類(lèi)別1的二維聯(lián)合正態(tài)分布的期望和方差,并隨機(jī)產(chǎn)生 n 個(gè)樣本
  10. mu1=[3 4];
  11. sigma1=[1 1.5; 1.5 3];
  12. x1 = mvnrnd(mu1,sigma1,n);

  13. %%類(lèi)別2的二維聯(lián)合正態(tài)分布的期望和方差,并隨機(jī)產(chǎn)生 n 個(gè)樣本
  14. mu2=[8,9];
  15. sigma2=[2 3;3 5];
  16. x2 = mvnrnd(mu2,sigma2,n);
  17. % 判別函數(shù)g(x)進(jìn)行判別

  18. for i=1:1:n
  19.     if g(x1(i,:),mu1,sigma1)>=g(x1(i,:),mu2,sigma2)
  20.         X1(m1,:)=x1(i,:);
  21.         m1=m1+1;
  22.     else
  23.         X2(m2,:)=x1(i,:);
  24.         m2=m2+1;
  25.         erroe1to2=error1to2+1;
  26.     end
  27. end
  28. for i=1:1:n
  29.     if g(x2(i,:),mu1,sigma1)>=g(x2(i,:),mu2,sigma2)
  30.         X1(m1,:)=x2(i,:);
  31.         m1=m1+1;
  32.         error2to1=error2to1+1;
  33.     else
  34.         X2(m2,:)=x2(i,:);
  35.         m2=m2+1;
  36.     end
  37. end
  38. %%%%%%繪圖
  39. % 原始樣本點(diǎn)
  40. figure('NumberTitle', 'off', 'Name', '原樣本點(diǎn)');
  41. scatter(x1(:,1),x1(:,2),'r')
  42. hold on
  43. scatter(x2(:,1),x2(:,2),50,'kx')
  44. title('原始樣本')
  45. xlabel('樣本1')
  46. ylabel('樣本2')
  47. legend('第一類(lèi)樣本','第二類(lèi)樣本',0);
  48.   
  49. % 分類(lèi)后樣本點(diǎn)
  50. figure('NumberTitle', 'off', 'Name', '分類(lèi)樣本點(diǎn)');
  51. scatter(x1(:,1),x1(:,2),'r')
  52. hold on
  53. scatter(x2(:,1),x2(:,2),50,'kx')
  54. hold on
  55. scatter(X1(:,1),X1(:,2),'r')
  56. hold on
  57. scatter(X2(:,1),X2(:,2),50,'kx')
  58. title('分類(lèi)后的樣本')
  59. xlabel('樣本1')
  60. ylabel('樣本2')
  61. legend('第一類(lèi)樣本','第二類(lèi)樣本',0);
復(fù)制代碼



小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表