無監督機器學習中,最常見4類聚類演算法總結
「2019 Python開發者日」,購票請掃碼諮詢
編譯 | 安然、狄思雲
來源 | 讀芯術(ID:AI_Discovery)
在機器學習過程中,很多數據都具有特定值的目標變數,我們可以用它們來訓練模型。
但是,大多數情況下,在處理實際問題時,數據不會帶有預定義標籤,因此我們需要開發能夠對這些數據進行正確分類的機器學習模型,通過發現這些特徵中的一些共性,來預測新數據的類。
無監督學習分析過程
開發無監督學習模型需遵循的整個過程,總結如下:
無監督學習的主要應用是:
按某些共享屬性對數據集進行分段。
檢測不適合任何組的異常。
通過聚合具有相似屬性的變數來簡化數據集。
總之,主要目標是研究數據的內在(和通常隱藏)的結構。
這種技術可以濃縮為無監督學習試圖解決的兩種主要類型的問題。如下所示:
聚類
維度降低
在本文中,我們將重點關注聚類問題。
聚類分析
在基本術語中,聚類的目的是在數據中的元素內找到不同的組。為此,聚類演算法在數據中找到結構,以使相同聚類(或組)的元素彼此比來自不同聚類的元素更相似。
以可視方式想像一下,我們有一個電影數據集,並希望對它們進行分類。我們對電影有如下評論:
機器學習模型將能夠在不知道數據的任何其他內容的情況下推斷出兩個不同的類。
這些無監督學習演算法具有令人難以置信的廣泛應用,並且對於解決諸如音樂、文檔或電影分組之類的實際問題,以及基於其購買來找到具有共同興趣的客戶非常有用。
下面是一些最常見的聚類演算法:
K均值聚類
分層聚類
基於密度的掃描聚類(DBSCAN)
高斯聚類模型
K均值聚類
K均值演算法非常容易實現,並且在計算上非常有效。這是它為何如此受歡迎的主要原因。但是,在非球形的群體中識別類別並不是很好。
關鍵概念
平方歐幾里德距離(Squared Euclidean Distance)
K均值中最常用的距離是歐氏距離平方。m維空間中兩點x和y之間的距離的示例是:
這裡,j是採樣點x和y的第j維(或特徵列)。
集群慣性
集群慣性是聚類上下文中給出的平方誤差之和的名稱,表示如下:
其中μ(j)是簇j的質心,並且如果樣本x(i)在簇j中則w(i,j)是1,否則是0。
K均值可以理解為試圖最小化群集慣性因子的演算法。
演算法步驟
1. 選擇k值,即我們想要查找的聚類數量。
2. 演算法將隨機選擇每個聚類的質心。
3. 將每個數據點分配給最近的質心(使用歐氏距離)。
4. 計算群集慣性。
5. 將計算新的質心作為屬於上一步的質心的點的平均值。換句話說,通過計算數據點到每個簇中心的最小二次誤差,將中心移向該點。
6. 返回第3步。
K-Means超參數
簇數:要生成的簇和質心數。
最大迭代次數:單次運行的演算法。
數字首字母:演算法將使用不同的質心種子運行的次數。根據慣性,最終結果將是連續運行定義的最佳輸出。
K-Means的挑戰
· 任何固定訓練集的輸出都不會始終相同,因為初始質心是隨機設置的,會影響整個演算法過程。
· 如前所述,由於歐幾里德距離的性質,在處理採用非球形形狀的聚類時,其不是一種合適的演算法。
應用K均值時要考慮的要點
必須以相同的比例測量特徵,因此可能需要執行z-score標準化或max-min縮放。
處理分類數據時,我們將使用get dummies功能。
探索性數據分析(EDA)非常有助於概述數據並確定K-Means是否為最合適的演算法。
當存在大量列時,批訓練(minibatch)的方法非常有用,但是不太準確。
如何選擇正確的K值
選擇正確數量的聚類是K-Means演算法的關鍵點之一。要找到這個數字,有一些方法:
領域知識
商業決策
肘部法則
由於與數據科學的動機和性質相一致,肘部法則是首選方法,因為它依賴於支持數據的分析方法來做出決定。
肘部法則
肘部法則用於確定數據集中正確的簇數。它的工作原理是繪製K的上升值與使用該K時獲得的總誤差。
目標是找到每個群集不會顯著上升方差的k。
在這種情況下,我們將選擇肘部所在的k = 3。
K均值限制
雖然K均值是一種很好的聚類演算法,但是當我們事先知道聚類的確切數量以及處理球形分布時,它是最有用的。
下圖顯示了如果我們在每個數據集中使用K均值聚類,即使我們事先知道聚類的確切數量,我們將獲得什麼:
將K均值演算法作為評估其他聚類方法性能的基準是很常見的。
分層聚類
分層聚類是基於prototyope的聚類演算法的替代方案。分層聚類的主要優點是不需要指定聚類的數量,它會自己找到它。此外,它還可以繪製樹狀圖。樹狀圖是二元分層聚類的可視化。
在底部融合的觀察是相似的,而在頂部的觀察是完全不同的。對於樹狀圖,基於垂直軸的位置而不是水平軸的位置進行結算。
分層聚類的類型
這種類型的聚類有兩種方法:集聚和分裂。
分裂:此方法首先將所有數據點放入一個集群中。 然後,它將迭代地將簇分割成較小的簇,直到它們中的每一個僅包含一個樣本。
集聚:此方法從每個樣本作為不同的集群開始,然後將它們彼此靠近,直到只有一個集群。
單鏈接和完整鏈接
這些是用於凝聚層次聚類的最常用演算法。
單鏈接
作為一種凝聚演算法,單鏈接首先假設每個樣本點都是一個簇。然後,它計算每對聚類的最相似成員之間的距離,併合並兩個聚類,其中最相似成員之間的距離最小。
完整鏈接
雖然與單鏈接類似,但其理念恰恰相反,它比較了一對集群中最不相似的數據點來進行合併。
分層聚類的優點
由此產生的層次結構表示可以提供非常豐富的信息。
樹狀圖提供了一種有趣且信息豐富的可視化方式。
當數據集包含真正的層次關係時,它們特彆強大。
分層聚類的缺點
分層聚類對異常值非常敏感,並且在其存在的情況下,模型性能顯著降低。
從計算上講,分層聚類非常昂貴。
基於密度的雜訊應用空間聚類(DBSCAN)
DBSCAN是另一種特別用於正確識別數據中的雜訊的聚類演算法。
DBSCAN分配標準
它基於具有指定半徑ε的多個點,並且為每個數據點分配了特殊標籤。分配此標籤的過程如下:
它是指定數量(MinPts)的相鄰點。 如果存在落在ε半徑內的此MinPts點數,則將分配核心點。
邊界點將落在核心點的ε半徑內,但相鄰數將少於MinPts數。
每隔一點都是噪點。
DBSCAN 演算法
該演算法遵循以下邏輯:
1. 確定核心點並為每個核心點或每個連接的核心點組成一個組(如果它們滿足標準為核心點)。
2. 確定邊界點並將其分配給各自的核心點。
下圖總結了這個過程和注釋符號。
DBSCAN與K均值聚類
DBDSCAN的優點
我們不需要指定群集的數量。
集群可採用的形狀和大小具有高度靈活性。
識別和處理雜訊數據和異常值非常有用。
DBSCAN 的缺點
處理兩個集群可到達的邊界點時比較困難。
它沒有找到不同密度的井簇。
高斯混合模型 (GMM)
高斯混合模型是概率模型,其假設所有樣本是從具有未知參數的有限數量的高斯分布的混合生成的。
它屬於軟群集演算法組,其中每個數據點都屬於數據集中存在的每個群集,但每個群集的成員資格級別不同。此成員資格被指定為屬於某個群集的概率,範圍從0到1。
例如,突出顯示的點將同時屬於集群A和B,但由於其與它的接近程度而具有更高的集群A的成員資格。
GMM假設每個聚類遵循概率分布,可以是高斯分布或正態分布。它是K-Means聚類的推廣,包括有關數據的協方差結構以及潛在高斯中心的信息。
一維GMM分布
GMM將在數據集中搜索高斯分布並將它們混合。
二維GMM
當具有的多變數分布如下時,對於數據集分布的每個軸,平均中心將是μ σ。
GMM 演算法
它是一種期望最大化演算法,該過程可概括如下:
1.初始化K高斯分布,可通過μ(平均值)和σ(標準偏差)值來實現。也可從數據集(天真方法)或應用K-Means中獲取。
2.軟聚類數據:這是「期望」階段,其中所有數據點將分配給具有各自成員級別的每個聚類。
3.重新估計高斯分布:這是「最大化」階段,該階段會對期望進行檢查並且將其用於計算高斯的新參數中:新μ和σ。
4.評估數據的對數似然性以檢查收斂。日誌的相似度越高,我們創建的模型的混合可能越適合數據集。所以,這是最大化的功能。
5.從步驟2開始重複直到收斂。
GMM 的優點
它是一種軟聚類方法,可將樣本成員分配給多個聚類。這一特性使其成為學習混合模型的最快演算法。
集群的數量和形狀具有很高的靈活性。
GMM 的缺點
它對初始值非常敏感,這將極大地影響其性能。
GMM可能會收斂到局部最小值,這將是次優解決方案。
當每個混合物的點數不足時,演算法會發散並找到具有無限可能性的解,除非人為地規範數據點之間的協方差。
聚類驗證
聚類驗證是客觀和定量評估聚類結果的過程。我們將通過應用集群驗證索引來進行此驗證。主要有三類:
外部指數
這些是我們在標記原始數據時使用的評分方法,這不是這類問題中最常見的情況。我們將一個聚類結構與事先已知的信息相匹配。
最常用的索引是Adjusted Rand索引。
調整後的蘭特指數(ARI)€[-1,1]
我們應首先對其組件進行定義,以便了解:
a:是C和K中同一群集中的點數
b:是C和K中不同群集中的點數。
n =是樣本總數
ARI可以獲得從-1到1的值。值越高,它與原始數據匹配越好。
內部驗證指數
在無監督學習中,我們將使用未標記的數據,這時內部索引更有用。
最常見的指標之一是輪廓係數。
剪影係數:
每個數據點都有一個輪廓係數。
a =同一群集中與其他樣本i的平均距離
b =最近鄰集群中與其他樣本i的平均距離
輪廓係數(SC)的值是從-1到1。值越高,選擇的K值越好。但是相對於沒有達到理想值的情況,超過理想的K值對我們會更加不利。
輪廓係數僅適用於某些演算法,如K-Means和層次聚類。它不適合與DBSCAN一起使用,我們將使用DBCV代替。
※如何讓AI教機器自己玩俄羅斯方塊?
※Python如何爬取實時變化的WebSocket數據
TAG:AI科技大本營 |