黃玉珠
【摘 要】 k均值聚類算法是一種常見的對數據進行分類的算法。本文通過k均值聚類算法對UCI數據庫中的Glass Identification數據集進行分析,最后將分類結果與真實結果比較,觀察分類是否準確,從而實現k均值聚類算法的數據分析。
【關鍵詞】 k均值聚類算法 數據分析 分類
1 引言
聚類分析是數據挖掘的一個發現信息的方法,已經被人們深入的研究了很長時間,主要的是對基于距離的聚類分析的研究。聚類是一種無監督的學習,而分類正好與它相反,分類是一種有監督的學習,聚類主要是劃分無標記的對象,使這些無標記的對象變的有意義,對預先定義的類與帶類標記的訓練實例不具有依賴性。所以聚類分析在我們的日常生活中的應用范圍非常廣泛:
(1)在商業上,聚類可以根據消費者數據庫里面所記錄的數據信息,對消費者進行劃分,根據各個消費者的特征,以幫助市場營銷員按照市場需求及時調整貨物的擺放次序等一系列營銷計劃的實施;
(2)在社會學中,聚類用來發現目前社會結構組成中潛在的社會結構;
(3)在網絡挖掘中對互聯網上批量的數據信息進行有效的劃分與分類,實現信息的有效利用,對數據信息檢索效率方面有顯著提高;
(4)在生物信息學中,在大量的基因群中發現功能相似的基因組,對基因因功能不同進行劃分對其固有的結構特征進行分析,來更好的為我們的醫學發展提供有利條件;
(5)在空間數據庫領域,聚類分析能對相似地理特征區域及它們的人和環境的不同特征進行識別,來研究地域文化提供條件。
本文主要基于k均值聚類算法對數據進行實例分析,通過比較分類結果的準確率,研究k均值聚類算法的分類效果。
2 基于K均值聚類算法的數據分析
2.1 K均值聚類算法。聚類是一種無監督的學習方法。所謂無監督學習是指事先并不知道要尋找的內容,即沒有目標變量。聚類將數據點歸到多個簇中,其中相似數據點處于同一簇,而不相似數據點處于不同簇中。聚類中可以使用多種不同的方法來計算相似度。本文使用了聚類算法中的k均值聚類,由于該算法的簡潔和效率,使得它成為所有聚類算法中最廣泛使用的。該算法首先先隨機選取K個對象作為初始的聚類中心;然后計算每個對象與各個種子聚類中心之間的距離,把每個對象分配給距離它最近的聚類中心,聚類中心以及分配給它們的對象就代表一個聚類,一旦全部對象都被分配了,每個聚類的聚類中心會根據聚類中現有的對象被重新計算。這個過程將不斷重復直到滿足某個終止條件。終止條件可以是以下任何一個:
1)沒有(或最小數目)對象被重新分配給不同的聚類。
2)沒有(或最小數目)聚類中心再發生變化。
3)誤差平方和局部最小。
2.2 實例分析。本文使用了K均值聚類算法對玻璃數據進行分析,這是一種分類簡單快速的算法,但是也有很大的限制性,比如對極端值的變化非常敏感。現在我們假設只知道關于玻璃數據中9個特征指標的值,通過使用K均值聚類算法來將數據進行分類,最后通過與真實分類結果比較,看分類結果是否準確。
2.2.1數據集介紹。通過選取UCI數據庫中的Glass Identification數據集進行分析,該數據集對玻璃種類分類的研究有利于犯罪學的調查研究。該數據集包括了用于進行玻璃分類的9種特征,分別為折射率(RI)、以及玻璃中的鈉(Na)、鎂(Mg)、鋁(AI)、硅(Si)、鉀(K)、鈣(Ca)、鋇(Ba)、鐵(Fe)含量,所有數據都為連續型變量。
整個數據集共214個樣本,將玻璃分為7類,分別是經過浮動處理的建筑物窗戶、未經過浮動處理的建筑物窗戶、經過浮動處理的車輛窗戶、為經過浮動處理的車輛窗戶(該數據集中未出現)、容器、餐具、吊燈。
2.2.2數據預處理。為了便于與真實分類結果的比較,這里將數據集處理為兩種狀態:一種是只包括關于玻璃的9個特征指標的值,即去掉其中的玻璃分類標簽;另一種是只包含玻璃分類的真實標簽。
2.2.3數據分析。通過使用python3.7軟件實現K均值聚類分析算法,對玻璃數據進行分析得出結果,如圖1。從圖1可以看出,每個顏色代表一種分類,每一類分類明顯,雖然存在個別異常值,但是大致將玻璃分為6類,似乎分類結果還不錯。但是將該結果與真實結果比較后發現,準確率卻只有24.77%,分類效果很不理想。進一步觀察分類結果圖,可以發現有很多點都偏離各簇,這說明了K均值聚類可能因其非常容易受異常值的影響,導致分類不準確。
3 結論
經過對K均值算法進行實例分析,發現該算法雖然原理簡單,容易實現,但是有許多需要改進的地方,其中一點是對噪聲和離群值非常敏感,還有一點就是收斂太慢,只是收斂到了局部最小值,而并非全局最小值(局部最小值指結果還可以但并非最好結果,全局最小值是可能的最好結果)。
為克服K-均值算法收斂于局部最小值的問題,所以可以引入二分K-均值對算法進行優化,該算法首先將所有點作為一個簇,然后將該簇一分為二,之后選擇其中一個簇繼續進行劃分,選擇哪一個簇進行劃分取決于對"其劃分是否可以最大程度降低SSE(Sum of Squared Error,誤差平方和)的值,上述基于SSE的劃分過程不斷重復,直到得到用戶指定的簇數目為止。
上述的K-均值算法以及二分K-均值算法并非僅有的聚類算法, 另外稱為層次聚類的方法也被廣泛使用。
【參考文獻】
[1] 易燕飛.基于K-means聚類的數據分析.現代制造技術與裝備.2017,4:8-13.