除了先前所提及的監督式機器學習方法,同時也有非監督式機器學習的分群演算法,讓我們接著看完文章瞭解更多內容吧!
到目前為止,我們只探討了監督式機器學習方法,這些方法通常會從一組資料以及對已知資料分類方式的理解開始。因此,監督式學習模型使用已經被貼上標籤的資料來訓練,這些標籤用來幫助模型自己找出正確答案。然而,有時資料並無法事先就具備定義好的標籤,這正是非監督式機器學習 (Unsupervised Machine Learning) 發揮作用的地方。
非監督式機器學習演算法可以在不需要參考事先標記結果的前提下,從資料集中推論出資料樣態。由於它無法事先得知輸出結果的預期值 (Expected outcomes),因此不適合被應用在迴歸或分類問題。然而,非監督式學習方法對於尋找資料集中有意義的結構、潛在的過程、產生的特徵或資料的潛在分組樣態等需求情境,就能夠發揮出最大的效果。
非監督式學習方法中最常見的是分群 (Clustering),它使用某種相似性的測量演算法來尋找資料中隱藏的樣態或分組。在統計學中,相似性測量是一個量化兩個物件之間相似性的函數。理論上,歸類於相同分組的資料點應具有類似的屬性或特徵,而不同分組的資料點應具有明顯不同的特徵。然而在現實中,分組之間的相似性可能被高估,因為我們必須對構成資料點的同一性 (Sameness) 做出某些假設。
以下是機器學習較常用的分群演算法:
K-Means 是一種非監督式學習方法,它使用資料點和集群 (Cluster) 真實或想像的中心點(稱為 Centroid)之間的距離,將資料劃分為固定數量(K)的不同集群(具有類似特徵的資料點群)。K-Means 演算法首先隨機定義了 K 個中心點,接著依據每個資料點和中心點之間的直線距離,將資料點分配給最接近的中心點。然後,它透過計算分配給每個中心點的所有資料點的平均值 (Mean),並將這個平均值作為新的中心點。最後,重複這個過程,直到中心點不再發生變化或者已經滿足預先指定的反覆運算次數 (Number of Iterations),這樣,我們就可以確定所有資料點都已經被精確地分組了。
這種方法產生的集群會形成一個基於階層的樹狀結構 (Tree structure),因為新的集群是透過之前產生的集群所建立。階層式分群法可以分為兩種方法:第一種是聚集法 (Agglomerative),它屬於“由下而上 (Bottom-up)”的方法,從每個觀測值所屬的小範圍集群開始,隨著階層的上升,成對的集群會被合併為較大的集群。第二種是分裂法 (Divisive),屬於“由上而下 (Top-down)”的方法,所有觀測值從一個較大範圍的集群開始,隨著階層的下降,集群的分割 (Splits) 會被重複地進行。階層式分群方法可以產生視覺化的樹狀圖,讓我們更清楚地理解分組的相似性與差異性。此外,它也可以使用在未知分組數量的情況下,因為它可以產生不同數量的集群,並且根據需要自動進行刪除或合併。
DBSCAN 透過資料中觀測值 (Observations) 的分佈密度找出密度較高的區域 (Clusters) 與密度不高的區域 (Noise),然後將密度高的區域歸類為一個集群。其核心思想在於,如果一個資料點屬於某個集群,那麼它應該與該集群中大多數資料點的距離較靠近(物以類聚的概念)。
使用 DBSCAN 需要先定義兩個參數:一個代表距離的正實數(Epsilon),以及一個指定集群中允許的最小資料點數的自然數(minPoints)。該方法會任意挑選一個資料點作為起始點,然後尋找距離該點不大於 Epsilon 的其他資料點。若距離在 Epsilon 範圍內的資料點數量超過 minPoints,那麼所有資料點就會被視為一個集群(包括一開始挑選的資料點)。接著,它會檢查所有被納入集群的資料點,看它們是否也有超過 minPoints 的其他資料點在 Epsilon 範圍內。如果有,就以遞迴方式擴大這個集群,如果沒有更多資料點可以加入集群,就任意再選擇一個新的資料點並重複這個過程。如果某個資料點在 Epsilon 範圍內的資料點數量少於 minPoints,同時該資料點不屬於任何集群時,它就會被視為“噪音 (Noise)”。
平均數飄移分群法是一種非參數性 (Non-parametric) 的分群演算法,其工作原理是以每個資料點為中心,劃分一個固定半徑範圍的圓形區域(稱為 Window),然後計算窗口範圍內所有資料點的平均位置,並將 Window 的中心點移向這個平均位置。最後,重複這個過程,直到所有可用的集群中心點均已被定義。在後置處裡階段 (Post-processing Stage),平均數飄移分群法會進行過濾,消除集群間重疊的資料點,讓每個資料點都能對應到一個集群。
平均數飄移分群法的優點是不需要事先指定集群數量,因此對資料分佈較複雜的情況下表現較好。但其缺點在於效率較低,特別是在處理大量資料時會面臨挑戰。此外,平均數飄移分群法對窗口範圍的選擇較敏感,若選擇不當可能導致分群結果不準確。
GMM 嘗試找出一個多維高斯機率分佈的混合體,並對輸入的資料集進行最佳建模。使用 GMM 的基本假設是所有資料點對稱分佈於一個以平均值為中心點的鐘形曲線(統計學中的常態分佈或稱為高斯分佈),這會比平均數飄移分群法使用固定半徑作為窗口範圍的限制性更小。在最簡單的情況下,GMM 可以使用與 K-Means 相同的方式來尋找集群。更好的是,GMM 屬於一個機率模型,除了為資料點進行分群之外,還可以提供每個資料點被分配為某個集群的機率。儘管 GMM 經常被歸類為分群演算法,但從根本上來說,它是一種為了估計密度 (Density Estimation) 而設計的演算法。
對於 AI 基礎入門課程而言,您不需要深入瞭解這些資料分群演算法的詳細定義和公式,這應該是資料科學家或統計專家的專業領域。然而,簡單了解一些常用的資料分群方法的定義,可以讓您在 AI/ML 專案需要解決分群相關問題時,可以選擇最合適的方法以滿足您的需求。
參考資料:無