亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

Java實現的KNN算法示例

2024-07-14 08:41:19
字體:
來源:轉載
供稿:網友

本文實例講述了Java實現的KNN算法。分享給大家供大家參考,具體如下:

提起KNN算法大家應該都不會陌生,對于數據挖掘來說算是十大經典算法之一。

算法的思想是:對于訓練數據集中已經歸類的分組,來對于未知的數據進行分組歸類。其中是根據該未知點與其訓練數據中的點計算距離,求出距離最短的點,并將其歸入該點的那一類。

看看算法的工程吧:

1. 準備數據,對數據進行預處理
2. 選用合適的數據結構存儲訓練數據和測試元組
3. 設定參數,如k
4.維護一個大小為k的的按距離由大到小的優先級隊列,用于存儲最近鄰訓練元組。隨機從訓練元組中選取k個元組作為初始的最近鄰元組,分別計算測試元組到這k個元組的距離,將訓練元組標號和距離存入優先級隊列
5. 遍歷訓練元組集,計算當前訓練元組與測試元組的距離,將所得距離L 與優先級隊列中的最大距離Lmax
6. 進行比較。若L>=Lmax,則舍棄該元組,遍歷下一個元組。若L < Lmax,刪除優先級隊列中最大距離的元組,將當前訓練元組存入優先級隊                  列。
7. 遍歷完畢,計算優先級隊列中k 個元組的多數類,并將其作為測試元組的類別。
8. 測試元組集測試完畢后計算誤差率,繼續設定不同的k值重新進行訓練,最后取誤差率最小的k 值。

根據算法的過程我們進行java語言實現:

package KNN;/** * 點的坐標 x 、y * @author Administrator * */public class PointBean {int x;int y;public int getX() {  return x;}public void setX(int x) {  this.x = x;}public int getY() {  return y;}public void setY(int y) {  this.y = y;}public PointBean(int x, int y) {  super();  this.x = x;  this.y = y;}public PointBean() {  super();}@Overridepublic String toString() {  return "PointBean [x=" + x + ", y=" + y + "]";}}

KNN算法

