聚類是另一種無監(jiān)督機(jī)器學(xué)習(xí)方法,該方法將數(shù)據(jù)點分為相似的組,稱之為“類”。一個類包含來自數(shù)據(jù)集的一個觀察子集,同一類中的所有觀察值都被認(rèn)為是“相似的”。每個類里觀測值彼此之間接近(稱為內(nèi)聚),兩個不同的類里的觀測值彼此遠(yuǎn)離或者盡可能不同(稱為分離)。下圖描述了類的內(nèi)聚和分離。
聚類算法在許多投資問題中特別有用。例如,在對公司進(jìn)行分組時,類可以發(fā)現(xiàn)公司之間的重要相似性和差異性,而這些相似性和差異性可能不會被標(biāo)準(zhǔn)的行業(yè)分類所捕捉。在投資組合管理中,聚類方法被用來改善投資組合的多樣化。
在實踐中,專家判斷在聚類算法中起著一定的作用。首先,專家必須確定什么是“相似”。每個公司都可以被認(rèn)為是一個具有多種特征的觀察值,包含營業(yè)收入、利潤、財務(wù)比率等財務(wù)數(shù)值,以及其他潛在的模型輸入值。有了這些特征值,兩個觀測值之間的相似度或“距離”就可以被定義。距離越小,觀測結(jié)果越相似;距離越大,觀測結(jié)果越不相似。
一個常用的定義方法是歐幾里得距離,即兩點之間的直線距離。在機(jī)器學(xué)習(xí)中,經(jīng)常使用的距離度量有十余種。在實踐中,距離度量的選擇取決于數(shù)據(jù)的性質(zhì)(是否是數(shù)值)和被分析的業(yè)務(wù)類別。
一旦定義了相關(guān)的距離度量,我們就可以將類似的觀測結(jié)果分在一起。我們現(xiàn)在介紹兩種比較流行的聚類方法:K-Means和分層聚類。
K-Means
K-Means是一種相對較老的算法,它將觀察值重復(fù)劃分為一個固定的數(shù)字k(不重疊的類)。類的數(shù)量k是一個模型超參數(shù),它的值由研究人員在學(xué)習(xí)開始之前設(shè)置。每個類由它的形心(centroid,即中心)定義,每個觀測值都由算法分配到與該觀測值最接近的形心的類中。
K-Means算法遵循迭代過程。如下表所示,k=3和一組關(guān)于變量的觀察結(jié)果可以用兩個特征來描述。
在表中,水平軸和垂直軸分別代表第一和第二特征。例如,投資分析師可能希望將一組公司用兩個測量標(biāo)準(zhǔn)分成三類。
算法將觀測數(shù)據(jù)按以下步驟進(jìn)行分類:
1、首先確定k(本例為3)個初始隨機(jī)形心的位置。
2、算法分析每個觀測值的特征。基于使用的距離度量,K-Means將每個觀測值分配給最近的形心(類由形心定義)。
3、借助每個類中的觀測值,K-Means算法在計算每個類新的(k個)形心(形心是觀測值的平均值)。
4、然后將觀測結(jié)果重新分配到新的形心,根據(jù)觀測結(jié)果對類重新定義。
5、再次進(jìn)行新的(k個)形心及類的確定過程。
K-Means算法將繼續(xù)迭代,直到?jīng)]有觀察結(jié)果被重新分配到另一個新的類(即不需要重新計算新的形心)。該算法最終收斂并得到最后的K個類及類內(nèi)的觀察值。在k=3的約束下,K-Means算法最小化了類內(nèi)的距離(內(nèi)聚最大化),最大化了類間距離(分離最大化)。
K-Means算法速度快,在擁有上億個觀測數(shù)據(jù)的數(shù)據(jù)集上運行良好。但是,類的最終分配可能取決于形心的初始位置。為了解決這個問題,可以使用不同的形心多次運行該算法,然后根據(jù)業(yè)務(wù)目的選擇最有用的分類。
這種技術(shù)的一個限制是,在運行K-Means之前,必須確定類的數(shù)量(超參數(shù)k)。
因此,我們需要知道,研究問題及分析數(shù)據(jù)集,選擇多少個類是合理的。或者,可以選擇k的取值范圍,通過運行算法找到最優(yōu)的類的數(shù)量——使類內(nèi)距離最小,類內(nèi)的相似度最大。但是,最終結(jié)果仍可能過于主觀。
以羅素3000指數(shù)為例,該指數(shù)跟蹤美國市值最高的3000只股票。這3000支股票可以根據(jù)財務(wù)特征(如總資產(chǎn)、總收益、盈利能力、杠桿率等)和經(jīng)營特征(如員工人數(shù)、研發(fā)費用等)分為10個、50個甚至更多的類。由于處于同一行業(yè)類別中的公司可能具有非常不同的財務(wù)和運營特征,因此使用K-Means派生出不同的類可以為“同類”群體的性質(zhì)提供獨特的理解。如前所述,k的準(zhǔn)確選擇取決于所需的精度或分割的水平。我們還可以使用聚類對投資工具或?qū)_基金進(jìn)行分類,作為標(biāo)準(zhǔn)分類的替代方法。聚類還可以幫助實現(xiàn)可視化數(shù)據(jù),并有助于檢測趨勢或異常值。
總而言之,K-Means算法是投資實踐中最常用的算法之一,特別是在高維數(shù)據(jù)中發(fā)現(xiàn)特有模式及作為現(xiàn)有靜態(tài)行業(yè)分類的替代方法等方面。
分層聚類
分層聚類是一種用于構(gòu)建層次類結(jié)構(gòu)的迭代過程。在K-Means聚類中,算法將數(shù)據(jù)分割成預(yù)定數(shù)目的聚類;類之間沒有定義的關(guān)系。然而,在分層聚類中,算法會創(chuàng)建大小遞增(“內(nèi)聚”)或遞減(“分離”)的中間類,直到達(dá)到最終的聚類。正如“分層”一詞所暗示的,該過程在多層類之間創(chuàng)建關(guān)系。雖然與K-Means聚類相比,分層聚類的計算量更大,但它的優(yōu)點是允許分析師在決定使用哪種間隔的數(shù)據(jù)之前檢查不同間隔數(shù)據(jù)的分段。
更詳細(xì)地說,內(nèi)聚式(自下至上)分層聚類先將每個觀察值作為自己的類。然后,算法根據(jù)距離(相似度)的度量找到兩個最近的類,并將它們合并成一個新的更大的類。這個過程不斷重復(fù),直到所有的觀察值都聚集成一個類。下表中的A表描述了一個內(nèi)聚聚類的假想示例,其中的觀察結(jié)果用字母表示(A到K),觀察結(jié)果周圍的圓圈表示類。這個過程從11個單獨的類開始,然后生成分組序列。第一個序列包括6個類,有5個類各自有2個觀測值,1個類有單個觀測值G。接下來生成2個類,一個類有6個觀測值,另一個類有5個觀測值。最后的結(jié)果是一個包含所有11個觀測值的大類,該大類包括兩個主要的子類,每個子類包含三個較小的孫類。
相反,分離式(自上而下)分層聚類從單個類的所有觀察值開始。然后根據(jù)距離(相似度)將觀測結(jié)果分成兩個類。然后,該算法逐步將中間類劃分為更小的類,直到每個類只包含一個觀察值。B表描述了分離式聚類的步驟,它以一個包含11個觀察值的類開始,算法生成兩個較小的類,一個有6個觀測值,另一個有5個觀測值;然后再分為6個類;最后生成11個類,每個類只包含一個觀測值。
在這個假設(shè)的例子中,內(nèi)聚式和分離式聚類產(chǎn)生了相同的結(jié)果:兩個主要的子類,每個子類有三個更小的孫類。我們可以在6個類或2個類之間進(jìn)行選擇。由于計算速度快,內(nèi)聚式聚類是處理數(shù)據(jù)集的常用方法。內(nèi)聚式聚類算法根據(jù)局部模式進(jìn)行決策,不考慮數(shù)據(jù)的全局結(jié)構(gòu)。因此,內(nèi)聚式聚類非常適合于對較小的類進(jìn)行識別。由于分離式聚類先從整體開始,所以常被側(cè)重于分析數(shù)據(jù)的全局結(jié)構(gòu),因此更適合于識別較大的類。
為了確定內(nèi)聚式和分離式聚類的最佳結(jié)果,需要對兩個類之間的距離有明確的定義。一些常用的定義包括求每個類中所有觀測值之間直線距離的最小值、最大值或平均值。
-
聚類算法
+關(guān)注
關(guān)注
2文章
118瀏覽量
12129 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8418瀏覽量
132654 -
K-means
+關(guān)注
關(guān)注
0文章
28瀏覽量
11309
發(fā)布評論請先 登錄
相關(guān)推薦
評論