比如:
坐在餐館的用餐者。假設餐廳中有兩個桌子。桌子1中的人可能彼此相關,可能是一組家庭成員或同事。
類似的,桌子2中的人可能彼此相關。但是,當比較坐在兩個桌子的人時,他們是完全不同的,可能根本沒有關聯。
聚類也以相同的方式工作。一個聚類中的數據點與另一聚類中的數據點完全不同。同一聚類中的所有點都相同或彼此相關。
聚類具有不同的算法。最受歡迎的是K-均值聚類。
什麼是K均值聚類?
K-Means是一種聚類算法,其主要目標是將相似的元素或數據點分組為一個聚類。 K-均值中的「 K」代表簇數。
距離量度將確定兩個元素之間的相似性,並將影響簇的形狀。通常,歐幾裡得距離將用於K-Means聚類
歐幾裡得距離是「普通」直線。它是歐氏空間中兩點之間的距離。
K-Means算法如何工作?
輸入:樣本集D,簇的數目k,最大迭代次數N;
輸出:簇劃分(k個簇,使平方誤差最小);
算法步驟:
(1)為每個聚類選擇一個初始聚類中心;
(2)將樣本集按照最小距離原則分配到最鄰近聚類;
(3)使用每個聚類的樣本均值更新聚類中心;
(4)重複步驟(2)、(3),直到聚類中心不再發生變化;
(5)輸出最終的聚類中心和k個簇劃分;
SAS中的K-均值聚類
讓我們來看一個著名的IRIS數據集。使用proc檢查數據集
proc means data=work.iris N Nmiss mean median max min;run;它具有150個觀測值和5個變量。未檢測到缺失值或離群值。我們將僅使用四個變量,即sepal_length,sepal_width,petal_length和petal_width。數據集以「 cm」為單位。可以刪除「目標」變量,因為它是類別變量。
關於鳶尾花數據集的簡短介紹。這是一個多變量數據集,由英國統計學家 、 生物學家 羅納德·費舍爾(Ronald Fisher) 在1936年為他的研究論文引入 。
在分析數據集之前了解數據。
在運行聚類分析之前,我們需要將所有分析變量(實數變量)標準化為均值零和標準偏差為1(轉換為z分數)。在這裡,我們的數據集已經標準化。
/* 聚類分析 */method = centroid ccc print=15 outtree=Tree;METHOD => 確定過程使用的聚類方法。在這裡,我們使用CENTROID方法。
CCC 是聚類標準—它有助於找出最佳的聚類點。
需要找出最佳聚類簇。
前三個特徵值約佔總方差的99.48%,因此,建議使用三個聚類。但是,可以在ccc圖中對其進行交叉驗證。
從圖中看到,聚類標準有15個值(如我們在代碼輸出中給出的= 15)
從上面的CCC圖可以看出,肘部下降在3個聚類。因此,最佳群集將為3。
為了將150個觀測值中的每個觀測值分類為三個聚類,我們可以使用proc樹。ncl = 3(我們的最佳簇為3)。
proc tree noprint ncl=3 out=
150個觀察結果分為三類。
使用proc candisc和proc sgplot創建散點圖
/*生成散點圖 */
proc sgplot data = can;title "
我們可以看到,分析清楚地將三個聚類簇分開。聚類簇1為藍色, 2為紅色, 3為綠色。
K-均值聚類的優缺點
優點:
1)即使違背有些假設,也能很好地工作。
2)簡單,易於實現。
3)易於解釋聚類結果。
4)在計算成本方面快速高效。
缺點:
1)即使輸入數據具有不同的簇大小,均勻效果使得結果經常會產生大小相對一致的簇。
2)不同密度的數據可能不適用於聚類。
3)對異常值敏感。
4)在K均值聚類之前需要知道K值。
更多內容,請點擊左下角「閱讀原文」查看報告全文
關注我們
案例精選、技術乾貨 第一時間與您分享
長按二維碼加關注
更多內容,請點擊左下角「閱讀原文」查看報告全文