資料探勘(五) 聚類

2021-06-14 12:22:08 字數 3478 閱讀 3195

聚類是資料探勘描述任務的乙個重要組成部分。資料探勘任務包括描述性任務**性任務兩種。描述性任務包括聚類、關聯分析、序列、異常檢測等,**性任務包括回歸和分類

聚類:將資料物件劃分為若干類,同一類的物件具有較高的相似度,不同類的物件相似度較低。從這個簡單的描述中,可以看出聚類的關鍵是如何度量物件間的相似性。較為常見的用於度量物件的相似度的方法有距離密度等。

凡是滿足距離定義四個條件(唯一性、非負性、對稱性和三角不等式)的函式都可以作為距離公式。常用的有歐氏距離(euclid)、曼哈頓距離(manhattan)、契比雪夫距離(chebyshev)、馬哈拉諾比斯距離(mahalanobis)等。

基於距離的兩類經典聚類演算法:劃分方法(partitioning method)和層次聚類方法(hierarchical method)。

該方法的典型代表有k-meansk-medoids

k-means演算法的核心思想是把n個資料物件劃分為k個類(這k各類事先未知),使得劃分後每個類中的資料點到該類中心的距離最小。即使j最小。

輸入:分類個數k,包含n個資料物件的資料集

輸出:k個聚類

(1)從n個資料物件中任意選取k個物件作為初始的聚類中心;

(2)分別計算每個物件到各個聚類中心的距離,把物件分配到距離最近的聚類中;

(3)所有物件分配完成後,重新計算k個聚類的中心;

(4)與前一次計算得到的k個聚類中心比較(檢測是否收斂),如果聚類中心發生變化(未收斂),轉(2),否則聚類結束。

k-means演算法本質上是實現了聚類的基本思想:類內資料點越近越好,類間資料點越遠越好。

上述演算法大多數情況下會最終求得收斂的最優聚類結果,但也有可能陷入區域性最優解。還存在乙個問題,上述演算法有乙個前提,就是指定k的值,即聚類個數。而在實際應用中k值是無法事先給定的,因此k-means演算法的另乙個重點就是要找出乙個合適的k,使平方誤差數值達到最小。一般的做法是嘗試若干個k,選擇使平方誤差(距離)最小的k值。

k-means演算法第(3)步中聚類中心是計算當前每個cluster的均值作為新的聚類中心,這正是k-means演算法得名的原因。計算公式為

第(4)步中檢測是否收斂的標準並非常用標準,因為要達到完全收斂可能並不現實。因此,較為常見的說法為,直到迭代了最大的步數或者前後的 j 的值相差小於乙個閾值為止。

k-medoids演算法中,我們將從當前 cluster 中選取這樣乙個點——它到其他所有(當前 cluster 中的)點的距離之和最小——作為中心點。也就是說,k-means演算法選擇的中心點未必在n個資料點中,而可以是連續空間的任意值;k-medoids則只能在給樣本給定的那些點裡面選。也正是因為這樣,k-means對雜訊和孤立點資料非常敏感,而k-medoids則可以有效地消除這種影響。

當結果簇是密集的,而簇與簇之間區別明顯時,k-means演算法的效果較好。對於大規模資料集,該演算法是相對可擴充套件的,並且效率較高。僅就k-means和k-medoids兩者而言,在第(3)步中,k-means具有o(n)的時間複雜度,而k-medoids的時間複雜度是o(n^2)。

k-means的不足:首先,k-means只有在簇資料點的平均值有定義的情況下才能使用,這可能不適用於某些應用,如離散資料。對k-means改進後的k-模演算法用代替簇的平均值作為相似性度量,用基於頻率的方法來修改聚類的模。k-模演算法可用於解決離散問題。k-means和k-模相結合用來處理有數值型別和分類型別屬性的資料,這就是k-原型演算法。其次,k-means和k-medoids不適用於發現非球狀的簇。原因是這類演算法使用距離來描述資料間的相似性,但是對於非球狀資料集,只用距離來描述是不夠的。對於這種情況,要採用密度作為相似性度量。(參見2)

