利用聚類分析,我們可以很容易地看清數(shù)據(jù)集中樣本的分布情況。以往介紹聚類分析的文章中通常只介紹如何處理連續(xù)型變量,這些文字并沒有過多地介紹如何處理混合型數(shù)據(jù)(如同時(shí)包含連續(xù)型變量、名義型變量和順序型變量的數(shù)據(jù))。本文將利用 Gower 距離、PAM(partitioning around medoids)算法和輪廓系數(shù)來介紹如何對(duì)混合型數(shù)據(jù)做聚類分析。
本文主要分為三個(gè)部分:
- 距離計(jì)算
- 聚類算法的選擇
- 聚類個(gè)數(shù)的選擇
為了介紹方便,本文直接使用 ISLR 包中的 College 數(shù)據(jù)集。該數(shù)據(jù)集包含了自 1995 年以來美國大學(xué)的 777 條數(shù)據(jù),其中主要有以下幾個(gè)變量:
- 連續(xù)型變量
- 錄取率
- 學(xué)費(fèi)
- 新生數(shù)量
- 分類型變量
- 公立或私立院校
- 是否為高水平院校,即所有新生中畢業(yè)于排名前 10% 高中的新生數(shù)量占比是否大于 50%
本文中涉及到的R包有:


In [5]:


距離計(jì)算
聚類分析的第一步是定義樣本之間距離的度量方法,最常用的距離度量方法是歐式距離。然而歐氏距離只適用于連續(xù)型變量,所以本文將采用另外一種距離度量方法—— Gower 距離。
Gower 距離
Gower 距離的定義非常簡(jiǎn)單。首先每個(gè)類型的變量都有特殊的距離度量方法,而且該方法會(huì)將變量標(biāo)準(zhǔn)化到[0,1]之間。接下來,利用加權(quán)線性組合的方法來計(jì)算最終的距離矩陣。不同類型變量的計(jì)算方法如下所示:
- 連續(xù)型變量:利用歸一化的曼哈頓距離
- 順序型變量:首先將變量按順序排列,然后利用經(jīng)過特殊調(diào)整的曼哈頓距離
- 名義型變量:首先將包含 k 個(gè)類別的變量轉(zhuǎn)換成 k 個(gè) 0-1 變量,然后利用 Dice 系數(shù)做進(jìn)一步的計(jì)算
- 優(yōu)點(diǎn):通俗易懂且計(jì)算方便
- 缺點(diǎn):非常容易受無標(biāo)準(zhǔn)化的連續(xù)型變量異常值影響,所以數(shù)據(jù)轉(zhuǎn)換過程必不可少;該方法需要耗費(fèi)較大的內(nèi)存
利用 daisy 函數(shù),我們只需要一行代碼就可以計(jì)算出 Gower 距離。需要注意的是,由于新生入學(xué)人數(shù)是右偏變量,我們需要對(duì)其做對(duì)數(shù)轉(zhuǎn)換。daisy 函數(shù)內(nèi)置了對(duì)數(shù)轉(zhuǎn)換的功能,你可以調(diào)用幫助文檔來獲取更多的參數(shù)說明。


此外,我們可以通過觀察最相似和最不相似的樣本來判斷該度量方法的合理性。本案例中,圣托馬斯大學(xué)和約翰卡羅爾大學(xué)最相似,而俄克拉荷馬科技和藝術(shù)大學(xué)和哈佛大學(xué)差異最大。

Out[7]:


Out[8]:

聚類算法的選擇
現(xiàn)在我們已經(jīng)計(jì)算好樣本間的距離矩陣,接下來需要選擇一個(gè)合適的聚類算法,本文采用 PAM(partioniong around medoids)算法來構(gòu)建模型:
PAM 算法的主要步驟:
- 隨機(jī)選擇 k 個(gè)數(shù)據(jù)點(diǎn),并將其設(shè)為簇中心點(diǎn)
- 遍歷所有樣本點(diǎn),并將樣本點(diǎn)歸入最近的簇中
- 對(duì)每個(gè)簇而言,找出與簇內(nèi)其他點(diǎn)距離之和最小的點(diǎn),并將其設(shè)為新的簇中心點(diǎn)
- 重復(fù)第2步,直到收斂
該算法和 K-means 算法非常相似。事實(shí)上,除了中心點(diǎn)的計(jì)算方法不同外,其他步驟都完全一致。
- 優(yōu)點(diǎn):簡(jiǎn)單易懂且不易受異常值所影響
-
缺點(diǎn):算法時(shí)間復(fù)雜度為:公式o(n2)
聚類個(gè)數(shù)的選擇
我們將利用輪廓系數(shù)來確定最佳的聚類個(gè)數(shù),輪廓系數(shù)是一個(gè)用于衡量聚類離散度的內(nèi)部指標(biāo),該指標(biāo)的取值范圍是[-1,1],其數(shù)值越大越好。通過比較不同聚類個(gè)數(shù)下輪廓系數(shù)的大小,我們可以看出當(dāng)聚類個(gè)數(shù)為 3 時(shí),聚類效果最好。
[站外圖片上傳中……(12)]
[站外圖片上傳中……(13)]
聚類結(jié)果解釋
描述統(tǒng)計(jì)量
聚類完畢后,我們可以調(diào)用 summary 函數(shù)來查看每個(gè)簇的匯總信息。從這些匯總信息中我們可以看出:簇1主要是中等學(xué)費(fèi)且學(xué)生規(guī)模較小的私立非頂尖院校,簇2主要是高收費(fèi)、低錄取率且高畢業(yè)率的私立頂尖院校,而簇3則是低學(xué)費(fèi)、低畢業(yè)率且學(xué)生規(guī)模較大的公立非頂尖院校。
[站外圖片上傳中……(14)]
[站外圖片上傳中……(15)]
[站外圖片上傳中……(16)]
[站外圖片上傳中……(17)]
PAM 算法的另一個(gè)優(yōu)點(diǎn)是各個(gè)簇的中心點(diǎn)是實(shí)際的樣本點(diǎn)。從聚類結(jié)果中我們可以看出,圣弗朗西斯大學(xué)是簇1 的中心點(diǎn),巴朗德學(xué)院是簇2 的中心點(diǎn),而密歇根州州立大學(xué)河谷大學(xué)是簇3 的中心點(diǎn)。
[站外圖片上傳中……(18)]
Out[19]:
[站外圖片上傳中……(19)]
可視化方法
t-SNE 是一種降維方法,它可以在保留聚類結(jié)構(gòu)的前提下,將多維信息壓縮到二維或三維空間中。借助t-SNE我們可以將 PAM 算法的聚類結(jié)果繪制出來,有趣的是私立頂尖院校和公立非頂尖院校這兩個(gè)簇中間存在一個(gè)小聚類簇。
[站外圖片上傳中……(20)]
[站外圖片上傳中……(21)]
進(jìn)一步探究可以發(fā)現(xiàn),這一小簇主要包含一些競(jìng)爭(zhēng)力較強(qiáng)的公立院校,比如弗吉尼亞大學(xué)和加州大學(xué)伯克利分校。雖然無法通過輪廓系數(shù)指標(biāo)來證明多分一類是合理的,但是這 13 所院校的確顯著不同于其他三個(gè)簇的院校。
[站外圖片上傳中……(22)]
Out[25]:
[站外圖片上傳中……(23)]
原文鏈接:https://dpmartin42.github.io/blogposts/r/cluster-mixed-types
原文作者:Daniel P.Martin
譯者:Fibears
