久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1389|回復: 0
打印 上一主題 下一主題
收起左側

knn算法的MATLAB源碼

[復制鏈接]
跳轉到指定樓層
樓主
ID:348244 發表于 2018-6-9 15:57 來自手機 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. %knn 歸一化自寫

  2. % 把數據分為測試集和訓練集
  3. % train=[wine(1:30,:);wine(60:89,:);wine(131:160,:)];
  4. % test=[wine(31:59,:);wine(90:130,:);wine(161:178,:)];
  5. % train_labels=[wine_labels(1:30,:);wine_labels(60:89,:);wine_labels(131:160,:)];
  6. % test_labels=[wine_labels(31:59,:);wine_labels(90:130,:);wine_labels(161:178,:)];
  7. %把標簽加到數據的最后一列
  8. wine(:,14)=wine_labels;
  9. %按行隨機打亂數據
  10. wine_data =wine(randperm(size(wine,1)),:);
  11. %取前一百條數據給訓練集
  12. train=wine_data(1:100,1:13);
  13. train_labels=wine_data(1:100,14);
  14. %剩下的78條給測試集
  15. test=wine_data(101:178,1:13);
  16. test_labels=wine_data(101:178,14);
  17. %數據歸一化
  18. h=max(train,[],1);
  19. l=min(train,[],1);
  20. for i=1:13
  21.     train(:,i)=(train(:,i)-l(i))./(h(i)-l(i));
  22.     test(:,i)=(test(:,i)-l(i))./(h(i)-l(i));
  23. end
  24. %[train,strc]=mapminmax(train');  
  25. %strc歸一化返回的參數 max min
  26. %test=mapminmax.apply(test',strc);
  27. %計算測試集與所有訓練集間的距離
  28. all_distance=dist(test,train');
  29. %升序排序 B為返回的索引
  30. [A,B]=sort(all_distance,2);
  31. %Knn  K近鄰
  32. K=3;
  33. all_labels=train_labels(B(:,1:K));
  34. %統計矩陣中出現的類別
  35. b=unique(all_labels);
  36. %統計各個類別出現的次數
  37. c=histc(all_labels',b);
  38. %新標簽賦值
  39. [m,predict_labels]=max(c);
  40. %求準確率
  41. accuracy=1-(length(find((predict_labels-test_labels')~=0))/length(test_labels))
  42. %畫圖
  43. figure;
  44. hold on;
  45. plot(test_labels,'o');
  46. plot(predict_labels,'*');
  47. xlabel('測試集數據','FontSize',12);
  48. ylabel('類別標簽','FontSize',12);
  49. legend('實際測試集分類','預測測試集分類');
  50. title('測試集的實際分類和預測分類圖','FontSize',12);
  51. grid on;





  52. %knn 歸一化使用mapminmax函數進行的
  53. %knn

  54. % 把數據分為測試集和訓練集
  55. % train=[wine(1:30,:);wine(60:89,:);wine(131:160,:)];
  56. % test=[wine(31:59,:);wine(90:130,:);wine(161:178,:)];
  57. % train_labels=[wine_labels(1:30,:);wine_labels(60:89,:);wine_labels(131:160,:)];
  58. % test_labels=[wine_labels(31:59,:);wine_labels(90:130,:);wine_labels(161:178,:)];
  59. %把標簽加到數據的最后一列
  60. wine(:,14)=wine_labels;
  61. %按行隨機打亂數據
  62. wine_data =wine(randperm(size(wine,1)),:);
  63. %取前一百條數據給訓練集
  64. train=wine_data(1:100,1:13);
  65. train_labels=wine_data(1:100,14);
  66. %剩下的78條給測試集
  67. test=wine_data(101:178,1:13);
  68. test_labels=wine_data(101:178,14);
  69. %數據歸一化
  70. [train,strc]=mapminmax(train');  
  71. %strc歸一化返回的參數 max min
  72. test=mapminmax.apply(test',strc);
  73. %計算測試集與所有訓練集間的距離
  74. all_distance=dist(test',train);
  75. %升序排序 B為返回的索引
  76. [A,B]=sort(all_distance,2);
  77. %Knn  K近鄰
  78. K=5;
  79. all_labels=train_labels(B(:,1:K));
  80. %統計矩陣中出現的類別
  81. b=unique(all_labels);
  82. %統計各個類別出現的次數
  83. c=histc(all_labels',b);
  84. %新標簽賦值
  85. [~,predict_labels]=max(c);
  86. %求準確率
  87. accuracy=1-(length(find((predict_labels-test_labels')~=0))/length(test_labels))
  88. %畫圖
  89. figure;
  90. hold on;
  91. plot(test_labels,'o');
  92. plot(predict_labels,'*');
  93. xlabel('測試集數據','FontSize',12);
  94. ylabel('類別標簽','FontSize',12);
  95. legend('實際測試集分類','預測測試集分類');
  96. title('測試集的實際分類和預測分類圖','FontSize',12);
  97. grid on;
復制代碼


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 天天操天天射综合网 | 91精品国产91久久久久久 | 免费一级黄 | 精产国产伦理一二三区 | 日本一区二区不卡视频 | 成人h视频在线观看 | 久久1区| 一级黄色片美国 | 在线亚州| 一区二区三区av | 免费观看www7722午夜电影 | www.av在线| 午夜激情在线视频 | 麻豆hd | 91精品中文字幕一区二区三区 | 黄色播放| 亚洲精品一区二三区不卡 | 亚洲一区二区三区在线视频 | 不卡在线视频 | 亚洲精品电影网在线观看 | 成人在线免费网站 | 国产福利视频网站 | 国产精品久久久久久久久免费相片 | 精品国产乱码一区二区三区 | 欧美激情在线播放 | 亚洲精品第一国产综合野 | 久久久久国产一区二区三区四区 | h在线看| 欧美精品成人一区二区三区四区 | 日韩精品免费在线观看 | 成人在线电影网站 | 久久精品视频在线免费观看 | 国产高清视频在线观看播放 | 一区二区电影 | 黑人巨大精品 | 国外成人免费视频 | 成年人在线视频 | 精品区一区二区 | 伊人网在线综合 | 久久久国产亚洲精品 | 亚洲成人三级 |