SAS用K-Means 聚類最優(yōu)k值的選取和分析
原文鏈接:http://tecdat.cn/?p=17808
原文出處:拓端數(shù)據(jù)部落公眾號(hào)
?
什么是聚類?
“聚類是將數(shù)據(jù)集分為幾組的過程,其中包括相似的數(shù)據(jù)點(diǎn)”。聚類是一種無監(jiān)督的機(jī)器學(xué)習(xí),在您擁有未標(biāo)記的數(shù)據(jù)時(shí)使用。
比如:
坐在餐館的用餐者。假設(shè)餐廳中有兩個(gè)桌子。桌子1中的人可能彼此相關(guān),可能是一組家庭成員或同事。
類似的,桌子2中的人可能彼此相關(guān)。但是,當(dāng)比較坐在兩個(gè)桌子的人時(shí),他們是完全不同的,可能根本沒有關(guān)聯(lián)。
聚類也以相同的方式工作。一個(gè)聚類中的數(shù)據(jù)點(diǎn)與另一聚類中的數(shù)據(jù)點(diǎn)完全不同。同一聚類中的所有點(diǎn)都相同或彼此相關(guān)。
聚類具有不同的算法。最受歡迎的是K-均值聚類。
?
什么是K均值聚類?
K-Means是一種聚類算法,其主要目標(biāo)是將相似的元素或數(shù)據(jù)點(diǎn)分組為一個(gè)聚類。?K-均值中的“ K”代表簇?cái)?shù)。
距離量度將確定兩個(gè)元素之間的相似性,并將影響簇的形狀。通常,歐幾里得距離將用于K-Means聚類
歐幾里得距離是“普通”直線。它是歐氏空間中兩點(diǎn)之間的距離。

?
K-Means算法如何工作?
輸入:樣本集D,簇的數(shù)目k,最大迭代次數(shù)N;
輸出:簇劃分(k個(gè)簇,使平方誤差最?。?/p>
算法步驟:
(1)為每個(gè)聚類選擇一個(gè)初始聚類中心;
(2)將樣本集按照最小距離原則分配到最鄰近聚類;
(3)使用每個(gè)聚類的樣本均值更新聚類中心;
(4)重復(fù)步驟(2)、(3),直到聚類中心不再發(fā)生變化;
(5)輸出最終的聚類中心和k個(gè)簇劃分;
?
SAS中的K-均值聚類
讓我們來看一個(gè)著名的IRIS數(shù)據(jù)集。使用proc檢查數(shù)據(jù)集
/* 檢查數(shù)據(jù)內(nèi)容 */
proc means data=work.iris N Nmiss mean median max min;
run;
它具有150個(gè)觀測(cè)值和5個(gè)變量。未檢測(cè)到缺失值或離群值。我們將僅使用四個(gè)變量,即sepal_length,sepal_width,petal_length和petal_width。數(shù)據(jù)集以“ cm”為單位??梢詣h除“目標(biāo)”變量,因?yàn)樗穷悇e變量。
關(guān)于鳶尾花數(shù)據(jù)集的簡(jiǎn)短介紹。這是一個(gè)多變量數(shù)據(jù)集,由英國(guó)統(tǒng)計(jì)學(xué)家?、?生物學(xué)家?羅納德·費(fèi)舍爾(Ronald Fisher)?在1936年為他的研究論文引入?。
?在分析數(shù)據(jù)集之前了解數(shù)據(jù)。
/* 刪除目標(biāo)列將新數(shù)據(jù)保存為IRIS1 */
drop target;
run;
在運(yùn)行聚類分析之前,我們需要將所有分析變量(實(shí)數(shù)變量)標(biāo)準(zhǔn)化為均值零和標(biāo)準(zhǔn)偏差為1(轉(zhuǎn)換為z分?jǐn)?shù))。在這里,我們的數(shù)據(jù)集已經(jīng)標(biāo)準(zhǔn)化。
/* 聚類分析 */
method = centroid ccc print=15 outtree=Tree;
METHOD =>?確定過程使用的聚類方法。在這里,我們使用CENTROID方法。
CCC 是聚類標(biāo)準(zhǔn)—它有助于找出最佳的聚類點(diǎn)。

?
需要找出最佳聚類簇。
前三個(gè)特征值約占總方差的99.48%,因此,建議使用三個(gè)聚類。但是,可以在ccc圖中對(duì)其進(jìn)行交叉驗(yàn)證。
?

?
從圖中看到,聚類標(biāo)準(zhǔn)有15個(gè)值(如我們?cè)诖a輸出中給出的= 15)

?
?
從上面的CCC圖可以看出,肘部下降在3個(gè)聚類。因此,最佳群集將為3。??
為了將150個(gè)觀測(cè)值中的每個(gè)觀測(cè)值分類為三個(gè)聚類,我們可以使用proc樹。ncl = 3(我們的最佳簇為3)。
/* 保留 3個(gè)聚類 ? */
proc tree noprint ncl=3 out=

?
150個(gè)觀察結(jié)果分為三類。
使用proc candisc和proc sgplot創(chuàng)建散點(diǎn)圖
/*生成散點(diǎn)圖 */
proc sgplot data = can;
title "
?

?
我們可以看到,分析清楚地將三個(gè)聚類簇分開。聚類簇1為藍(lán)色, 2為紅色, 3為綠色。
K-均值聚類的優(yōu)缺點(diǎn)
優(yōu)點(diǎn):
1)即使違背有些假設(shè),也能很好地工作。
2)簡(jiǎn)單,易于實(shí)現(xiàn)。
3)易于解釋聚類結(jié)果。
4)在計(jì)算成本方面快速高效。
缺點(diǎn):
1)即使輸入數(shù)據(jù)具有不同的簇大小,均勻效果使得結(jié)果經(jīng)常會(huì)產(chǎn)生大小相對(duì)一致的簇。
2)不同密度的數(shù)據(jù)可能不適用于聚類。
3)對(duì)異常值敏感。
4)在K均值聚類之前需要知道K值。
?

最受歡迎的見解
1.R語言k-Shape算法股票價(jià)格時(shí)間序列聚類
2.R語言中不同類型的聚類方法比較
3.R語言對(duì)用電負(fù)荷時(shí)間序列數(shù)據(jù)進(jìn)行K-medoids聚類建模和GAM回歸
4.r語言鳶尾花iris數(shù)據(jù)集的層次聚類
5.Python Monte Carlo K-Means聚類實(shí)戰(zhàn)
6.用R進(jìn)行網(wǎng)站評(píng)論文本挖掘聚類
7.用于NLP的Python:使用Keras的多標(biāo)簽文本LSTM神經(jīng)網(wǎng)絡(luò)
8.R語言對(duì)MNIST數(shù)據(jù)集分析 探索手寫數(shù)字分類數(shù)據(jù)
9.R語言基于Keras的小數(shù)據(jù)集深度學(xué)習(xí)圖像分類