聚類分析之k prototype演算法解析

2022-07-17 12:00:12 字數 1497 閱讀 8482

k-prototype是處理混合屬性聚類的典型演算法。繼承kmean演算法和kmode演算法的思想。並且加入了描述資料簇的原型和混合屬性資料之間的相異度計算公式。

常規定義:x=表示資料集(含有n個資料),其中資料有m個屬性。

資料xi= 

aj表示屬性j  

dom(aj) 表示屬性j的值域:   對於數值屬性,值域dom(aj)表示是取值範圍;對於分類屬性,值域dom(aj)表示集合

xij 表示資料i 的第j個屬性。

同樣,資料xi也可表示為

資料總共有m個屬性,不妨設前p個屬性為數值屬性(r代表),後m-r個屬性為分類屬性(c代表)

k-prototype演算法是設定了乙個目標函式,類似於kmean的sse(誤差平方和),不斷迭代,直到目標函式值不變。

同時,k-prototype演算法提出了混合屬性簇的原型,我們可以理解原型就是數值屬性聚類的質心。混合屬性中存在數值屬性和分類屬性,其原型的定義是數值屬性原型用屬性中所有屬性取值值的均值,分列屬性原型是分類屬性中選取屬性值取值頻率最高的屬性。合起來就是原型。

相異度距離: 一般來說,數值屬性的相異度一般選用歐式距離,在k-prototype演算法中混合屬性的相異度分為屬性屬性和分類屬性分開求,然後相加。

對於分類屬性:我們使用海明威距離,即屬性值相同,為0 ;屬性值不同,為1。

對於分類屬性:

對於數值屬性:

計算數值屬性對應的歐式距離

則資料 和簇的距離(相異度)為:

其中 前p個數值屬性,後m個是分類屬性, 是簇q的原型的j屬性 ,u

是分類屬性的權重因子

其k-prototype的目標函式是:

目標函式這個定義對於演算法來說很重要,都是作者自己想出來的。然後進行實驗驗證的。看**最難學的就是目標函式。人家想出來的很牛,但是自己卻沒有能力想出來,還是得多看**。

有了相異度和原型的定義。

演算法的步驟是:

輸入:聚類簇的個數k, 權重因子

輸出:產生好的聚類。

步驟:從資料集中隨機選取k個物件作為初始的k個簇的原型

遍歷資料集中的每乙個資料,計算資料與k個簇的相異度。然後將該資料分配到相異度最小的對應的簇中,每次分配完畢後,更新簇的原型

然後計算目標函式,然後對比目標函式值是否改變,迴圈直到目標函式值不在變化為止。

聚類分析之k prototype演算法解析

k prototype是處理混合屬性聚類的典型演算法。繼承kmean演算法和kmode演算法的思想。並且加入了描述資料簇的原型和混合屬性資料之間的相異度計算公式。常規定義 x 表示資料集 含有n個資料 其中資料有m個屬性。資料xi aj表示屬性j dom aj 表示屬性j的值域 對於數值屬性,值域d...

機器學習之聚類分析

聚類的核心是相似度或距離,聚類分析中有多種計算距離和相似度的定義 閔可夫斯基距離 d xi xj p 1 p p為大於1的數 python實現為 import numpy as np dt np.random.rand 10 reshape 2,5 minkow len 0p 10 可自行定義 fo...

聚類分析(一) 什麼是聚類分析

將一群物理物件或者抽象物件的劃分成相似的物件類的過程。其中類簇是資料物件的集合,在類簇中所有的物件都彼此相似,而類簇與類簇之間的物件是彼此相異。聚類除了可以用於資料分割 data segmentation 也可以用於離群點檢測 outlier detection 所謂的離群點指的是與 普通 點相對應...