package KNN;import java.util.ArrayList;/** * KNN實現的方法 * @author Administrator * */public class KnnMain {  public double getPointLength(ArrayList<PointBean> list,PointBean bb){    int b_x=bb.getX();    int b_y=bb.getY();    double temp=(b_x -list.get(0).getX())*(b_x -list.get(0).getX())+        (b_y -list.get(0).getY())*(b_y -list.get(0).getY());    // 找出最小的距離    for(int i=1;i<list.size();i++){      if(temp<((b_x -list.get(i).getX())*(b_x -list.get(i).getX())+          (b_y -list.get(i).getY())*(b_y -list.get(i).getY()))){        temp=(b_x -list.get(i).getX())*(b_x -list.get(i).getX())+            (b_y -list.get(i).getY())*(b_y -list.get(i).getY());      }    }    return Math.sqrt(temp);  }  /**   * 獲取長度,找出最小的一個進行歸類   * @param list1   * @param list2   * @param list3   * @param bb   */  public void getContent(ArrayList<PointBean> list1,ArrayList<PointBean> list2,      ArrayList<PointBean> list3,PointBean bb){    double A=getPointLength(list1,bb);    double B=getPointLength(list2,bb);    double C=getPointLength(list3,bb);    //做出比較    if(A>B){      if(B>C){        System.out.println("這個點:"+bb.getX()+" , "+bb.getY()+" " +"屬于C");      }else {        System.out.println("這個點:"+bb.getX()+" , "+bb.getY()+" " +"屬于B");      }    }else {      if(A>C){        System.out.println("這個點:"+bb.getX()+" , "+bb.getY()+" " +"屬于C");      }else {        System.out.println("這個點:"+bb.getX()+" , "+bb.getY()+" " +"屬于A");      }    }  }}

主函數

package KNN;import java.util.ArrayList;/* * 主函數 KNN */public class TestJava {  static ArrayList< PointBean> listA;  static ArrayList< PointBean> listB;  static ArrayList< PointBean> listC;  static ArrayList< PointBean> listD;  public static void main(String[] args) {    //創佳Arraylist    listA=new ArrayList<PointBean>();    listB=new ArrayList<PointBean>();    listC=new ArrayList<PointBean>();    listD=new ArrayList<PointBean>();    //寫入數據    setDate();    getTestResult();  }  /**   * 得到結果   */  private static void getTestResult() {    //創建對象    KnnMain km=new KnnMain();    for(int i=0;i<listD.size();i++){      km.getContent(listA, listB, listC, listD.get(i));    }  }  /**   * 寫入數據   */  private static void setDate() {    //A的坐標點    int A_x[]={1,1,2,2,1};    int A_y[]={0,1,1,0,2};    //B的坐標點    int B_x[]={2,3,3,3,4};    int B_y[]={4,4,3,2,3};    //C的坐標點    int C_x[]={4,5,5,6,6};    int C_y[]={1,2,0,2,1};    // 測試數據    //B的坐標點    int D_x[]={3,3,3,0,5};    int D_y[]={0,1,5,0,1};    //    PointBean bA;    for(int i=0;i<5;i++){      bA=new PointBean(A_x[i], A_y[i]);      listA.add(bA);    }    //    PointBean bB ;    for(int i=0;i<5;i++){      bB=new PointBean(B_x[i], B_y[i]);      listB.add(bB);    }    //    PointBean bC ;    for(int i=0;i<5;i++){      bC=new PointBean(C_x[i], C_y[i]);      listC.add(bC);    }    //    PointBean bD ;    for(int i=0;i<5;i++){      bD=new PointBean(D_x[i], D_y[i]);      listD.add(bD);    }  }}

測試的結果:

這個點:3 , 1 屬于A
這個點:3 , 5 屬于B
這個點:0 , 0 屬于A
這個點:5 , 1 屬于C

到此簡單的KNN算法已經實現對于未知點的劃分,有助于大家對于KNN算法的理解。對于改進KNN的一些算法JAVA實現會在后面進行貼出。共同學習共同進步!

希望本文所述對大家java程序設計有所幫助。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲天堂色网站| 亚洲欧美国产精品专区久久| 精品亚洲男同gayvideo网站| 中文字幕成人精品久久不卡| 91精品国产99久久久久久| 国产精品扒开腿做爽爽爽视频| 日韩欧美极品在线观看| 日韩成人在线免费观看| 国产精品自拍视频| 欧美日韩一区免费| 亚洲最大av网站| 亚洲一区二区三区乱码aⅴ蜜桃女| 久久国产精品久久国产精品| 久久免费视频在线观看| 欧美老女人bb| 国产成人久久精品| 国产精品偷伦视频免费观看国产| 亚洲国产成人精品女人久久久| **欧美日韩vr在线| 午夜精品久久久久久久99热浪潮| 亚洲精品美女久久久久| 国产精品男女猛烈高潮激情| 日韩视频免费大全中文字幕| 琪琪第一精品导航| 亚洲国产精品久久91精品| 色999日韩欧美国产| 国产精品扒开腿做爽爽爽的视频| 国产成人高潮免费观看精品| 国产精品久久一区| 少妇av一区二区三区| 日本亚洲欧洲色| 欧美老少做受xxxx高潮| 成人网址在线观看| 日韩福利在线播放| 欧美孕妇毛茸茸xxxx| 成人国产精品一区二区| 欧美尺度大的性做爰视频| 亚洲性日韩精品一区二区| 日韩中文字幕在线视频播放| 成人日韩在线电影| 亚洲国产一区二区三区在线观看| 色哟哟亚洲精品一区二区| 国产精品老女人视频| 国产精品网红直播| 丝袜美腿精品国产二区| 高清亚洲成在人网站天堂| 一区二区三区日韩在线| 日韩电影视频免费| 国产精品久久久久久久午夜| 亚洲福利视频网| 亚洲国产日韩欧美在线动漫| 午夜精品美女自拍福到在线| 欧美视频不卡中文| 亚洲国产精品字幕| 国产在线观看91精品一区| 国产黑人绿帽在线第一区| 国产精品久久久久av免费| 91国内在线视频| 日韩欧美成人区| 久久精品视频播放| 亚洲天堂男人天堂女人天堂| 欧美国产日产韩国视频| 亚洲一区二区在线播放| 久久免费精品日本久久中文字幕| 久久精品2019中文字幕| 久久香蕉国产线看观看av| 久久久久中文字幕2018| 午夜精品久久久久久久99黑人| 97视频在线观看免费| 亚洲精品国产精品国产自| 精品国产乱码久久久久酒店| 国产美女久久精品香蕉69| 草民午夜欧美限制a级福利片| 在线看福利67194| 日韩精品视频免费专区在线播放| 亚洲精品美女网站| 欧美最猛黑人xxxx黑人猛叫黄| 日本久久久a级免费| 国产视频亚洲精品| 欧美性猛交xxxx偷拍洗澡| 韩国三级日本三级少妇99| 韩曰欧美视频免费观看| 亚洲偷欧美偷国内偷| 久久影视免费观看| 国模gogo一区二区大胆私拍| 国产精品免费观看在线| 日本一区二三区好的精华液| 懂色av中文一区二区三区天美| 91成人福利在线| 日韩视频免费中文字幕| 亚洲精品一区二区久| 97在线视频免费播放| 国产成人亚洲综合91| 欧美日韩精品在线观看| 国产人妖伪娘一区91| 91亚洲精品在线| 韩国精品美女www爽爽爽视频| 亚洲肉体裸体xxxx137| 亚洲精品日韩在线| 91精品国产高清| 久久九九热免费视频| 午夜精品久久久久久久99热浪潮| 5566日本婷婷色中文字幕97| 动漫精品一区二区| 久久99精品久久久久久青青91| 亚洲国产欧美自拍| 久久视频在线观看免费| 欧美久久精品一级黑人c片| 欧洲亚洲在线视频| 欧美在线一级va免费观看| 日韩成人在线网站| 国产一区二区日韩精品欧美精品| 一区二区三区久久精品| 亚洲人在线视频| 啪一啪鲁一鲁2019在线视频| 欧美麻豆久久久久久中文| 欧美又大又粗又长| 国产精品旅馆在线| 亚洲天堂网站在线观看视频| 成人黄色免费网站在线观看| 欧美成人免费全部观看天天性色| 国产ts人妖一区二区三区| 国产精品ⅴa在线观看h| 亚洲精品色婷婷福利天堂| 日韩成人av一区| 久久久精品日本| 51视频国产精品一区二区| 国产做受69高潮| 欧美精品久久久久久久久久| 色狠狠av一区二区三区香蕉蜜桃| 日韩欧美亚洲一二三区| 亚洲国产欧美自拍| www.国产一区| 国产精品女人久久久久久| 亚洲国语精品自产拍在线观看| 国产精品美腿一区在线看| 亚洲欧美另类中文字幕| 国产精品视频99| 91久热免费在线视频| 亚洲精品久久久久久久久久久久| 欧美成人午夜影院| 一级做a爰片久久毛片美女图片| 91精品视频免费看| 亚洲国产精久久久久久| 日韩三级影视基地| 亚洲欧美日韩天堂一区二区| 欧美xxxx18性欧美| 亚洲夜晚福利在线观看| 日韩美女视频免费在线观看| 久久影视电视剧免费网站清宫辞电视| 欧美日韩一区二区三区在线免费观看| 黑丝美女久久久| 中文字幕日韩免费视频| 亚洲精品电影在线| 久久久久久久久久久久久久久久久久av| 久久精品99久久久久久久久| xvideos成人免费中文版| 欧美黄色片视频| 日韩中文字幕免费| 精品久久久久久久中文字幕| 久久精品99久久久香蕉| 日韩视频免费观看| 最好看的2019的中文字幕视频| 欧美国产视频日韩|