層次聚類方法(hierarchical method)按資料分層建立簇,形成一棵以簇為節點的樹。該方法的典型代表有凝聚法agglomerative)和**法divisive)。若自底向上進行層次聚集,則稱為凝聚的層次聚類;若自頂向下進行層次分解,則稱為**法的層次聚類。

凝聚的層次聚類首先將每個物件作為乙個簇,然後逐漸合併這些簇形成較大的簇,直到所有物件都在同乙個簇中,或者滿足某個終止條件。**與之相反,它首先將所有的物件置於乙個簇中,然後逐漸劃分為越來越小的簇,直到每個物件自成一簇,或者達到了某個終止條件,例如達到了某個希望的簇數目,或兩個最近的簇之間的距離超過了一定的閾值。

層次方法可以在不同粒度水平上對資料進行探測,而且容易實現相似度量或距離度量。但是,單純的層次聚類演算法終止條件含糊,而且執行合併或**簇的操作不可修正,這可能導致聚類結果質量很低。另外,由於需要檢查和估算大量物件或簇才能決定簇的合併或**,所以其可擴充套件性較差。因此,實際應用中常把層次方法與其他方法結合使用,形成多階段聚類,改善聚類質量。這類方法包括birch、cure、rock、chameleon等。

對於非球狀的聚類問題可採用基於密度的聚類演算法。基於密度的聚類演算法(density-based method)從資料物件的分布密度觸發,把密度足夠大的區域連線起來,從而可以發現任意形狀的簇,而且此類演算法還能有效去除雜訊。常見的基於密度的演算法有dbscan、optics、denclue等。

視覺聚類演算法是基於尺度空間理論建立的。其基本思想是:將資料集看作影象,將資料建模問題看作認知問題,通過模擬認知心理學的格式塔原理與生物視覺原理解決問題。格式塔原理(gestalt)就是物體的整體是由區域性特徵組織在一起的認知原則,包含相似率、連續率、閉合率、近鄰率、對稱率。將這五者作為聚類的基本原則,模擬人的眼睛由近到遠觀察景物的過程設計演算法進行聚類。隨著由近到遠,觀察尺度由小變大,所看到的景物層次會逐漸變化,這就是乙個聚類的過程。

視覺聚類的關鍵是最佳聚類個數的選擇。隨著尺度σ由小變大,聚類個數逐漸變少,但會出現尺度σ在很大範圍內變化而聚類個數穩定不變的情況,這意味著這個聚類個數存活週期最長,它就是最佳聚類個數。這解決了聚類有效性問題。

聚類演算法資料探勘(五) 聚類

首先宣告,我是乙個菜鳥。一下文章中湧現技術誤導情況蓋不負責 聚類是資料探勘描述任務的乙個主要組成部分。資料探勘任務包括描述性任務和 性任務兩種。描述性任務包括聚類 關聯分析 序列 異常檢測等,性任務包括回歸和分類。聚類 將資料物件分別為若干類,同一類的物件具有較高的相似度,不同類的物件相似度較低。從...

資料探勘 聚類

將現實世界的問題進行資料建模 mathlab 什麼是聚類分析 類似於 乙個同學是乙個資料,這乙個寢室的同學可以是乙個簇,不同的寢室是不同的簇,錯誤的,這個是劃分,聚類的甄別沒有準確的定則 簇內 同乙個寢室同學距離點小,一定比兩個不同的簇之間的兩個點直接距離小。與劃分不同點,他是有意義的 兩個簇的對小...

Python資料探勘 聚類

聚類 屬於無監督學習範疇 聚類 將無標籤資料聚成若干類 聚類方法的種類 kmeans聚類 和 dbscan密度聚類 呼叫時的區別 kmeans需要指定簇的個數 dbscan需要指定簇的個數。內部原理的區別 極簡描述 kmeans 隨機生成k個簇中心 每個資料點與其最近的簇中心連線 更新k個簇中心 同...