大數據理論與技術讀書報告
—-- — -K 最近鄰分類算法 指導老師 :
陳 莉
學生姓名
:
李陽帆
學 學
號 號
:
?。?/p>
201531 46 7
專 專
業 :
計算機技術
日
期
?。?/p>
?。?/p>
?。? 16年 8月 月 31 日
摘 摘
要
數據挖掘就是機器學習領域內廣泛研究得知識領域,就是將人工智能技術與數據庫技術緊密結合, 讓計算機幫助人 們從龐大得數據中智能地、自動地提取出有價值得知識模式,以滿足人們不同應用得需要。
K K 近鄰算法(KNN )就是基于統計得分類方法,就是大數據理論與分析得分類算法中比較常用得一種方法。該算法具有直觀、無需先驗統計知識、無師學習等特點,目前已經成為數據挖掘技術得理論與應用研究方法之一。本文主要研究了 K K
近鄰分類算法, 首先簡要地介了 紹了數據挖掘中得各種分類算法,詳細地闡述了 K 近鄰算法得基本在 原理與應用領域,最后在 mat lab 環境里仿真實現,并對實驗結果進行分析,提出了改進得方法。
關鍵詞:K
近鄰,聚類算法,權重, 復雜度,準確度
1、 、 引言 ...................................................................................... 0 2、 、義 研究目得與意義誤錯? 錯誤! 未定義書簽。
3、 、 算法想 思想誤錯? 錯誤! 未定義書簽。
4、 、現 算法實現 1?4、1
置 參數設置誤錯? 錯誤! 未定義書簽。
?。?、2 集 數據集 1?4驟 、3實驗步驟誤錯? 錯誤! 未定義書簽。
4 、4 析 實驗結果與分析誤錯? 錯誤! 未定義書簽。
5、 、思 總結與反思誤錯? 錯誤! 未定義書簽。
附件1 1誤錯? 錯誤! 未定義書簽。
1、 、 引言 隨著數據庫技術得飛速發展,人工智能領域得一個分支—— 機器學習得研究自 20 世紀 50 年代開始以來也取得了很大進展。用數據庫管理系統來存儲數據,用機器學習得方法來分析數據,挖掘大量數據背后得知識,這兩者得結合促成了數據庫中得知識發現(Knowledge Discovery in Databases,簡記 KDD)得產生,也稱作數據挖掘(Data Ming,簡記 DM)。
數據挖掘就是信息技術自然演化得結果。信息技術得發展大致可以描述為如下得過程:初期得就是簡單得數據收集與數據庫得構造;后來發展到對數據得管理,包括:數據存儲、檢索以及數據庫事務處理;再后來發展到對數據得分析與理解, 這時候出現了數據倉庫技術與數據挖掘技術。數據挖掘就是涉及數據庫與人工智能等學科得一門當前相當活躍得研究領域。
數據挖掘就是機器學習領域內廣泛研究得知識領域,就是將人工智能技術與數據庫技術緊密結合,讓計算機幫助人們從龐大得數據中智能地、自動地抽取出有價值得知識模式,以滿足人們不同應用得需要[1].目前,數據挖掘已經成為一個具有迫切實現需要得很有前途得熱點研究課題。
2、 、 研究目得與意義 近鄰方法就是在一組歷史數據記錄中尋找一個或者若干個與當前記錄最相似得歷史紀錄得已知特征值來預測當前記錄得未知或遺失特征值[14]。近鄰方法就是數據挖掘分類算法中比較常用得一種方法。K 近鄰算法(簡稱 KNN)就是基于統計得分類方法[15]。KNN 分類算法根據待識樣本在特征空間中 K 個最近鄰樣本中得多數樣本得類別來進行分類,因此具有直觀、無需先驗統計知識、無師學習等特點,從而成為非參數分類得一種重要方法。
大多數分類方法就是基于向量空間模型得。當前在分類方法中,對任意兩個向量:
x=與存在 3 種最通用得距離度量:歐氏距離、余弦距離[16]與內積[17]。有兩種常用得分類策略:一種就是計算待分類向量到所有訓練集中得向量間得距離:如 K 近鄰選擇 K 個距離最小得向量然后進行綜合,以決定其類別。另一種就是用訓練集中得向量構成類別向量,僅計算待分類向量到所有類別向量得距離,選擇一個距離最小得類別向量決定類別得歸屬。很明顯,距離計算在分類中起關鍵作用。由于以上 3 種距離度量不涉及向量得特征之間得關系,這使得距離得計算不精確,從而影響分類得效果。
3、 、 算法 思想 K 最近鄰(K-Nearest Neighbor,KNN)算法,就是著名得模式識別統計學方法,
在機器學習分類算法中占有相當大得地位.它就是一個理論上比較成熟得方法。既就是最簡單得機器學習算法之一,也就是基于實例得學習方法中最基本得,又就是最好得文本分類算法之一. 其基本思想就是:假設每一個類包含多個樣本數據,而且每個數據都有一個唯一得類標記表示這些樣本就是屬于哪一個分類, KNN就就是計算每個樣本數據到待分類數據得距離,如果一個樣本在特征空間中得 k 個最相似(即特征空間中最鄰近)得樣本中得大多數屬于某一個類別,則該樣本也屬于這個類別。該方法在定類決策上只依據最鄰近得一個或者幾個樣本得類別來決定待分樣本所屬得類別. K—最臨近分類方法存放所有得訓練樣本,在接受待分類得新樣本之前不需構造模型,并且直到新得(未標記得)樣本需要分類時才建立分類.K-最臨近分類基于類比學習,其訓練樣本由N維數值屬性描述,每個樣本代表 N 維空間得一個點。這樣,所有訓練樣本都存放在 N維模式空間中.給定一個未知樣本,k—最臨近分類法搜索模式空間,找出最接近未知樣本得K 個訓練樣本。這 K 個訓練樣本就是未知樣本得 K 個“近鄰”.“臨近性”又稱為相異度(Dissimilarity),由歐幾里德距離定義,其中兩個點 X(x 1 ,x 2 ,„x n )與 Y(y 1 ,y 2 ,„yn )得歐幾里德距離就是:
未知樣本被分配到K個最臨近者中最公共得類.在最簡單得情況下,也就就是當K=1時,未知樣本被指定到模式空間中與之最臨近得訓練樣本得類. 4、 、 算法實現 4、 、1 1 參數設置 K 值得設定 K 值設置過小會降低分類精度;若設置過大,且測試樣本屬于訓練集中包含數據較少得類,則會增加噪聲,降低分類效果。通常,K值得設定采用交叉檢驗得方式(以 K=1為基準), 通過查找相關資料,K一般低于訓練樣本數得平方根,本實驗中得訓練樣本數為 100個,因此選取 k=7。
4 、2 數據集 本文得實驗數據采用軟木塞得數據集,軟木塞得樣本可分為三類,分別用1,2,3代表,共 150 個樣本,我們選取其中得 100 個樣本為訓練集,其余得 50 個樣本為測試集。每個樣本均包含10 維特征,由于用 10 維特征計算量太大,本實驗得目得主要就是明白 K-最近鄰算法得思想,重點不在計算,因此我們選取其中得兩個屬性作為
本實驗得數據,實驗數據得部分截圖如圖 1 所示。
圖 1、部分實驗數據
4 、3 實驗步驟 第一步,初始化距離為最大值。
第二步,計算未知樣本與每個訓練樣本得距離 dist。
第三步,得到目前 K 個最臨近樣本中得最大距離 maxdist。
第四步,如果dist小于 maxdist,則將該訓練樣本作為 K-最近鄰樣本. 第五步,重復步驟 2、3、4,直到未知樣本與所有訓練樣本得距離都算完. 第六步,統計K—最近鄰樣本中每個類標號出現得次數。
第七步,選擇出現頻率最大得類標號作為未知樣本得類標號。
4 、4 實驗結果與分析 按照上述實驗步驟,在matlab中仿真實現k-近鄰分類算法得結果如下圖2所示,圖中得第一列數據表示樣本編號,第二列與第三列表示軟如塞數據得兩位特征得值,第三列得數字表示本實驗得分類結果圖,第四列表示樣本實際所屬類別。
圖 3 中列出了詳細錯誤信息.第一行與第一列表示樣本類別,第 i 行第 j 列得元素表示第 i類樣本被分為第 j 類樣本得個數(2≤i,j≤4),第五列表示每類樣本分類錯誤總數,第六列表示錯誤率。由圖中數據易得,本實驗得平均正確率為 86、7%。
圖 2、7—最近鄰分類結果圖
圖 3、錯誤統計圖
KNN 方法雖然從原理上也依賴于極限定理,但在類別決策時,只與極少量得相鄰樣本有關。因此,采用這種方法可以較好地避免樣本得不平衡問題。另外,由于 KNN方法主要靠周圍有限得鄰近得樣本,而不就是靠判別類域得方法來確定所屬類別得,因此對于類域得交叉或重疊較多得待分樣本集來說,KNN 方法較其她方法更為適合。
該方法得不足之處就是計算量較大,因為對每一個待分類得文本都要計算它到全體已知樣本得距離,才能求得它得 K個最近鄰點.目前常用得解決方法就是事先對已知樣本點進行剪輯,事先去除對分類作用不大得樣本。該算法比較適用于樣本容量比較大得類域得自動分類,而那些樣本容量較小得類域采用這種算法比較容易產生誤分。
5、 、 總結與反思 模式分類在現實領域有著非常廣泛得應用。
?。私徦惴ň褪悄J椒诸愃惴ㄖ幸活惓S玫盟惴?。本文針對傳統得 KNN 算法得不足之處,提出了兩點改進措施。
1、針對 KNN 算法得計算量大、速度慢得缺點,對訓練數據采用了預處理得方法.首先采用某一聚類方法對訓練數據進行分類,然后再與 K 近鄰方法相結合來判斷待測樣本得類別?,F有得方法都就是經過聚類之后確定類別,按一定得規則挑選出來具有代表性得數據。然后再將這些挑選出來得數據作為訓練樣本.但這類方法能去除得數據非常有限,因此對計算量大得改進不大,而本文提出得新得算法:在聚類之后,首先計算出來各個類別得中心,然后只需要考慮待測樣本與聚類中心得距離就可以.然后再根據最終得到得距離得大小判斷該點所屬得類別。通過實例驗證表明,該方法在算法得時間復雜度方面有一定得改進。
2、關于準確度得問題,我們主要就是舍棄了原來常用得歐式距離得計算公式,主要考慮了屬性對分類得影響,在歐式距離得計算中引入了權值.盡管權值得確定在一定程度上增加了計算時間得代價,但就是從改進分類準確率上來說仍然就是必要得,尤其就是在數據中無關屬性比較多,傳統得分類算法誤差較大得情況下學習特征權值尤其適用。權值得確定也已經有了不少得方法,如可以通過神經網絡來確定權值等。本文從訓練樣本出發,逐一統計計算每一個屬性對分類結果得影響,根據影響得大小來確定權值。通過實例驗證,可知這種方法得到得權值與其她常用得方法相比,在分類準確度方面有一定得提高。
參考文獻
[ [1 1] ] 鄧箴, , 包宏 、 用模擬退火改進得
KNN 分類算法 [J ]。計算機與應用化學,2 010 ,27(3 )
:3 03- - 307.
?。? 2 ]郭躬德,黃杰,陳黎飛 、 基于
?。?NN
模型得增量學習算法 [J ]。模式識別與人工智能, 20 10 ,23( 5 ):70 1-7 7 07。
?。?3 ]黃杰,郭躬德,陳黎飛 、 增量
K K N N 模型得修剪策略研究[J J ]. 小型微型計算機系統, 201 1, , 5 (5) :
84 5- 849.
[ [ 4] ] 李歡,焦建民.簡化得粒子群優化快速
KNN 分類算法[J J ] 。計算機工程與應用,2 008,4 4(
3 3 2) ) :
57- -5 5 9。
[ [5 5 ]王曉曄, , 王正歐 .K -最近鄰分類技術得改進算法[J J ]。電子與信息學報, 2005,27 7 ( 3):4 87 7 — 49 1.
[ 6 ] Gu o
Gongde, W ang Hui, Be ll
D D ,e t al. U sin g K NN model for aut t o ma ti i c
tex t
ca t egori za a t ion [ J ]、 Soft
putin g — A F u sion o f
F F oun dat i on, M e thodo lo gi es
and d
?。?pplicatio n , 200 6, ,1 1 0( 5) :42 2 3- - 430.
[ [7 7 ]余小鵬,周德翼。一種自適應k-最近鄰算法得研究 [J]., 計算機應用研究, 2006(2): 7 70 0 -7 7 2。
附件 1:
源代碼
KNN、m
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %
KNN、m
K-最近鄰分類算法 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% A=x ls rea d('E :\ 上課\機器學習\ 模式識別課件\ 數據\COR K_ STOPPEx RS、xls",2 ); f=zer os(150 ,5) ; f f( :, 1:2 )=A (1 :150, 3:4) ; f1 =A(1 :50 ,3 :4) ; f2= A(51:100 ,3 :4); f3= A( 101:15 0, 3:4); c cl s= zero s(1 50 ,10); o for
?。? 1:150
for j =1:1 50
c ls(i ,j )=norm (f(i ,1:2 )-f (j,1 :2));
end end % 對計算出得每個樣本與其她 150 個樣本( 包括自己)得距離排序,選 K=10 arr ay= zeros(300 ,11 ); f or ii =1:150
?。郏鯽l ue,inde x]=sort(cl s(i i, :));
arra y(2 *ii— 1,:) =val ue(1: 11);
a rray(2 *ii, :) =in dex(1 :1 1); end 類 %對每個樣本分類 fo r ii= 1:150
a11=length(f ind(array(2 *i i,: )〈50));
a12=l ength (f ind(arr ay (2*ii ,: )〉50 &a rr ay(2*i i,:)〈100 )); ;
a13=len gth (find (a rray (2 *ii ,:) 〉1 00 &array (2 *i i,:)<15)
?。埃? ;
if (max(max (a11,a12) ,a13)==a11)
f(ii,3 )=1;
else if (max (max(a11 ,a12) ,a1 3)==a12 )
f (ii,3)=2;
els e
f(i i,3 )=3 ;
end
en d
end % 錯誤計算 e rro r=ze ro s(3,5 ); for
i=1 :50
if(f (i,3 )= =2 )
error (1 ,2)= error (1,2 )+1 ;
end
if (f(i,3) ==3 )
?。錼r or(1 ,3 )= erro r(1 ,3 )+1 ;
end
if(f (5 0+i ,3)==1 )
er ror(2,1 )=erro r(2 ,1)+ 1;
end
if( f(5 0+i, 3)==3 )
err or( 2,3) =e rror(2,3)+1 ;
en d
if (f(100+ i,3)==1)
error (3 ,1)= erro r(3,1)+1;
end
i f(f(100+i, 3)== 2)
er ror (3 ,2)=er ro r(3,2 )+ 1;
?。錸d
e nd for
k =1:3 %D 第四列表示錯誤數 err or(k,4 )=err or (k ,1)+err or(k ,2 )+e rro r( k,3 ); error(k ,5) =err or(k ,4)/50 ; en d
推薦訪問: 數據挖掘 實驗 報告上一篇:有關安全自查報告匯總2020
下一篇:嵌入式,綜合應用實驗報告,(1)
同志們:今天這個大會,是市委全面落實黨要管黨、從嚴治黨要求的一項重大舉措,也是對縣市區委書記履行基層黨建工作第一責任人情況的一次集中檢閱,同時是對全市基層黨建工作的一次再部署、再落實的會議。前面,**
***年,我認真履行領班子、帶隊伍、抓黨員、保穩定的基層黨建工作思路,以學習貫徹習近平新時代中國特色社會主義思想和黨的十九大歷次全會精神為主線,以市局基層黨建工作考核細則為落腳點,落實全面從嚴治黨主體
根據會議安排,現將2022年履行抓基層黨建工作職責情況報告如下:一、履職工作特色和亮點1 突出政治建設,著力在思想認識上提高。牢固樹立抓黨建就是抓政績的理念,以“黨建工作抓引領、社區治理求突破,為民服
2022年以來,在**黨委的正確領導下,堅持以習近平新時代中國特色社會主義思想為指導,深入學習宣傳貫徹黨的二十大精神,以黨建工作為統領,扎實開展夯實“三個基本”活動,以“四化四力”行動為抓手,聚力創建
各位領導,同志們:根據會議安排,現就2022年度抓基層黨建工作情況匯報如下:一、主要做法及成效(一)強化政治引領。一是不斷強化理論武裝。堅持通過黨組會、中心組學習會和“三會一課”,第一時間、第一議題學
2022年度抓基層黨建工作述職報告按照黨委工作部署,現將本人2022年度抓基層黨建工作情況報告如下:一、2022年度抓基層黨建工作情況(一)旗幟鮮明講政治將旗幟鮮明講政治放在全局發展首要位置,積極開展
2022年,是我在數計系黨總支書記這個新崗位上度過的第一個完整的工作年度。回首一年來在校黨委的正確領導下,與數計系領導班子和全體師生共同走過的日子,艱辛歷歷在目,收獲溫潤心田。作為黨總支書記,我始終牢
按照考核要求,現將本人一年來,作為統戰部長履行職責、廉潔自律等方面情況報告如下:一、著眼增強政治素質,不斷深化理論學習堅持把旗幟鮮明講政治作為履職從政的第一位要求,帶領統戰系統干部堅決擁護“兩個確立”
**年,緊緊圍繞黨工委、管委會的決策部署,全體人員團結協作、凝心聚力,緊扣黨工委“**”基本工作思路,全力開拓進取,認真履職盡責,圓滿完成各項工作任務。一、個人思想政治狀況檸檬文苑www bgzjy
按照縣委關于開展抓基層黨建述職評議會議的有關要求,經請示縣委組織部同意,今天,我們在此召開2022年度基層黨組織書記抓基層黨建述職評議會議。1 首先,請**黨委書記,**同志述職。**黨委能夠主動研究