關鍵字:流式細胞儀,T淋巴細胞,k-means聚類,數據挖掘應用php
1、課題簡介html
隨着信息技術和計算機技術的迅猛發展,人們面臨着愈來愈多的文本、圖像、視頻以及音頻數據,各行各業的信息系統數年來收集了海量數據,並且這些數據還在以指數級增加着。這給咱們帶來方便的同時,也給我獲取有效信息加大了難度。過多無用的信息必然會產生信息距離和有用信息的丟失[1]。爲幫助用戶從這些大量數據中分析出其間所蘊涵的有價值的知識,數據挖掘(Data Mining,DM)技術應運而生[2]。它能開採出潛在的模式,找出最有價值的信息,指導商業行爲,生產控制,或輔助科學研究[3]。數據挖掘技術出現於20世紀80年代後期,在90年代發展迅速,其理論與應用研究已成爲國內外的研究熱點[4-5]。與此同時,聚類做爲數據挖掘的主要方法之一,也愈來愈引發人們的關注。算法
迄今爲止,聚類尚未一個學術界公認的定義。事實上,聚類是一個無監督的分類,它沒有任何先驗知識可用。沒有任何一種聚類技術能夠廣泛適用於揭示各類多維數據集所呈現出來的多種多樣的結構[6]。聚類是一個將數據集劃分爲若干組或簇的過程,使得同一類的數據對象之間的類似度較高,而不一樣類的數據對象之間的類似度較低。聚類問題的關鍵是把類似的事物彙集在一塊兒,適合探討樣本間的內部關係[3]。1967年,MacQueen[7]首次提出了K均值聚類算法(K-means算法)。該方法雖然不能用於類別屬性的數據,但對於數值屬性的數據,它能很好地體現聚類在幾何和統計學上的意義。在對大型數據集聚類時,K-means算法也比層次聚類算法快得多。迄今爲止,不少聚類任務都選擇該經典算法或其變種。shell
流式細胞技術(FCM)是70年代發展起來得一種快速對單細胞定量分析的新技術。它借鑑了熒光顯微鏡技術,同時利用了熒光染料、激光技術、單抗技術以及計算機技術的發展,將熒光顯微鏡的激發光源改成激光,使之具備更好的單色性與激發效率,於是大大提升了檢測靈敏度,同時將固定的標本臺改成流動的單細胞懸液,用計算機進行數據處理,於是大大提升了檢測速度與統計精確性,並且能從同一個細胞中能夠同時測得多種參數[8]。流式細胞儀是採用流式細胞術的典型儀器,它能迅速的對單個細胞及其羣體的化學物質的含量與種類做出分析,對含指定化學物質的細胞進行分離提純,在一些有關實驗室和醫院應用普遍[9]。近年來FCM不只在生物醫學與臨牀檢驗學中獲得了長足發展,並且拓展到生物學的各個領域,微生物學中涉及醫學、發酵和環保等的諸多領域,並且它仍是細胞學研究中必不可少的工具之一。編程
在流式細胞儀中使用細胞標誌示蹤物質爲熒光標記物鑑定和分離細胞羣和亞羣是其很是重要的一個應用,具備深遠的意義。例如在免疫學,淋巴細胞是正常機體免疫系統功能最重要的一大細胞羣,在免疫應答過程當中,未梢血淋巴細胞發育成爲功能不一樣的亞羣。各亞羣的數量和功能產生異常時,就能致使機體免疫紊亂併產生病理變化[10]。淋巴細胞亞羣分析已成爲檢測細胞免疫和體液免疫功能的重要指標,而FCM能夠同時檢測一種或幾種淋巴細胞膜表面分子(分化羣抗原),將不一樣的淋巴細胞亞羣數量的測定來監控病人的免疫狀態,指導治療[11]。對於細胞亞羣百分含量的分析,咱們通常用單參數直方圖、二維散點圖、密度圖、等高圖和三維圖來分析結果。而用於顯示數據的幾種形式的散點圖,還可經過設門的方法區分指定的細胞亞羣[8-9]。流式細胞術對淋巴細胞亞羣的這種鑑定分析已成爲醫院中最快速、準確和可靠常規檢測技術。框架
如今數據聚類分析已經成爲一個很是活躍的研究課題,可是用聚類的方法對流式細胞儀中檢測到的細胞分類數據進行分析還不多有人研究。本課題就是以標記熒光團的標準微球(T淋巴細胞)爲實驗對象,由流式細胞儀獲得各細胞的熒光光譜,而後基於此熒光光譜利用MATLAB編程分析,用K-means聚類算法實現不一樣特性細胞的準確分類。機器學習
2、研究方法ide
研究K-means算法在流式細胞儀中細胞分類的應用,關鍵是用該算法挖掘出熒光光譜中的有效信息並創建起熒光光譜與細胞分類的正確映射關係。本課題將基於採用FCM對熒光標記的T細胞進行檢測而獲得的CD3-8-45-4分子的熒光光譜數據,對該數據實施預處理後以K-means算法構建聚類模型,並用MATLAB編程仿真實現細胞亞羣分類。而後依據仿真結果是否聚類良好,不斷改進該算法,直到取得比較滿意的結果。下面給出課題中涉及到流式細胞術、T淋巴細胞亞羣和K-means算法等的原理與方法等信息。函數
1 流式細胞術(FCM)工具
FCM是一種快速檢測分析單個粒子多物理特性的高技術,一般指細胞經過激光束時在液流中的特性,即粒子的的大小,密度,或是內部結構,以及相對的熒光強度。經過光電系統記錄細胞的散射光信號和熒光信號能夠得知細胞特性。FCM分析中前向散射光反映顆粒的大小;側向散射光反映顆粒內部結構複雜程度、表面的光滑程度;熒光反映顆粒被染上熒光部分數量的多少,根據其標記的抗原分子不一樣,即反映了不一樣抗原分子的表達狀況[12]。本課題主要研究熒光標記的T淋巴細胞的熒光光譜來實現細胞亞羣分類。
1)流式細胞儀結構與工做流程
在流式細胞儀中,細胞被傳送到液流中的激光照射區。下圖1爲流式細胞儀結構示意圖。任何存在於懸液中的直徑爲0.2-150微米的粒子或細胞都適用於流式分析。在實際工做中,用實體組織進行流式細胞分析每每是不可能的,分析以前必須對其進行分解。被液滴包繞的粒子稱爲細胞液柱,當粒子通過激光照射區時,經過激光激發產生散射光。含有熒光的粒子就會表現出其熒光特性。散射光和熒光由光路系統(相應的透鏡,濾片和探測器)收集。分光器和濾光片引導散射光和熒光至相應的探測器,把光信號轉換爲電信號。單個粒子經過其表現出的光散射和熒光屬性,經過列表模式(List mode)完成數據採集,並對樣本中的細胞亞羣進行分析[13]。圖2爲其工做的基本流程。
圖1 流式細胞儀結構示意圖
圖2 流式細胞儀基本流程
2)熒光
熒光物質吸取符合其波長範圍的光能量,內部電子受激上升到高能級,而後受激電子迅速衰落回基態,釋放過剩能量成爲光子,這種能量轉換生成的光稱爲熒光。可以激發熒光物質的波長範圍稱爲激發光譜。熒光物質的發射波長範圍叫作發射光譜。光源的譜線愈接近被激發物質的激發光譜的峯值,所產生的熒光信號愈強。並且由於更多的能量消耗在吸取轉換而不是熒光轉換中,因此發射光波長要高於激發光波長。通常的流式細胞儀只裝有一個激光光源(488nm),可測出三個熒光強度(FL),即FL1、FL2、FL3,大型的流式細胞儀裝有兩個或三個激光光源(488nm、633nm和325nm),可測出6個FL。目前的流式細胞儀大多采用488nm氬離子激光器,由於488nm的激光器可以激發一種以上的熒光。每種熒光染料會產生特定波長的熒光和顏色,經過波長選擇通透性濾片,可將不一樣波長的散射光和熒光信號區分開,送入不一樣的光電倍增管[14](見圖1)。本課題FCM實驗採用的就是488nm的氬離子激光器,檢測到的三個通道分別是FL1:53610nm,FL2:59010nm,FL3:62010nm。
在對單克隆抗體進行檢測時,抗體上標記熒光,而後抗體與被測抗原特異結合,結合後的抗原抗體複合物經過流式細胞儀時就能檢測到特異熒光。選擇不一樣的單抗及染料就可同時測定一個細胞上的多個不一樣特徵。當細胞標記了多色熒光,被激發光激發後,獲得的熒光信號可根據須要進行組合分析。至於熒光染料的選擇,咱們能夠
① 根據流式細胞儀能檢測的通道數來選,對每一個通道只選擇一種熒光染料,各個通道之間的熒光染料能夠隨意搭配。好比FACSCalibur經常使用四色搭配:FITC、PE、PerCP、APC。
② 根據抗原表達強弱合理來選,高表達的抗原可用熒光不太強的染料,低表達的抗原則用熒光更強的染料。如CD4-FITC、CD25-APC、Foxp3-PE。
③ 根據熒光波譜間光譜重疊部分的大小來選,對重疊較小的熒光染料進行組合,同時須要正確的調節補償。
3)T淋巴細胞
人體內的淋巴細胞並非功能單一的羣體,但其在光學顯微鏡下的形態基本上是同樣的,都是以至密的核及少許細胞質組成的小而圓的細胞爲特徵,所以要對其進一步的分類觀察就不能採用形態學的方法,而是要對其表面標誌的檢測。包括對T細胞、B細胞和NK細胞及其有關亞羣的檢測,實質上是對其相應的表面標誌進行檢測,據此能夠創建起相應的細胞計數方法,以判斷機體的免疫水平[15]。經常使用於鑑定和檢測淋巴細胞表面標誌的是分化抗原簇(cluster of defferentiation,CD)。CD抗原的鑑定和檢測依賴與其相應的單克隆抗體,國際制定了細胞分化抗原的CD統一編號,統一把識別同一抗原的兩種以上的單抗劃分爲同一抗體組。T淋巴細胞表達CD3;B細胞表達CD19和CD20;NK細胞表達CD56和CD16,不表達CD3。利用各類單克隆抗體與淋巴細胞表面抗原結合,再配多色熒光染料,便可以把淋巴細胞區分爲各亞羣。
T淋巴細胞是參與機體細胞免疫並起主導調節做用的一組免疫細胞。外周血中成熟的T淋巴細胞主要屬於TCRαβ+T細胞,全部的T細胞均有共同的標誌性抗原,通常認爲是CD3分子,不一樣功能的T細胞亞羣又有各自的標誌性抗原。現有多種分類方法將T細胞分紅不一樣的亞羣:按CD4/CD8表達不一樣可分爲CD4+和CD8+兩個亞羣;按TCR(T細胞抗原受體)分子不一樣可分爲TCRαβ和TCRγδT細胞;按免疫功能不一樣可分爲輔助性和抑制性T細胞;按對抗原的應答不一樣可分爲初始T細胞、抗原活化過的T細胞、記憶性T細胞[16]。文獻[15]中則給出,根據T細胞的免疫效應和表面CD分子表達,至少能夠將T細胞分爲:CD3+CD4+CD8-輔助性T細胞(help T cell,Th)、CD3+CD4-CD8+細胞毒性T細胞(cytotoxic T cell,Tc或CTL)和CD4+CD25+調節性T細胞(regulartory T cell,Tr或Treg)等幾組亞羣。
T淋巴細胞及亞羣的檢測結果能夠解釋一些疾病發病機理,對患者的免疫功能和預後作出判斷以及指導治療。這些疾病主要包括:①病毒感染性疾病;②腫瘤性疾病;③自身免疫性疾病;④器官移植患者;⑤其餘免疫缺陷或異常的患者。下面表1列出了T淋巴細胞亞羣檢測中一些指標的正常參考值及臨牀意義。本課題中主要檢測CD3、CD8、CD45和CD4的熒光強度以對T淋巴細胞進行亞羣分類。
表1 T淋巴細胞部分CD抗原的參考值及臨牀意義
指標 |
正常範圍 |
臨牀意義 |
CD3 |
60~80% |
CD3降低常見於:①惡性腫瘤;②自身免疫性疾病,如系統性紅斑狼瘡、類風溼關節炎等;③先天性免疫缺陷病,艾滋病;④接受放療、化療或者使用腎上腺皮質激素等免疫抑制劑。 CD3上升則見於甲亢、淋巴細胞性甲狀腺炎、慢性活動性肝炎、重症肌無力和器官移植排斥反應等。 |
CD4 |
35~55% |
CD4淋巴細胞減小常見於惡性腫瘤、遺傳性免疫缺陷病、艾滋病、應用免疫抑制劑的患者。 |
CD8 |
20~30% |
CD8淋巴細胞增多常見於自身免疫病,如SLE、慢性活動性肝炎、腫瘤及病毒感染等。 |
CD4/CD8 |
1.4~2.0 |
CD4/CD8﹤1.4常見於:①免疫缺陷病,如艾滋病的比值常小於0.5;②惡性腫瘤;③再生障礙性貧血,某些白血病;④某些病毒感染,急性鉅細胞病毒感染;⑤其它,SLE腎病、傳染性單核細胞增多症、骨髓移植恢復期等。 CD4/CD8﹥2.0常見於自身免疫性疾病,如系統性紅斑狼瘡、類風溼關節炎、I型糖尿病等。此外還可用於監測器官移植的排斥反應,若移植後CD4/CD8較移植前明顯增長,則可能發生排異反應。 |
CD56 |
|
某些病毒感染早期、長期使用干擾素及其干擾的誘導物,骨髓移植後、習慣性流產等可增高CD56。 惡性腫瘤特別是中晚期伴轉移的腫瘤,免疫缺陷病及使用免疫抑制劑等可下降CD56。 |
2 K-means算法
K-means算法(K均值聚類算法)是一種動態聚類方法,由James MacQueen於1976年提出,但算法自己思想就已經由Stuart Lloyd於1957年給出。它是一種獲得最普遍使用的基於劃分的聚類算法,把n個對象分爲k個簇(cluster),以使簇內具備較高的類似度,類似度的計算根據一個簇中對象的平均值來進行[17]。它與處理混合正態分佈的最大指望算法(Expectation-maximization algorithm,EM)很類似,由於他們都試圖找到數據中天然聚類的中心。但前者傾向於尋找空間範圍容易比較的簇,然後者則容許該簇擁有各類形態。
聚類屬於無監督學習,以往的迴歸、樸素貝葉斯、SVM等都是有類別標籤Y的,也就是說樣例中已經給出了分類[18]。在監督學習中,標籤信息協助機器學習同類樣本之間存在的共性,在預測時只需斷定給定樣本與哪一個類別的訓練樣本最類似便可。而聚類的樣本中卻沒有給定Y,只有特徵X。在非監督學習中,再也不有標籤信息的指導,遇到一維或二維數據的劃分問題,人用肉眼就很容易完成,可機器就傻眼了。不過對於高維多組樣本數據,用機器學習劃分顯然更現實。設計算法讓機器來完成將全部樣本分紅若干個簇,而且每一個簇中的樣本具備更高的類似度,這就是聚類分析算法的終極目標。
K-means算法主要解決的也是這個問題。以下圖3所示,咱們能夠看到,在圖的左邊有一些點,咱們用肉眼能夠看出來有四個點羣,可是咱們怎麼經過計算機程序找出這幾個點羣來呢?好比假設宇宙中的星星能夠表示成三維空間中的點集,聚類的目的是找到每一個樣本X潛在的類別Y,並將同類別Y的樣本X放在一塊兒。好比上面的星星,聚類後結果是一個個星團,星團裏面的點相互距離比較近,星團間的星星距離就比較遠了。
圖3 K-means要解決的問題
1)基本步驟
K-means方法是預先給定一系列N維向量,和一個聚類數目的變量k,而後將這些向量聚爲k類。其基本步驟[19]是
(1)任意選擇k個對象做爲初始的簇中心;
(2)repeat
(3) 根據與每一箇中心的距離,將每一個對象賦給「最近」的簇;
(4) 從新計算每一個簇的平均值;
(5)until 再也不發生變化。
算法很簡單,但不少複雜算法的實際效果或許都不如它,並且它的局部性較好,容易並行化,對大規模數據集頗有意義。算法的時間複雜度爲O(tkmn),空間複雜度爲O((m+k)n),其中,t爲迭代次數,k爲簇的數目,m爲記錄數,n爲維數。
圖4 K-means基本步驟示意圖
該算法的基本步驟能夠用上面的圖4來表示[20]。從上圖能夠看到,A、B、C、D、E是圖中的五個點,而灰色的點是咱們的種子點,也就是咱們要用來找點羣的初始中心點。這裏有兩個種子點,因此k取爲2。其算法能夠表述爲
(1)隨機在圖中取k(這裏k=2)個種子點。
(2)而後對圖中的全部點求到這K個種子點的距離,假如點Pi離種子點Si最近,那麼Pi屬於Si點羣。(上圖中,咱們能夠看到A,B屬於上面的種子點,C,D,E屬於下面中部的種子點。)
(3)接下來,咱們要移動種子點到屬於他的「點羣」的中心。(見圖上的第三步。)
(4)而後重複第(2)和第(3)步,直到種子點沒有移動(咱們能夠看到圖中的第四步上面的種子點聚合了A,B,C,下面的種子點聚合了D,E。)
3)具體描述[21]
在k-means聚類問題中,給定m個訓練樣本劃分紅k個類簇(),沒有了類別標籤Y。其準則函數形式以下
其中c爲樣本的簇分配狀況,μ爲簇的質心,爲樣本對應的簇的中心。這裏準則函數計算的是全部樣本點與其對應的簇中心點的距離平方和,使準則函數最小的簇劃分則爲最優的聚類。
這裏的準則函數不是凸函數,找到全局最優解是不可能的,可是能保證它收斂到局部最優解。首先,更新樣本所屬的簇時,老是選擇與其最近的簇中心點,導致在每次迭代過程都是非遞增的,那麼在準則函數J也是非遞增的。其次,簇中心點被更新爲簇中全部樣本的均值時也能保證J是非遞增的,能夠經過準則函數J對第j個簇中心點μj求偏導(j≤k)並令其爲0,即,獲得簇中心點更新規則:簇的最小化準則函數的中心點是簇中各點的均值。
對於給定訓練樣本,該算法能夠具體描述以下(採用歐氏距離)
(1)隨機從X中選取k個聚類中心點爲
(2)重複下面過程直至收斂
{
對於每一個樣本,計算其應該屬於的簇
對於每一個簇,從新計算其中心
}
(3)返回μ,c
k是咱們事先給定聚類的簇數,表明k個簇中與樣本距離最近的那個類,表明咱們對屬於同一個樣本中心點的猜想。算法的外循環嵌套兩個內循環,外循環完成準則函數的計算使收斂,內層循環完成兩個工做:一是將每一個樣本劃分到與其最近的類簇中;二是將屬於同一個類簇的樣本均值做爲新的類簇中心。
5)注意問題[22]
(1)k值的選取
在K-means算法中k是事先給定的,這個k值的選定是很是難以估計的。不少時候,事先並不知道給定的數據集應該分紅多少個類別才最合適。這也是K-means算法的一個不足。常見的有的算法有
① 與層次聚類結合的方法[19]:首先採用層次凝聚算法決定結果粗的數目,並找到一個初始聚類,而後用迭代重定位來改進該聚類。
② 穩定性方法[23]:對一個數據集進行2次重採樣產生2個數據子集,再用相同的聚類算法對2個數據子集進行聚類,產生2個具備k個聚類的聚類結果,計算2個聚類結果的類似度的分佈狀況。2個聚類結果具備高的類似度說明k個聚類反映了穩定的聚類結構,其類似度能夠用來估計聚類個數。採用此方法試探多個k,找到合適的k值。
③ 系統演化方法[23]:將一個數據集視爲僞熱力學系統,當數據集被劃分爲k個聚類時稱系統處於狀態k。系統由初始狀態k=1出發,通過分裂過程和合並過程,系統將演化到它的穩定平衡狀態k0,其所對應的聚類結構決定了最優類數k0。系統演化方法能提供關於全部聚類之間的相對邊界距離或可分程度,它適用於明顯分離的聚類結構和輕微重疊的聚類結構。
④ 基於Canopy的初始劃分方法[24]:Canopy算法經常用來對初始數據作一個粗略的劃分,它的結果能夠爲以後的聚類提供幫助,好比對K-Means來講提供k值,另外還能很好的處理孤立點。基於Canopy的聚類算法將聚類過程分爲兩個階段,第一階段選擇簡單、計算代價較低的方法計算對象類似性,將類似的對象放在一個子集中,這個子集被叫作Canopy。經過一系列計算獲得的若干Canopy之間能夠是重疊的,但不會存在某個對象不屬於任何Canopy的狀況,能夠把這一階段看作數據預處理。第二階段在各個Canopy內使用傳統的聚類方法(如K-means),不屬於同一Canopy的對象之間不進行類似性計算[25]。劃分後結果圖見下圖5所示。
還有的經過類的自動合併和分裂,獲得較爲合理的類型數目k,例如ISODATA算法[26];根據方差分析理論,應用混合F統計量來肯定最佳分類數,並應用了模糊劃分熵來驗證最佳分類數的正確性[27]。還有使用一種結合全協方差矩陣的RPCL算法(它的思想是:對每一個輸入而言,不只競爭獲勝單元的權值被修正以適應輸入值,並且對次勝單元採用懲罰的方法使之遠離輸入值),並逐步刪除那些只包含少許訓練數據的類[28-30]。
圖5 Canopy聚類劃分結果圖
(2)初始質心的選取
在K-means算法中,首先須要根據初始聚類中心來肯定一個初始劃分,而後對初始劃分進行優化。這個初始聚類中心的選擇對聚類結果有較大的影響,一旦初始值選擇的很差,可能沒法獲得有效的聚類結果,這也成爲K-means算法的一個主要問題。基本方法是隨機的選取初始質心,可是這樣簇的質量經常不好。對於該問題的解決,如下列出一些常見方法[31]
① 屢次運行,每次使用一組不一樣的隨機初始質心,而後選取具備最小SSE(偏差的平方和,即前面的準則函數)的簇集。這種策略簡單,可是效果可能很差,這取決於數據集和尋找的簇的個數。
② 取一個樣本,並使用層次聚類技術對它聚類。從層次聚類中提取k個簇,並用這些簇的質心做爲初始質心。該方法一般頗有效,但僅對下列狀況有效:(1)樣本相對較小,例如數百到數千(層次聚類開銷較大);(2)k相對於樣本大小較小。
③ 隨機地選擇第一個點,或取全部點的質心做爲第一個點。而後,對於每一個後繼初始質心,選擇離已經選取過的初始質心最遠的點。使用這種方法,確保了選擇的初始質心不只是隨機的,並且是散開的。可是,這種方法可能選中離羣點。此外,求離當前初始質心集最遠的點開銷也很是大。爲了克服這個問題,一般該方法用於點樣本。因爲離羣點不多(多了就不是離羣點了),它們多半不會在隨機樣本中出現。計算量也大幅減小。
④ 二分K均值是基本K均值算法的直接擴充,它基於一種簡單想法:爲了獲得k個簇,將全部點的集合分裂成兩個簇,從這些簇中選取一個繼續分裂,如此下去,直到產生k個簇。帶分裂的簇有許多不一樣的選擇方法,能夠選擇最大的簇,選擇具備最大SSE的簇,或者使用一個基於大小和SSE的標準進行選擇。咱們一般使用結果簇的質心做爲基本K均值的初始質心,對結果簇逐步求精,由於最終的簇集並不表明使SSE局部最小的簇。
還有的採用前面提到的基於Canopy的聚類算法,劃分後相似上圖5所示;採用遺傳算法(GA)進行初始化,之內部聚類準則做爲評價指標[32-33];以及提出最近鄰K均值、極遠鄰K均值和自適應K均值3種優化算法[34]和基於個體輪廓係數自適應地選取優秀樣本的方法[35]優化初始中心的算法。K-Means++算法[36]也能很好地初始化質心。
(3)距離的度量
爲了將點歸到最近的簇裏,咱們須要鄰近度(proximity)來量化所考慮的數據的「最近」概念[31]。而相異度(dissimilarity)或類似度(similarity)就是咱們用來描述它的兩個量,咱們首先要考慮如何定量計算兩個可比較元素間的鄰近度,咱們必須在數學上對它們進行定量定義。
設,其中X,Y是兩個元素項,各自具備n個可度量特徵屬性,那麼X和Y的相異度(類似度)定義爲:,其中R爲實數域[37]。也就是說相異度(類似度)是兩個元素對實數域的一個映射,所映射的實數定量表示兩個元素的相異度(類似度),咱們一般採用的方法就是計算樣本間的「距離」(Distance)。採用什麼樣的方法計算距離是很講究,甚相當繫到分類的正確與否。聚類分析主要針對的數據類型包括區間標度變量、二元變量、標稱變量、序數型變量、比例標度型變量,以及由這些數據類型組合成的複合型變量。針對這些數據類型的距離度量方法也各類各樣,但定義的距離函數必定要知足必定條件[19]。
下面給出標量的相異度的經常使用計算方法[38-40]
① 歐幾里得距離(Euclidean Distance)
歐氏距離是最易於理解的一種距離計算方法,源自歐氏空間中兩點間的距離公式。其意義就是兩個元素在歐氏空間中的集合距離,由於其直觀易懂且可解釋性強,被普遍用於標識兩個標量元素的相異度。
② 曼哈頓距離(Manhattan Distance)
從名字就能夠猜出這種距離的計算方法了。想象你在曼哈頓要從一個十字路口開車到另一個十字路口,駕駛距離是兩點間的直線距離嗎?顯然不是,除非你能穿越大樓。實際駕駛距離就是這個「曼哈頓距離」。而由於曼哈頓距離名稱的來源,曼哈頓距離也稱爲城市街區距離(City Block distance)。
③ 閔可夫斯基距離(Minkowski Distance)
閔氏距離不是一種距離,而是一組距離的定義。λ能夠隨意取值,能夠是負數,也能夠是正數,或是無窮大。當λ取1時,它就是曼哈頓距離;當λ取2時,它就是歐幾里得距離;當λ取無窮時,它就是切比雪夫距離。這三個公式的求中心點有一些不同的地方,咱們看下圖(第一幅圖中λ在0~1之間)
圖6基於三種距離公式的逼近中心的方式示意圖
上面這幾個圖的大意是他們是怎麼逼近中心的,第一個圖以星形的方式,第二個圖以同心圓的方式,第三個圖以菱形的方式[20]。另外還有馬氏距離(Mahalanobis Distance)、蘭氏距離(Canberra Distance)等一些距離的定義,這裏再也不詳談。
而對於向量,一種流行的作法是用兩個向量的餘弦度量,即餘弦類似度(cosine similarity),其度量公式爲[31]
其中與分別表示X與Y的歐幾里得範數,夾角餘弦取值範圍爲[-1,1]。夾角餘弦越大,表示兩個向量的夾角越小,夾角餘弦越小表示兩向量的夾角越大。當兩個向量的方向重合時,夾角餘弦取最大值1。當兩個向量的方向徹底相反時,夾角餘弦取最小值-1。另外還有Jaccard係數、廣義Jaccard係數和相關性等類似性度量方法。
(4)距離的標準化
前面算法的具體描述中使用的就是歐幾里得距離,這樣計算標量相異度的方式有一點問題,就是取值範圍大的屬性對距離的影響高於取值範圍小的屬性。若是樣本有多個屬性,並且屬性不在同一個定義域內,則有必要對樣本數據進行預處理,防止某些值很大的屬性在計算距離時佔主導優點,最經常使用的就是標準化處理(standardization)。
一種方法是使得每一個屬性均值爲0,方差爲1,即爲自標準化[41]。假設樣本集X的均值(mean)爲m,標準差(standard deviation)爲s,那麼X的「標準化變量」表示爲
通過簡單的推導就能夠獲得間的標準化歐氏距離(Standardized Euclidean distance)的公式
若是將方差的倒數當作是一個權重,這個公式能夠當作是一種加權歐氏距離(Weighted Euclidean distance)。
另一個經常使用的解決方法就是將各個屬性值按比例映射到相同的取值區間,這樣是爲了平衡各個屬性對距離的影響。通常都將數據都映射到[0,1]空間,而後再計算距離[39]。對於樣本集X,最大值和最小值分別是Xmax和Xmin,那麼映射公式爲
前面兩種標準化方法都容易受到孤立點的影響。特別是前者的均值和標準差受的影響很大,後者只有孤立點是最大最小值時才影響極大。一般對於自標準化,咱們用中位數(即中間值)替代均值,用絕對標準差替代標準差,以減少影響[31]。
傳統的聚類算法,如K-means、FCM等,都假設樣本的特徵屬性對每一個類別是同等重要的。然而,事實上,不一樣的屬性對於不一樣的類別的貢獻卻極可能是不一樣的。文獻[31]介紹了一種經過對每一個屬性以貢獻加權的距離度量方法,而文獻[41]也給出了聚類前特徵選擇或梯度降低法來區別各特徵屬性的權重的方法,並詳細說明了特徵空間屬性加權模糊核聚類算法。
(5)質心的計算
距離度量無論是採用歐式距離仍是採用餘弦類似度,基本K-means算法中簇的質心都是取其均值,即向量各維取平均便可,然而這樣卻容易使該算受到孤立點的影響。當聚類的樣本點中有孤立點時,在計算類簇質點的過程當中會受到干擾,形成所得質心點和實際質心點位置誤差過大,從而使類簇發生「畸變」。
爲了解決該問題,K-medoids算法(K中心點算法)提出了新的質點選取方式,用類中位置最中心的對象(中心點)來代替對象的平均值做爲參考點,但它還是基於最小化全部對象與參照點之間的相異度之和的原則來執行的[38]。在K中心點算法中,每次迭代後的質點都是從聚類的樣本點中選取,而選取的標準就是當該樣本點成爲新的質點後能提升類簇的聚類質量,使得類簇更緊湊。該算法使用絕對偏差標準來定義一個類簇的緊湊程度。若是某樣本點成爲質點後,絕對偏差能小於原質點所形成的絕對偏差,那麼K中心點算法認爲該樣本點是能夠取代原質點的,在一次迭代重計算類簇質點的時候,咱們選擇絕對偏差最小的那個樣本點成爲新的質點。所以,與K-means算法相比,當存在噪聲和孤立點數據時,它能更健壯而不容易受極端數據的影響。但在時間複雜度上,該算法約爲О(n2),執行代價比後者要高得多[19]。
(6)算法的終止條件
算法的終止條件能夠有三種:
① 準則函數值的變化小於一個閾值;
② 類簇中心在必定範圍內再也不變化;
③ 達到指定的迭代次數T。
對於準則函數而言,使用不一樣的距離度量,它的形式和最終目的不相同。當採用歐式距離時,目標函數通常爲最小化對象到其簇質心的距離的平方和,以下式
當採用餘弦類似度時,目標函數通常爲最大化對象到其簇質心的餘弦類似度和,以下式
(7)空簇的處理
若是全部的點在指派步驟都未分配到某個簇,就會獲得空簇。若是這種狀況發生,則須要某種策略來選擇一個替補質心,不然的話,平方偏差將會偏大。一種方法是選擇一個距離當前任何質心最遠的點。這將消除當前對總平方偏差影響最大的點。另外一種方法是從具備最大SSE的簇中選擇一個替補的質心。這將分裂簇並下降聚類的總SSE。若是有多個空簇,則該過程重複屢次。另外,編程實現時,要注意空簇可能致使的程序bug[31]。
(8)孤立點的識別
使用平方偏差標準時,孤立點(outlier,也稱離羣點)可能過分影響所發現的簇。具體地說,當存在孤立點時,結果簇的質心(原型)可能不如沒有孤立點時那樣有表明性,而且SSE也比較高。正由於如此,提早發現孤立點並刪除它們是有用的[31]。然而,應當意識到有一些聚類應用,不能刪除孤立點:當聚類用來壓縮數據時,必須對每一個點聚類;在某些狀況下(如財經分析),明顯的孤立點(如商業詐騙,偷稅漏稅等)可能正是最令感興趣的點。一個明顯的問題是如何識別孤立點。基於計算機的孤立點的探測方法,能夠大體分爲三類:統計學方法,基於距離的方法和基於偏離的方法[19,31,36]。常見的k-mediods算法就能在必定程度上消除掉孤立點和噪聲的影響。
(9)收斂的時間複雜度
從K-means算法框架能夠看出,該算法須要不斷地進行樣本分類調整,不斷地計算調整後的新的聚類中心,所以當數據量很是大時,算法的時間開銷是很是大的。因此須要對算法的時間複雜度進行分析、改進,提升算法應用範圍。有的提出用三角不等式[42]或樹形結構[17,43]等對K-means進行加速的算法,以減小沒必要要的距離計算。還有的從該算法的時間複雜度進行分析考慮,經過必定的類似性準則來去掉聚類中心的侯選集。另外,若是咱們在初始化類簇中心的時候就遵循「使同一個類簇中的數據儘量類似,而不一樣類簇間的樣本彼此離得越遠越好」的原則,從樣本分佈的最邊緣開始選取類簇中心的,以免類簇中心被初始化到數據較爲密集的地方,這樣就大大下降算法收斂須要的迭代次數,也可減少時間複雜度[21]。
(10)指派的問題
K-means算法的一大特色是每一個樣本只能被硬性分配(hard assignment)到一個類或簇中,這種方法不必定是最合理的,但聚類自己就是一個具備不肯定性的問題。如圖7(a)所示,實際狀況中的類或簇極可能存在重疊的狀況,那麼重疊的部分的歸屬就頗具爭議了;或者給定一個新樣本集,如圖7(b),即存在其中的樣本點到某些簇中心的距離相等或接近的狀況,咱們又該怎麼辦?若是咱們採用機率的方法[31],像高斯混合模型(Gauss Mixture Model,GMM)[44-46]那樣給出樣本屬於每一個類簇的機率值,或採用模糊理論,像FCM算法[32-33,41],能從必定程度上反映聚類的不肯定性就更合理了。上面圖5的Canopy聚類劃分也能解決這個問題。
圖7 (a)簇重疊;(b)點到某些簇的距離相等
(11)數據的屬性
k-means算法是在數據挖掘領域中廣泛應用的聚類算法,它只能處理數值型數據,而不能處理分類屬性型數據[18],例如表示人的屬性有:姓名、性別、年齡、家庭住址等屬性。而k-modes算法就可以處理分類屬性型數據,它是對k-means算法的擴展。k-modes算法採用模式來代替類的平均值,採用新的相異性度量方法來處理分類性質的數據,採用基於頻率的方法來修改聚類的模式[31]。k-modes算法能直接處理分類型屬性併產生聚類模型,並且對於大型數據集仍有很高的效率[47-48]。綜合兩種方法就能夠處理有數值類型和分類類型屬性的數據,即k-prototypes方法[49]。
本文中公式相關文獻或連接中都很容易找到,因爲輸入比較麻煩,在此省略。略表歉意!
參考文獻
1.王立偉.數據挖掘研究現狀綜述.圖書與情報,2008(5):41~46
2.王慧中,彭安羣.數據挖掘研究現狀及發展趨勢.工礦自動化,2011(2):29~32
3.王桂芹,黃道.數據挖掘技術綜述.電腦應用技術,2007(69):9~14
4.李菁菁,邵培基,黃亦瀟.數據挖掘在中國的現狀和發展研究.管理工程學報,2004(3):10~15
5.Tipawan Silwattananusarn,KulthidaTuamsuk.Data Mining and Its Applications for Knowledge Management:A Literature Review from 2007 to 2012.International Journal of Data Mining & Knowledge Management Process,2012(9):13~24
6.孫吉貴,劉傑,趙連宇.聚類算法研究.軟件學報,2008(1):48~61
7.J. MacQueen.Some methods for classification and analysis of multivariate observations.Proceedings of the Fifth Berkeley Symposium on Mathematical Statistics and Probability,1967(1):281~297
8.宋平根,李素文.流式細胞術的原理和應用.北京:北京師範大學出版社,1992
9.M. R. Melamed,T. Lindmo,M. L. Mendelsohn.Flow Cytometry and Sorting.New York:John Wiley and Sons,1990
10.曹雪濤.醫學免疫學.北京:人民衛生出版社,2013
11.張瑞華,王進,蘭文君.流式細胞術及其在生物醫學領域中的應用.山東輕工業學院學報,2011(8):20~24
12.張藝.流式細胞儀構成與工做原理.醫療設備信息,2005(8):25~26
13.J. Paul Robinson.Flow Cytometry.Encyclopedia of Biomaterials and Biomedical Engineering,2004:630~640
14.瑞菲爾·努納茲.流式細胞術原理與科研應用簡明手冊.北京:化學工業出版社,2005
15.王蘭蘭,吳建民.臨牀免疫學與檢驗.北京:人民衛生出版社,2007
16.http://en.wikipedia.org/wiki/T_cell
17.http://en.wikipedia.org/wiki/K-means_clustering
18.邵峯晶,於忠清.數據挖掘原理與算法.北京:中國水利水電出版社,2003
19.韓家煒,坎布爾.數據挖掘:概念與技術.北京:機械工業出版社,2001
20.http://coolshell.cn/articles/7779.html
21.http://www.cnblogs.com/jeromeblog/p/3425919.html
22.http://blog.csdn.net/qll125596718/article/details/8243404#
23.王開軍,李健,張軍英,過立新.聚類分析中類數估計方法的實驗比較.計算機工程,2008(5):198~199
24.Andrew McCallum,Kamal Nigam,Lyle H. Ungar.Efficient Clustering of High-Dimensional Data Sets with Application to Reference Matching.Proceedings of the sixth ACM SIGKDD international conference on Knowledge discovery and data mining.2000:169~178
25.http://www.cnblogs.com/vivounicorn/archive/2011/09/23/2186483.html
26.楊小明,羅雲.ISODATA算法的實現與分析.採礦技術,2006(6):66~68
27.孫才志,王敬東,潘俊.模糊聚類分析最佳聚類數的肯定方法研究.模糊系統與數學,2001(3):89~92
28.李昕,鄭宇,江芳澤.用改進的RPCL算法提取聚類的最佳數目.上海大學學報,1999(10):409~413
29.謝皝,張平偉,羅晟.基於RPCL的模糊關聯規則挖掘.計算機工程,2011(10):44~46
30.魏立梅,謝維信。聚類分析中競爭學習的一種新算法.電子科學學刊,2000,22(1):13~18
31.Pang-Ning Tan,Michael Steinbach,Vipin Kumar.數據挖掘導論.北京:人民郵電出版社,2011
32.吳香庭.基於遺傳算法的K-means聚類方法的研究.青島:山東科技大學,2010
33.張逸清.基於遺傳算法的K-MEANS聚類改進研究.重慶:重慶大學,2006
34.王秀芳,王巖.優化K均值隨機初始中點的改進算法.化工自動化及儀表,2012(10):1302~1304
35.張靖,段富.優化初始聚類中心的改進k-means算法.計算機工程與設計,2013(5):1691~1694
36.http://en.wikipedia.org/wiki/K-means%2B%2B
37.http://www.cnblogs.com/leoo2sk/archive/2010/09/20/k-means.html
38.李雄飛,李軍.數據挖掘與知識發現.北京:高等教育出版社,2003
39.http://www.cnblogs.com/heaad/archive/2011/03/08/1977733.html
40.陳燕.數據挖掘技術與應用.北京:清華大學出版社,2011
41.楊傑,姚莉秀.數據挖掘技術及其應用.上海:上海交通大學出版社,2011
42.Charles Elkan.Using the Triangle Inequality to Accelerate k-Means.2003
43.V. Ramasubramanian,Kuldip K. Paliwal.Fast K-Dimensional Tree Algorithms for Nearest Neighbor Search with Application to Vector Quantization Encoding.IEEE Transactions on Signal Processing,1992(3):518~531
44.http://en.wikipedia.org/wiki/Mixture_model#Gaussian_mixture_model
45.http://www.cnblogs.com/jerrylead/archive/2011/04/06/2006924.html
46.http://www.cnblogs.com/jerrylead/archive/2011/04/06/2006936.html
47.Miguel Á. Carreira-perpiñán,Weiran Wang.The K-Modes Algorithm for Clustering.2013(4)
48.Rishi Syal,Dr V. Vijaya Kumar.Innovative Modified K-Mode Clustering Algorithm.International Journal of Engineering Research and Applications,2012,2(4):390~398
49.Zhexue Huang.Clustering large data sets with mixed numeric and categorical values.In The First Pacific-Asia Conference on Knowledge Discovery and Data Mining,1997:21~34