無監督機器學習算法:聚類

聚類是另一種無監督機器學習方法,該方法將數據點分為相似的組,稱之為“類”。一個類包含來自數據集的一個觀察子集,同一類中的所有觀察值都被認為是“相似的”。每個類裡觀測值彼此之間接近(稱為內聚),兩個不同的類裡的觀測值彼此遠離或者儘可能不同(稱為分離)。下圖描述了類的內聚和分離。

無監督機器學習算法:聚類

聚類算法在許多投資問題中特別有用。例如,在對公司進行分組時,類可以發現公司之間的重要相似性和差異性,而這些相似性和差異性可能不會被標準的行業分類所捕捉。在投資組合管理中,聚類方法被用來改善投資組合的多樣化。

在實踐中,專家判斷在聚類算法中起著一定的作用。首先,專家必須確定什麼是“相似”。每個公司都可以被認為是一個具有多種特徵的觀察值,包含營業收入、利潤、財務比率等財務數值,以及其他潛在的模型輸入值。有了這些特徵值,兩個觀測值之間的相似度或“距離”就可以被定義。距離越小,觀測結果越相似;距離越大,觀測結果越不相似。

一個常用的定義方法是歐幾里得距離,即兩點之間的直線距離。在機器學習中,經常使用的距離度量有十餘種。在實踐中,距離度量的選擇取決於數據的性質(是否是數值)和被分析的業務類別。

一旦定義了相關的距離度量,我們就可以將類似的觀測結果分在一起。我們現在介紹兩種比較流行的聚類方法:K-Means和分層聚類。

K-Means

K-Means是一種相對較老的算法,它將觀察值重複劃分為一個固定的數字k(不重疊的類)。類的數量k是一個模型超參數,它的值由研究人員在學習開始之前設置。每個類由它的形心(centroid,即中心)定義,每個觀測值都由算法分配到與該觀測值最接近的形心的類中。

K-Means算法遵循迭代過程。如下表所示,k=3和一組關於變量的觀察結果可以用兩個特徵來描述。

在表中,水平軸和垂直軸分別代表第一和第二特徵。例如,投資分析師可能希望將一組公司用兩個測量標準分成三類。

算法將觀測數據按以下步驟進行分類:

1、首先確定k(本例為3)個初始隨機形心的位置。

2、算法分析每個觀測值的特徵。基於使用的距離度量,K-Means將每個觀測值分配給最近的形心(類由形心定義)。

3、藉助每個類中的觀測值,K-Means算法在計算每個類新的(k個)形心(形心是觀測值的平均值)。

4、然後將觀測結果重新分配到新的形心,根據觀測結果對類重新定義。

5、再次進行新的(k個)形心及類的確定過程。

K-Means算法將繼續迭代,直到沒有觀察結果被重新分配到另一個新的類(即不需要重新計算新的形心)。該算法最終收斂並得到最後的K個類及類內的觀察值。在k=3的約束下,K-Means算法最小化了類內的距離(內聚最大化),最大化了類間距離(分離最大化)。

無監督機器學習算法:聚類

K-Means算法速度快,在擁有上億個觀測數據的數據集上運行良好。但是,類的最終分配可能取決於形心的初始位置。為了解決這個問題,可以使用不同的形心多次運行該算法,然後根據業務目的選擇最有用的分類。

這種技術的一個限制是,在運行K-Means之前,必須確定類的數量(超參數k)。

因此,我們需要知道,研究問題及分析數據集,選擇多少個類是合理的。或者,可以選擇k的取值範圍,通過運行算法找到最優的類的數量——使類內距離最小,類內的相似度最大。但是,最終結果仍可能過於主觀。

以羅素3000指數為例,該指數跟蹤美國市值最高的3000只股票。這3000支股票可以根據財務特徵(如總資產、總收益、盈利能力、槓桿率等)和經營特徵(如員工人數、研發費用等)分為10個、50個甚至更多的類。由於處於同一行業類別中的公司可能具有非常不同的財務和運營特徵,因此使用K-Means派生出不同的類可以為“同類”群體的性質提供獨特的理解。如前所述,k的準確選擇取決於所需的精度或分割的水平。我們還可以使用聚類對投資工具或對沖基金進行分類,作為標準分類的替代方法。聚類還可以幫助實現可視化數據,並有助於檢測趨勢或異常值。

總而言之,K-Means算法是投資實踐中最常用的算法之一,特別是在高維數據中發現特有模式及作為現有靜態行業分類的替代方法等方面。

分層聚類

分層聚類是一種用於構建層次類結構的迭代過程。在K-Means聚類中,算法將數據分割成預定數目的聚類;類之間沒有定義的關係。然而,在分層聚類中,算法會創建大小遞增(“內聚”)或遞減(“分離”)的中間類,直到達到最終的聚類。正如“分層”一詞所暗示的,該過程在多層類之間創建關係。雖然與K-Means聚類相比,分層聚類的計算量更大,但它的優點是允許分析師在決定使用哪種間隔的數據之前檢查不同間隔數據的分段。

更詳細地說,內聚式(自下至上)分層聚類先將每個觀察值作為自己的類。然後,算法根據距離(相似度)的度量找到兩個最近的類,並將它們合併成一個新的更大的類。這個過程不斷重複,直到所有的觀察值都聚集成一個類。下表中的A表描述了一個內聚聚類的假想示例,其中的觀察結果用字母表示(A到K),觀察結果周圍的圓圈表示類。這個過程從11個單獨的類開始,然後生成分組序列。第一個序列包括6個類,有5個類各自有2個觀測值,1個類有單個觀測值G。接下來生成2個類,一個類有6個觀測值,另一個類有5個觀測值。最後的結果是一個包含所有11個觀測值的大類,該大類包括兩個主要的子類,每個子類包含三個較小的孫類。

無監督機器學習算法:聚類

相反,分離式(自上而下)分層聚類從單個類的所有觀察值開始。然後根據距離(相似度)將觀測結果分成兩個類。然後,該算法逐步將中間類劃分為更小的類,直到每個類只包含一個觀察值。B表描述了分離式聚類的步驟,它以一個包含11個觀察值的類開始,算法生成兩個較小的類,一個有6個觀測值,另一個有5個觀測值;然後再分為6個類;最後生成11個類,每個類只包含一個觀測值。

在這個假設的例子中,內聚式和分離式聚類產生了相同的結果:兩個主要的子類,每個子類有三個更小的孫類。我們可以在6個類或2個類之間進行選擇。由於計算速度快,內聚式聚類是處理數據集的常用方法。內聚式聚類算法根據局部模式進行決策,不考慮數據的全局結構。因此,內聚式聚類非常適合於對較小的類進行識別。由於分離式聚類先從整體開始,所以常被側重於分析數據的全局結構,因此更適合於識別較大的類。

為了確定內聚式和分離式聚類的最佳結果,需要對兩個類之間的距離有明確的定義。一些常用的定義包括求每個類中所有觀測值之間直線距離的最小值、最大值或平均值。

如果喜歡本文,請點轉發讓更多人看到。
原創不易,感謝您的支持!

更多邊際實驗室原創內容
有監督學習算法介紹:K近鄰與決策樹(分類與迴歸樹)
懲罰迴歸算法與支持向量機
有監督學習中防止過擬合的方法
算法的性能評估及過擬合

無監督機器學習算法:聚類


分享到:


相關文章: