Java 簡單易懂的KNN演算法

2021-09-14 02:05:55 字數 1126 閱讀 7079

一,簡單介紹

knn演算法---就是獲取臨近點,範圍內,哪一種點最多(例如:紅點:6,黑點:2,未知點肯定是紅點),就是屬於最多一方

定義樣本,擁有四個樣本,已知a區兩點分別(2,5)和(1,4),

b區(8,1)和(9,2),

求灰點(4,3)屬於哪一區? **

定義實體類

/**

* 定義資料和資料型別

* @author peng

* */

private static class shuju

}

knn分類函式

/**

* knn分類函式

* @param inputshuju 需要輸入的測試資料

* @param dataset 樣本資料

* @param k 相近的幾個函式比較

*/private static shuju knnclassify(shuju inputshuju,shuju dataset, int k)

else

}//得到value為maxcount的key,也就是陣列**現次數最多的數字

collectioncount = map.values();

int maxcount = collections.max(count);

//根據value獲取key

string maxnumstring = "";

for (entryentry:map.entryset())

}system.out.println("出現次數最多的數字為"+maxnumstring);

system.out.println("改次數一共出現了"+maxcount+"次");

return maxnumstring;

}

調取

public static void main(string args)
列印如圖

簡單易懂的BitMap演算法

面試題經常會有類似給很大的一堆連續的,不重複的無符號整數 如10億個整數 而且是無序的,然後希望以後能頻繁快速的查詢某個數字是否出現在這些數字中。a 一開始如果我們先假設不考慮記憶體需求,由於要頻繁快速的查詢數字是否存在,所以對這些數字進行排序進行二分明顯是不符合要求,查詢最快就是類似hash,這道...

匈牙利演算法(簡單易懂)

匈牙利演算法為一種二分圖最大匹配的指派演算法,在多目標跟蹤中比較常用,以下是工程化的匈牙利演算法步驟 step1.將元素排列成為矩陣,列為被指派物件,行為匹配權重 step2.將矩陣補齊為m m的方陣,補的元素為原始矩陣中的最大值 step3.找出每行的最下元素a1,a2.an,然後每行的所有元素分...

kmp演算法 簡單易懂

kmp字串 給定乙個模式串s,以及乙個模板串p,所有字串中只包含大小寫英文本母以及阿拉伯數字。模板串p在模式串s中多次作為子串出現。求出模板串p在模式串s中所有出現的位置的起始下標。輸入格式 第一行輸入整數n,表示字串p的長度。第二行輸入字串p。第三行輸入整數m,表示字串s的長度。第四行輸入字串s。...