91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 1.05MB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2023-08-30
  • 語(yǔ)言: Java
  • 標(biāo)簽: knn,分類??

資源簡(jiǎn)介

這個(gè)是我實(shí)驗(yàn)課的作業(yè),Java實(shí)現(xiàn)knn算法,對(duì)網(wǎng)上需手動(dòng)輸入數(shù)據(jù)的算法進(jìn)行了一些改進(jìn),注釋詳細(xì),數(shù)據(jù)是文件夾中的txt文件,讀者可以自己更換成自己的數(shù)據(jù)。

資源截圖

代碼片段和文件信息

package?KNN;??
import?java.util.ArrayList;??
import?java.util.Comparator;??
import?java.util.HashMap;??
import?java.util.List;??
import?java.util.Map;??
import?java.util.PriorityQueue;?
/**?
?*..........KNN算法類..........
?*/??
public?class?KNN?{
/**?
?????*..........計(jì)算測(cè)試元組與訓(xùn)練元組之前的距離..........?
?????*/??
????public?double?distance(List?d1?List?d2)?{//d1:測(cè)試元祖;d2:訓(xùn)練元祖??
????????double?distance?=?0.00;??
????????for?(int?i?=?0;?i?????????????distance?+=?(d1.get(i)?-?d2.get(i))?*?(d1.get(i)?-?d2.get(i));//歐幾里得距離平方??
????????}??
????????return?distance;//返回距離值??
????}??
????/**?
?????*?..........設(shè)置優(yōu)先級(jí)隊(duì)列的比較函數(shù)..........
?????*/??
????private?Comparator?comparator?=?new?Comparator()?{??
????????public?int?compare(KNNNode?k1?KNNNode?k2)?{??
????????????if?(k1.getDistance()?>=?k2.getDistance())?{??
????????????????return?1;??
????????????}?else?{??
????????????????return?0;??
????????????}
????????}??
????};//此處有逗號(hào),沒有會(huì)出錯(cuò)
????/**?
?????*..........獲取K個(gè)不同的隨機(jī)數(shù)..........?
?????*/??
????public?List?getRandKNum(int?k?int?max)?{//k:隨機(jī)數(shù)的個(gè)數(shù);max:隨機(jī)數(shù)最大的范圍;??
????????List?randNum?=?new?ArrayList(k);??
????????for?(int?i?=?0;?i?????????????int?temp?=?(int)?(Math.random()?*?max);??
????????????if?(!randNum.contains(temp))?{??
????????????????randNum.add(temp);??
????????????}?else?{??
????????????????i--;??
????????????}??
????????}??
????????return?randNum;//返回生成的隨機(jī)數(shù)數(shù)組??
????}
????/**?
?????*..........獲取所得到的k個(gè)最近鄰元組的多數(shù)類..........?
?????*/??
????private?String?getMostClass(?PriorityQueue?pq)?{//pq:存儲(chǔ)k個(gè)最近近鄰元組的優(yōu)先級(jí)隊(duì)列??
????????Map?classCount?=?new?HashMap();??
????????for?(int?i?=?0;?i?????????????KNNNode?node?=?pq.remove();??
????????????String?c?=?node.getC();//獲取節(jié)點(diǎn)類型??
????????????if?(classCount.containsKey(c))?{//節(jié)點(diǎn)類型已存在?,在之前基礎(chǔ)上計(jì)數(shù)加1
????????????????classCount.put(c?classCount.get(c)?+?1);??
????????????}?else?{?//節(jié)點(diǎn)類型還未存在?,計(jì)數(shù)為1
????????????????classCount.put(c?1);??
????????????}??
????????}??
????????int?maxIndex?=?-1;//類別出現(xiàn)最多的??
????????int?maxCount?=?0;??
????????object[]?classes?=?classCount.keySet().toArray();??
????????for?(int?i?=?0;?i?????????????if?(classCount.get(classes[i])?>?maxCount)?{??
????????????????maxIndex?=?i;??
????????????????maxCount?=?classCount.get(classes[i]);??
????????????}??
????????}??
????????return?classes[maxIndex].toString();//返回多數(shù)類的名稱??
????}??
????/**?
?????*..........執(zhí)行KNN算法,獲取測(cè)試元組的類別..........?
?????*/??
????public?String?knn(List>?datas?List?testData?int?k)?{//datas:訓(xùn)練數(shù)據(jù)集;testData:測(cè)試元組;k:設(shè)定的K值??
???? PriorityQueue?pq?=?new??PriorityQueue(k?comparator);??
????????List?randNum?=?getRandKNum(k?datas.size());//取k個(gè)不同隨機(jī)數(shù)??
????????for?(int?i?=?0;?i?????????????int?index?=?randNum.get(i);//獲取隨機(jī)數(shù)組里的數(shù)??
????

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2015-12-13?14:28??TestKNN\
?????文件?????????301??2015-11-19?17:01??TestKNN\.classpath
?????文件?????????383??2015-11-19?17:01??TestKNN\.project
?????目錄???????????0??2015-12-13?14:28??TestKNN\.settings\
?????文件?????????598??2015-11-19?17:01??TestKNN\.settings\org.eclipse.jdt.core.prefs
?????文件?????1388417??2015-11-24?18:48??TestKNN\AfterPreCorrected2.txt
?????文件????65652559??2015-11-24?15:39??TestKNN\AfterPreData.txt
?????目錄???????????0??2015-12-13?14:28??TestKNN\bin\
?????目錄???????????0??2015-12-13?14:28??TestKNN\bin\KNN\
?????文件?????????838??2015-11-24?23:50??TestKNN\bin\KNN\KNN$1.class
?????文件????????4097??2015-11-24?23:50??TestKNN\bin\KNN\KNN.class
?????文件?????????996??2015-11-24?22:55??TestKNN\bin\KNN\KNNNode.class
?????文件????????4395??2015-11-25?14:50??TestKNN\bin\KNN\TestKNN.class
?????目錄???????????0??2015-12-13?14:28??TestKNN\bin\util\
?????文件????????2658??2015-11-24?10:19??TestKNN\bin\util\DecimalCalculate.class
?????目錄???????????0??2015-12-13?14:28??TestKNN\src\
?????目錄???????????0??2015-12-13?14:28??TestKNN\src\KNN\
?????文件????????4094??2015-11-24?23:50??TestKNN\src\KNN\KNN.java
?????文件?????????948??2015-11-24?22:55??TestKNN\src\KNN\KNNNode.java
?????文件????????4870??2015-11-25?14:50??TestKNN\src\KNN\TestKNN.java
?????目錄???????????0??2015-12-13?14:28??TestKNN\src\util\
?????文件????????4653??2015-11-24?10:19??TestKNN\src\util\DecimalCalculate.java

評(píng)論

共有 條評(píng)論

相關(guān)資源