聚類演算法基礎知識(更新中)

2021-08-07 15:57:14 字數 3176 閱讀 4217

一、 什麼是聚類:

聚類分析就是在相似的基礎上收集資料進行分類。即將資料集按照資料之間的相似性劃分為由若干個相似物件組成的多個組或簇的過程,讓同一組/簇中的物件的相似度達到最大值,而不同組/簇的物件的相似度最小化。

通過聚類分析,人們能夠發現資料全域性的分布模式以及資料屬性之間一些有趣的相互關係。

二、 聚類與分類的區別:

分類是有監督學習,是對已經有標註的語料(類別已知)進行分類;而聚類是無監督學習,是根據未標記的語料(類別未知)解決模式識別中的各種問題。

三、 聚類分析的任務:

1. 模式表示(包括特徵提取和/或選擇):

聚類演算法的基礎,好的模式可以產生簡單、容易理解的簇。而在文字聚類中,這些模式一般用向量的形式進行表示,一般會採用詞袋模型和word2vec模型。特徵選擇是提高聚類質量的有效特徵子集提取的過程,實際上就是對資料進行降維處理,常見的方法有pca(主成分分析法)等。模式相似性通常使用定義在模式之間的距離函式或相似係數來描述。模式相似性是聚類分析的最基本問題,直接影響聚類結果的質量。(聚類演算法的效能差異提箱在模式相似性度量方法上)距離函式一般是用歐氏距離或曼哈頓距離表示

2. 聚類/劃分演算法(劃分後要反饋給特徵選擇/提取)

3. 資料摘要:

是摘錄乙個資料集的簡潔表示的過程,通常用聚類原型或典型的模式如質心來表示乙個簇。

4. 輸出結果的評估

(3、4非必須)

*需要的知識:

選擇模式的表示策略(如使用先驗經驗和編碼特徵),選擇相似度度量方法,選擇劃分策略

四、 對聚類演算法的要求:

1. 可伸縮性:聚類的演算法需要能夠處理不同規模的資料集,既能夠處理小資料集也能夠處理大規模資料

2. 處理不同型別屬性的能力:演算法需要能夠處理多種型別的資料。資料的型別有多種,如:二元型別資料、分類/標稱型別資料、序數型資料或者些資料的合集。

3. 發現任意形狀的聚類:乙個簇可能是任意形狀的,因此聚類演算法必須能夠處理任意形狀的簇。(若是基於歐氏距離或曼哈頓距離度量進行聚類,則趨於發現具有相近尺度和密度的球狀簇)

4. 減少引數的輸入:聚類的結果對輸入引數較為敏感,會影響聚類結果的質量。

5. 處理「雜訊」的能力:聚類演算法需要處理資料庫中的離群點、缺失值、錯誤資料,保證聚類結果的質量。

6. 對輸入資料記錄的順序不敏感

7. 基於約束:演算法需要滿足實際應用的約束條件

8. 可解釋性和可用性:聚類需要與特定的語**釋和應用相聯絡

五、 聚類分析中的資料型別

1. 區間標度變數:一種粗略線性標度的連續度量(e.g.重量、高度、經緯度)

區間標度變數描述的物件間的相異度/相似度通常基於每對物件間的距離計算。最常用的距離度量就是歐幾里得距離和曼哈頓城市距離。

 歐幾里得距離(歐氏距離):源自歐氏空間中兩點間的距離公式:

(1)二維平面上兩點a(x1,y1)與b(x2,y2)間的歐氏距離:

(2)三維空間兩點a(x1,y1,z1)與b(x2,y2,z2)間的歐氏距離:

(3)兩個n維向量a(x11,x12,…,x1n)與 b(x21,x22,…,x2n)間的歐氏距離:

也可以用表示成向量運算的形式:

 曼哈頓城市距離:

背景:在城市街道中駕車從乙個十字路口到下乙個十字路口不是直線距離,而是乙個折線距離(你無法直接穿過大樓),這個折線距離就是曼哈頓城市距離,也叫城市街區距離。

(1)二維平面兩點a(x1,y1)與b(x2,y2)間的曼哈頓距離

(2)兩個n維向量a(x11,x12,…,x1n)與 b(x21,x22,…,x2n)間的曼哈頓距離

