原文鏈接:http:///?p=17808什么是聚類?
比如: 坐在餐館的用餐者。假設(shè)餐廳中有兩個桌子。桌子1中的人可能彼此相關(guān),可能是一組家庭成員或同事。 類似的,桌子2中的人可能彼此相關(guān)。但是,當(dāng)比較坐在兩個桌子的人時,他們是完全不同的,可能根本沒有關(guān)聯(lián)。 聚類也以相同的方式工作。一個聚類中的數(shù)據(jù)點與另一聚類中的數(shù)據(jù)點完全不同。同一聚類中的所有點都相同或彼此相關(guān)。 聚類具有不同的算法。最受歡迎的是K-均值聚類。 什么是K均值聚類?K-Means是一種聚類算法,其主要目標是將相似的元素或數(shù)據(jù)點分組為一個聚類。 K-均值中的“ K”代表簇數(shù)。 距離量度將確定兩個元素之間的相似性,并將影響簇的形狀。通常,歐幾里得距離將用于K-Means聚類 歐幾里得距離是“普通”直線。它是歐氏空間中兩點之間的距離。 K-Means算法如何工作?輸入:樣本集D,簇的數(shù)目k,最大迭代次數(shù)N; 輸出:簇劃分(k個簇,使平方誤差最?。?; 算法步驟: (1)為每個聚類選擇一個初始聚類中心; (2)將樣本集按照最小距離原則分配到最鄰近聚類; (3)使用每個聚類的樣本均值更新聚類中心; (4)重復(fù)步驟(2)、(3),直到聚類中心不再發(fā)生變化; (5)輸出最終的聚類中心和k個簇劃分; SAS中的K-均值聚類讓我們來看一個著名的IRIS數(shù)據(jù)集。使用proc檢查數(shù)據(jù)集
/* 檢查數(shù)據(jù)內(nèi)容 */ proc means data=work.iris N Nmiss mean median max min; run; 它具有150個觀測值和5個變量。未檢測到缺失值或離群值。我們將僅使用四個變量,即sepal_length,sepal_width,petal_length和petal_width。數(shù)據(jù)集以“ cm”為單位??梢詣h除“目標”變量,因為它是類別變量。 關(guān)于鳶尾花數(shù)據(jù)集的簡短介紹。這是一個多變量數(shù)據(jù)集,由英國統(tǒng)計學(xué)家 、 生物學(xué)家 羅納德·費舍爾(Ronald Fisher) 在1936年為他的研究論文引入 。 在分析數(shù)據(jù)集之前了解數(shù)據(jù)。
/* 刪除目標列將新數(shù)據(jù)保存為IRIS1 */
drop target; run; 在運行聚類分析之前,我們需要將所有分析變量(實數(shù)變量)標準化為均值零和標準偏差為1(轉(zhuǎn)換為z分數(shù))。在這里,我們的數(shù)據(jù)集已經(jīng)標準化。
/* 聚類分析 */ method = centroid ccc print=15 outtree=Tree; METHOD => 確定過程使用的聚類方法。在這里,我們使用CENTROID方法。 需要找出最佳聚類簇。 前三個特征值約占總方差的99.48%,因此,建議使用三個聚類。但是,可以在ccc圖中對其進行交叉驗證。 從圖中看到,聚類標準有15個值(如我們在代碼輸出中給出的= 15) 從上面的CCC圖可以看出,肘部下降在3個聚類。因此,最佳群集將為3。 為了將150個觀測值中的每個觀測值分類為三個聚類,我們可以使用proc樹。ncl = 3(我們的最佳簇為3)。
/* 保留 3個聚類 */ proc tree noprint ncl=3 out= 150個觀察結(jié)果分為三類。 使用proc candisc和proc sgplot創(chuàng)建散點圖
/*生成散點圖 */
proc sgplot data = can; title " 我們可以看到,分析清楚地將三個聚類簇分開。聚類簇1為藍色, 2為紅色, 3為綠色。 K-均值聚類的優(yōu)缺點 優(yōu)點: 1)即使違背有些假設(shè),也能很好地工作。 2)簡單,易于實現(xiàn)。 3)易于解釋聚類結(jié)果。 4)在計算成本方面快速高效。 缺點: 1)即使輸入數(shù)據(jù)具有不同的簇大小,均勻效果使得結(jié)果經(jīng)常會產(chǎn)生大小相對一致的簇。 2)不同密度的數(shù)據(jù)可能不適用于聚類。 3)對異常值敏感。 4)在K均值聚類之前需要知道K值。 |
|
來自: 拓端數(shù)據(jù) > 《待分類》