聚類分析中的資料型別
假設要聚類的資料集合包含
n 個資料物件,許多基於記憶體的聚類演算法選擇如下兩種有代表性的資料結構:
資料矩陣(
data matrix
,或稱為物件屬性結構):它用
p 個變數(也稱為屬性)來表現
n 個物件,例如用年齡,身高,性別,種族等屬性來表現物件「人」。這種資料結構是關係表的形式,或者看為
n*p
維(n
個物件*p
個屬性)的矩陣。
相異度矩陣(
dissimilarity matrix
,或稱為物件
-物件結構):儲存
n 個物件兩兩之間的近似性,表現形式是乙個
n*n
維的矩陣。
d(i,j)
是物件i
和物件j
之間相異性的量化表示,通常它是乙個非負的數值,當物件i 和
j 越相似,其值越接近
0;兩個物件越不同,其值越大
d(i,j) = d(j,i)
,而且d(i,i)=0
資料矩陣經常被稱為二模(
two-mode
)矩陣,而相異度矩陣被稱為單模(
one-mode
)矩陣。這是因為前者的行和列代表不同的實體,而後者的行和列代表相同的實體。許多聚類演算法以相異度矩陣為基礎。如果資料是用資料矩陣的形式表現的,在使用該類演算法之前要將其轉化為相異度矩陣。
區間標度(interval-scaled)變數
距離度量,它通常用於計算用該類變數描述的物件的相異性。距離的度量包括歐幾里得距離,曼哈頓距離,以及明考斯基距離。
「什麼是區間標度變數?」 區間標度變數是乙個線性標度的連續度量。典型的例子包括重量和高度,經度和緯度座標,以及大氣溫度。
選用的度量單位將直接影響聚類分析的結果。。一般而言,所用的度量單位越小,變數可能的值域就越大,這樣對聚類結果的影響也越大。為了避免對度量單位選擇的依賴,資料應當標準化。標準化度量值試圖給所有的變數相等的權重。
「怎樣將乙個變數的資料標準化?」為了實現度量值的標準化,一種方法是將原來的度量值轉。換為無單位的值。給定乙個變數
f 的度量值,可以進行如下的變換: 1
.計算平均的絕對偏差(
mean absolute deviation)s
f: s
f = (|x
1f-m
f|+|x
2f-m
f|+…+|x
nf-m
f|)/n
這裡的x1f
,…,x
nf 是f 的
n 個度量值,mf
是f 的平均值,即 m
f =(|x
1f +x
2f+…+x
nf)/n 2
.計算標準化的度量值,或
z-score:
zif
= (x
if – m
f) / sf
物件間的相異度(或相似度)是基於物件間的距離來計算的。最常用的距離度量方法是歐幾里得距離;這裡的i=(
xi1,
xi2,
…,xip
)和 j=(xj1,xj2,…xjp)
是兩個p
維的資料物件。
另乙個著名的度量方法是曼哈頓距離,其定義如下: d
(i,j
)= |xi1-xj1|+|xi2-xj2|+…+|xip-xjp|
上面的兩種距離度量方法都滿足對距離函式的如下數學要求: 1
.d(i
,j)≥0:距離是乙個非負的數值。 2
.d(i
,i)=0
:乙個物件與自身的距離是0。
3.d(i,j
)= d(j
,i):距離函式具有對稱性。 4
.d(i
,j)≤d(i,h)+d(h,j):從物件i到物件j的直接距離不會大於途徑任何其他物件的距離。
明考斯基距離是歐幾里得距離和曼哈頓距離的概化,它的定義如下: d
(i,j
)=(|xi1-xj1|q+|xi2-xj2|q+…+|xip-xjp|q
)1/q
這裡的q 是乙個正整數。當
q=1
時,它表示曼哈頓距離;當
a=2
表示歐幾里得距離。
如果對每個變數根據其重要性賦予乙個權重,加權的歐幾里得距離。
計算用二元變數描述的物件間的相似度
乙個二元變數只有兩個狀態:0 或
1,0 表示該變數為空,
1 表示該變數存在
「對稱的二元變數和不對稱的二元變數之間的區別是什麼?」如果它的兩個狀態有相同的權重
, 那麼該二元變數是對稱的,也就是兩個取值0 或
1 沒有優先權。
如果假設所有的二元變數有相同的權重,我們得到乙個兩行兩列的可能性表
8.1。在表中,
q 是對物件i 和
j 值都為
1 的變數的數目,
r 是在物件
i 中值為
1,在物件
j 中值為
0 的變數的數目,
s 是在物件
i 中值為
0,在物件
j 中值為
1 的變數的數目,
t 是在物件i 和
j 中值都為
0 的變數的數目。變數的總數是p,
p=q+r+s+t。
基於對稱二元變數的相似度稱為恆定的相似度,即當一些
或者全部二元變數編碼改變時,計算結果不會發生變化。對恆定的相似度來說,評價兩個物件i 和
j 之間相異度的最著名的係數是簡單匹配係數,其定義如下:
d(i,j) = (r+s) / (q+r+s+t)
如果兩個狀態的輸出不是同樣重要,那麼該二元變數是不對稱的。
對非恆定的相似度,最著名的評價係數是
jaccard
係數,在它的計算中,負匹配的數目被認為是不重要的,因此被忽略。
d(i,j) = (r+s) / (q+r+s)
標稱型、序數型和比例標度型變數
標稱變數
標稱變數是二元變數的推廣,它可以具有多於兩個的狀態值。例如,
map_color
是乙個標稱變數,它可能有五個值:紅色
,黃色,綠色,粉紅色,和藍色。
假設乙個標稱變數的狀態數目是
m。這些狀態可以用字母,符號,或者一組整數(如1,
2,…,m)
來表示。要注意這些整數只是用於資料處理,並不代表任何特定的順序。
「如何計算標稱變數所描述的物件之間的相異度?」兩個物件i 和
j 之間的相異度可以用簡單匹配方法來計算:
d(i,j) = (p-m)/p
m 是匹配的數目,即對i 和
j 取值相同的變數的數目;而
p 是全部變數的數目。我們可以通過賦權重來增加
m 的影響,或者賦給有較多狀態的變數的匹配更大的權重。
通過為每個狀態建立乙個二元變數,可以用二元變數來表示標稱變數。對乙個有特定狀態值的物件,對應該狀態值的二元變數值置為
1,而其餘的二元變數值置為0。
序數型變數
乙個離散的序數型變數類似於標稱變數,除了序數型變數的
m 個狀態是以有意義的序列排序的。序數型變數對記錄那些難以客觀度量的主觀評價是非常有用的
將區間標度變數的值域劃分為有限個區間,從而將其值離散化,也可以得到序數型變數。乙個序數型變數的值可以對映為排序。例如,假設乙個變數f 有
mf 個狀態,這些有序的狀態定義了乙個序列1,
…,mf。
假設f
是用於描述
n 個物件的一組序數型變數之一,關於
f 的相異度計算包括如下步驟: 第
i 個物件的
f 值為
xif,變數f 有
mf 個有序的狀態,對應於序列1,
…,mf。用對應的
rif
代替xif
,rif∈ 。
既然每個序數型變數可以有不同數目的狀態,我們經常必須將每個變數的值域對映到
[0 .0, 1.0]
上,以便每個變數都有相同的權重。這一點可以通過用
zif
代替rif
來實現。
zif = (rif –1) / (mf-1)
比例標度型變數
比例標度型變數在非線性的刻度取正的度量值,例如指數
資料探勘 聚類分析例項
在之前,我們已經學過了四大類聚類分析及其典型演算法。本文,我們將使用劃分方法中的k 均值演算法和層次聚類方法以乙個例項進行完整的聚類分析演示。例題 為研究我國31個省 市 自治區2007年的城鎮居民生活消費的規律,根據調查資料作區域消費型別劃分。原始資料表1所示 問題 針對上述問題,採用k mean...
資料探勘演算法之聚類分析(二)canopy演算法
canopy是聚類演算法的一種實現 它是一種快速,簡單,但是不太準確的聚類演算法 canopy通過兩個人為確定的閾值t1,t2來對資料進行計算,可以達到將一堆混亂的資料分類成有一定規則的n個資料堆 由於canopy演算法本身的目的只是將混亂的資料劃分成大概的幾個類別,所以它是不太準確的 但是通過ca...
K Means 聚類分析學習筆記
在之前分享的鏈家二手房資料分析的練習中用到了 k means 聚類分析方法,所以就順道一起複習一下 k means 的基礎知識好了。k means 聚類分析可將樣本分為若干個集群,它的核心思想就是使某集群的資料點與其對應的中心之間的距離最小。所以 k means 聚類分析通常會假設已知集群的中心或者...