歐幾里得距離和曼哈頓距離滿足對距離函式的如下數學要求:

(1) 非負性:距離是乙個非負數

(2) 同一性:若距離為0則物件與自身的距離為0

(3) 對稱性:d( i , j ) = d( j , i )

(4) 傳遞性:d( i , j ) <= d( i , h ) + d( h , j ):空間中物件i到物件j的直接距離不會大於途經其他物件h的距離(三角不等式)

2. 二元變數:只有兩種狀態:0或1,0表示該變數不出現,1表示該變數出現

六、 標準化度量

選擇的度量單位會影響聚類分析的結果:變數單位越小,變數可能的值域就越大,對聚類結果的影響也越大。將資料標準化能夠避免對度量單位的選擇依賴。由於標準化度量意味著資料的給所有的變數相等的權重(這在沒有關於資料的先驗知識時是十分有用的),但這與使用者在某些應用中想給某些變數比其他變數更大的權重的需求存在矛盾。

*實現變數的資料標準化:

將原來的度量轉換為無單位變數

(1) 計算均值絕對差:每乙個度量值減均值的絕對值的和再求平均值

(2) 計算標準度量值或z-score:標準度量值等於對應的度量值與均值的差然後除以均值絕對差,所得的商就是標準度量值

七、 典型聚類方法:

1. 劃分方法:與離散數學中的劃分定義相似。劃分式聚類演算法需要預先指定簇數目或簇中心,通過反覆迭代運算,逐步降低目標函式的誤差值。有基於質心的劃分也有基於中心的劃分。

(1) 劃分步驟:

先建立乙個初始劃分,然後採用一種迭代重定位的技術,試圖通過物件在組間移動來改進劃分。

(2) 判斷好的劃分的準則:

在同乙個簇中,物件之間的距離盡可能小,不同簇中物件之間的距離盡可能大。

(3) 存在問題:

為了達到全域性最優,基於劃分的聚類會要求窮舉所有可能的劃分,但其時間複雜度是指數級的,時間代價太大。

因此大多數應用採用了以下的啟發式方法:

① k-means演算法:每個簇用該簇中物件的平均值來表示(基於質心)

② k-medoids演算法:每個簇用接近聚類中心的乙個物件來表示(基於中心)

(啟發式聚類方法對發現中小規模資料庫中的球狀簇十分適用)

除了啟發式方法,還可以使用一趟聚類的方法:具有近似線性的時間複雜度,但本質上就是將資料劃分為大小幾乎相同的超球體,不能夠發現非凸狀的簇,或具有各種大小不同的簇,難以得到理想的聚類結果。

2. 層次方法:通過將資料組織為若干組並形成乙個相應的樹來進行聚類。層次聚類有自頂而下(**)和自底而上(合併)的兩種方法。

(1) 三種改進的凝聚層次聚類方法:

brich演算法:用樹結構對物件進行層次劃分,葉結點和低層非葉子結點可以看成由高解析度決定的「微簇」,然後再用其他方法對這些微簇進行巨集聚類。

rock演算法:基於簇間的互聯性進行合併。

cure演算法:採用多個點決定乙個簇。

資料探勘 傳統聚類演算法基礎知識筆記

聚類分析是資料探勘應用的技術之一,可以看作一種資料分析方法,也可以作為資料探勘技術的預處理。聚類演算法屬於無監督學習的範疇,不需要人為事先確定好聚類的類別,所以常常被用來對未知類別的資料 如電力日負荷曲線 進行劃分。聚類演算法通過一定的計算,把資料集劃分為不同的簇,旨在使同一簇內的資料相似性最高,簇...

演算法 基礎知識

插入排序法示例 將想要插入的值搜尋找到合適的位置,之前的數值一一向後移動乙個位置,騰出乙個空位置給想要插入的數值。偽 instert sort a for j 2 to a.length key a j i j 1 while i 0 and a i key a i 1 a i i i 1 a i ...

演算法基礎知識

o 1 稱為不變複雜性 1項 1秒 10項 1秒 100個專案 1秒 專案的數量仍然增加10倍,但o 1 的比例因子總是1。o log n 稱為對數複雜度 1項 1秒 10項 2秒 100項 3秒 1000項 4秒 10000項 5秒 計算次數只會增加輸入值的對數。因此,在這種情況下,假定每個計算需...