范瀟文 楊琳琳 洪佳明 魏航 陳沁群
中圖分類號(hào):TP18文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1003-9082(2019)08-000-01
引言
近年來(lái),在全球信息化浪潮的推動(dòng)下,機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘等計(jì)算機(jī)界的熱門(mén)研究領(lǐng)域越來(lái)越多地應(yīng)用于醫(yī)療,但在實(shí)際的醫(yī)療診斷中,存在大量的不平衡數(shù)據(jù),即分類數(shù)據(jù)中某一類(多數(shù)類)的數(shù)量遠(yuǎn)大于另一類(少數(shù)類)的數(shù)量[1]。不平衡數(shù)據(jù)分類問(wèn)題已成為數(shù)據(jù)挖掘領(lǐng)域內(nèi)一個(gè)重要的研究課題。
對(duì)不平衡數(shù)據(jù)的分類問(wèn)題的探討具有很大的學(xué)術(shù)研究?jī)r(jià)值和廣泛的現(xiàn)實(shí)應(yīng)用意義,針對(duì)該類特點(diǎn)的數(shù)據(jù)集的數(shù)據(jù)挖掘方法尤其是隨機(jī)森林分類算法的深入研究,有助于理清不平衡分類問(wèn)題的重點(diǎn)和難點(diǎn),抓住隨機(jī)森林算法影響分類效果的關(guān)鍵和實(shí)質(zhì)。本文提出改進(jìn)的基于CURE-SMOTE算法的隨機(jī)森林對(duì)不平衡數(shù)據(jù)進(jìn)行分類,并在此基礎(chǔ)上進(jìn)行不平衡數(shù)據(jù)分類研究,實(shí)現(xiàn)更為精準(zhǔn)有效的不平衡數(shù)據(jù)分類,以期促進(jìn)醫(yī)學(xué)事業(yè)的發(fā)展。
本文選取UCI中的Pima、Haberman、Post-operative、New-thyroid四個(gè)醫(yī)學(xué)數(shù)據(jù)集,并對(duì)數(shù)據(jù)進(jìn)行數(shù)據(jù)預(yù)處理。同時(shí)提出改進(jìn)的基于CURE-SMOTE算法的隨機(jī)森林模型,結(jié)合訓(xùn)練數(shù)據(jù)集的不平衡程度,即數(shù)據(jù)預(yù)處理的平衡化采樣所給算法帶來(lái)的影響,以實(shí)現(xiàn)對(duì)醫(yī)學(xué)不平衡數(shù)據(jù)更為精準(zhǔn)有效的分類。
一、基于CURE-SMOTE算法的隨機(jī)森林
1.CURE算法原理
CURE[2]層次聚類算法是針對(duì)大數(shù)據(jù)集的高效算法,適合任意形狀的數(shù)據(jù)集,對(duì)孤立點(diǎn)不敏感,優(yōu)于BIRCH、CLARANS和DBSCAN算法等,具有識(shí)別異常點(diǎn)的性質(zhì)[3]。CURE算法的基本思想是通過(guò)劃分?jǐn)?shù)據(jù)集,視所有樣本點(diǎn)各為一個(gè)簇,然后局部聚類后再合并,直到結(jié)束,適合分布式擴(kuò)展[4]。具體步驟如下:
Step1 初始化參數(shù):形成的簇?cái)?shù),代表點(diǎn)(代表該簇的大致分布)的數(shù)目,收縮因子。
Step2 聚類:對(duì)每個(gè)劃分進(jìn)行局部聚類,獲得代表點(diǎn)后,利用收縮因子收縮或向族中心移動(dòng);
Step3 合并:對(duì)局部簇在進(jìn)行聚類,直到整個(gè)數(shù)據(jù)集聚類完畢。
CURE算法提出者建議,算法中的收縮因子取值在[0.2 ,0.7],代表點(diǎn)的數(shù)量在大于10時(shí),能取得較好的聚類效果。
2.CURE-SMOTE算法設(shè)計(jì)與分析
CURE-SMOTE算法設(shè)計(jì)思想為:將小類樣本點(diǎn)經(jīng)過(guò)CURE聚類,保留聚類后的點(diǎn)、若干個(gè)代表點(diǎn)和中心點(diǎn),然后應(yīng)用修正的SMOTE公式產(chǎn)生新樣本。
Step1 數(shù)據(jù)集歸一一化處理,提取小類樣本X,計(jì)算小類樣本之間的距離dist,初次每個(gè)點(diǎn)為一個(gè)簇類。對(duì)于一個(gè)簇類U,Ur和Uc代表類U的代表點(diǎn)集合和中心點(diǎn)。設(shè)p,q為數(shù)據(jù)項(xiàng),則兩個(gè)簇類U和V之間的距離為:
Step2 設(shè)置聚類個(gè)數(shù)c,進(jìn)行聚類,合并距高最小的兩個(gè)簇類,更新中心點(diǎn)和代表點(diǎn)。
其中|U|表示該簇類所含數(shù)據(jù)項(xiàng)的個(gè)數(shù),α為收縮因子(一般取0.5)。對(duì)于增長(zhǎng)速度非常慢的簇類,判定為異常點(diǎn),刪除。若代表點(diǎn)的數(shù)量超過(guò)要求,則選取距離聚類中心最遠(yuǎn)的數(shù)據(jù)點(diǎn)作為第一個(gè)代表點(diǎn),而后的代表點(diǎn)為距離前一個(gè)代表點(diǎn)最遠(yuǎn)的數(shù)據(jù)點(diǎn)。達(dá)到聚類中心個(gè)數(shù),則算法停止,判斷每個(gè)簇類的樣本個(gè)數(shù),樣本個(gè)數(shù)過(guò)少的簇需要?jiǎng)h除。
Step3 根據(jù)修正的SMOTE插值公式,產(chǎn)生新的樣本,表示經(jīng)過(guò)CURE算法聚類后的樣本點(diǎn),向代表點(diǎn)隨機(jī)移動(dòng)。
Step4 計(jì)算數(shù)據(jù)集的不平衡度IR,當(dāng)數(shù)據(jù)集沒(méi)有達(dá)到IR。時(shí),返回Step3.
Step5 利用隨機(jī)森林算法對(duì)處理后的新數(shù)據(jù)集和大類樣本進(jìn)行分類操作。
其中為人工生成的新樣本,直到IR大于或等于閾值IR時(shí),需要生成的樣本量為n。距離衡量采用歐幾里德距離,樣本1 X1=(X11,X12,...X1M)和樣本2 X2=(X21,X22,...,X2M)之間的距離為
在上述CURE-SMOTE算法聚類過(guò)程中,通過(guò)設(shè)定算法結(jié)束準(zhǔn)則:達(dá)到聚類個(gè)數(shù)、達(dá)到代表點(diǎn)的數(shù)量、達(dá)到距離閾值等其中種, 避免設(shè)定原始SMOTE算法的k值,減小算法的不穩(wěn)定性,對(duì)算法可控。利用CURE-SMOTE算法k可進(jìn)行不平衡數(shù)據(jù)處理。
二、基于CURE-SMOTE算法的隨機(jī)森林模型研究
探究隨機(jī)森林在解決類別不平衡的醫(yī)學(xué)數(shù)據(jù)問(wèn)題的性能,選取UCI中的Pima、Haberman、Post-operative、New-thyroid四個(gè)醫(yī)學(xué)數(shù)據(jù)集,并對(duì)數(shù)據(jù)進(jìn)行數(shù)據(jù)預(yù)處理,然后使用隨機(jī)森林訓(xùn)練、測(cè)試,使用綜合評(píng)價(jià)指標(biāo)F1進(jìn)行評(píng)估。
1.構(gòu)建實(shí)驗(yàn)數(shù)據(jù)集
(1) Pima
數(shù)據(jù)集的目標(biāo)是基于數(shù)據(jù)集中包含的某些診斷測(cè)量來(lái)診斷性的預(yù)測(cè)患者是否患有糖尿病。數(shù)據(jù)集由多個(gè)醫(yī)學(xué)預(yù)測(cè)變量和一個(gè)目標(biāo)變量組成Outcome。
(2)Haberman
數(shù)據(jù)集包含了關(guān)于乳腺癌手術(shù)患者生存的研究案例,該數(shù)據(jù)集包含了一項(xiàng)研究的病例,該研究是在1958年至1970年期間在芝加哥大學(xué)比林斯醫(yī)院(University of Chicago s Billings Hospital)進(jìn)行的,研究對(duì)象是接受過(guò)乳腺癌手術(shù)的患者的存活率。
(3)Post-operative
該數(shù)據(jù)集的分類任務(wù)是確定患者在術(shù)后恢復(fù)區(qū)應(yīng)該被送往下一步。因?yàn)槭中g(shù)后降低體溫是一個(gè)重要的問(wèn)題,所以這些屬性與體溫測(cè)量值基本一致。
(4)New-thyroid
這個(gè)數(shù)據(jù)集是UCI存儲(chǔ)庫(kù)中關(guān)于甲狀腺的幾個(gè)數(shù)據(jù)庫(kù)之一。患者類別有正常、甲狀腺功能亢進(jìn)、甲狀腺功能減退。
2.數(shù)據(jù)預(yù)處理
2.1數(shù)據(jù)清理與輸出數(shù)據(jù)編碼
主要進(jìn)行的數(shù)據(jù)清理包括數(shù)據(jù)集成、類型轉(zhuǎn)換和混亂格式處理。數(shù)據(jù)集成的主要工作是從數(shù)據(jù)集中把本課題研究所利用的數(shù)據(jù)特征和對(duì)應(yīng)的診斷結(jié)果擇取出來(lái);類型轉(zhuǎn)換的主要工作是對(duì)輸出數(shù)據(jù)(診斷結(jié)果)進(jìn)行重新的編碼,正常類別的標(biāo)識(shí)為“0”;異常類別的標(biāo)識(shí)為“1”;混亂格式處理的主要工作是把數(shù)據(jù)變成標(biāo)準(zhǔn)的矩陣樣式,每一行代表一個(gè)記錄實(shí)例,每一列是一個(gè)特征值。
因目標(biāo)屬性書(shū)多分類屬性,需要將其轉(zhuǎn)化為二值日序列。本文采用one-hot編碼(獨(dú)熱編碼)將其轉(zhuǎn)化為多分類模式。
2.2輸入數(shù)據(jù)歸一化
關(guān)于數(shù)據(jù)轉(zhuǎn)換,對(duì)數(shù)據(jù)集中的輸入數(shù)據(jù)進(jìn)行歸一化處理。 因?yàn)楦骶S的數(shù)據(jù)存在數(shù)量級(jí)差異,輸入輸出變量的數(shù)量級(jí)如果差別比較大,可能會(huì)導(dǎo)致網(wǎng)絡(luò)預(yù)測(cè)的效果不佳,為了避免上述情況,需進(jìn)行歸一化處理。數(shù)據(jù)進(jìn)行歸一化處理后,數(shù)據(jù)可以轉(zhuǎn)化為(0-1)之間的數(shù)值數(shù)據(jù)歸一化的方式往往有下面:
(a)最大最小法。函數(shù)的形式如下:
式中,為數(shù)據(jù)各列中的最小值; 為數(shù)據(jù)各列中的最大值。
三、實(shí)驗(yàn)結(jié)果與分析
本文利用UCI機(jī)器學(xué)習(xí)數(shù)據(jù)庫(kù)中的四個(gè)標(biāo)準(zhǔn)數(shù)據(jù)集,對(duì)基于CURE-SMOTE算法的隨機(jī)森林模型的構(gòu)建。
根據(jù)精確率 P(Precision=TP/(TP+FP))、召回率R(Recall=TP/(TP+FN)和綜合評(píng)價(jià)指標(biāo)F1(F-score=2*P*R/P+R)進(jìn)一步分析不同數(shù)據(jù)集在模型中的性能。其中四個(gè)數(shù)據(jù)集的Precision分別為,97.51%、97.54%、79.37%和95.24%,Recall分別為96.01%、95.32%、86.21%和95.24%?;贑URE-SMOTE算法的隨機(jī)森林模型的 F1 得分分別為96.75%、96.43%、82.65%和 95.24%?;贑URE-SMOTE算法的隨機(jī)森林模型有著較好的結(jié)果。這也說(shuō)明了,基于CURE-SMOTE算法的隨機(jī)森林模型在解決醫(yī)學(xué)數(shù)據(jù)不平衡問(wèn)題中起到了較好的效果。
四、結(jié)論
在面對(duì)在實(shí)際的醫(yī)療診斷中存在大量的不平衡數(shù)據(jù),本文針對(duì)該類特點(diǎn)的數(shù)據(jù)集進(jìn)行數(shù)據(jù)挖掘,本文提出的改進(jìn)基于CURE-SMOTE算法的隨機(jī)森林對(duì)不平衡數(shù)據(jù)進(jìn)行分類,并在此基礎(chǔ)上進(jìn)行不平衡數(shù)據(jù)分類研究,抓住了隨機(jī)森林算法影響分類效果的核心和實(shí)質(zhì)。選取UCI中的Pima、Haberman、Post-operative、New-thyroid四個(gè)醫(yī)學(xué)數(shù)據(jù)集在基于CURE-SMOTE算法的隨機(jī)森林模型中取得了較好的效果,結(jié)合訓(xùn)練數(shù)據(jù)集的不平衡程度,即數(shù)據(jù)預(yù)處理的平衡化采樣所給算法帶來(lái)的影響,以實(shí)現(xiàn)對(duì)醫(yī)學(xué)不平衡數(shù)據(jù)更為精準(zhǔn)有效的分類,以期能夠更好地輔助臨床決策。
參考文獻(xiàn)
[1]Longadge MR, Donger MSS, Malik L. Class Imbalance Problem in Data Mining: Review. International Journal of Computer Science and Network, 2013, (2): 83-87.
[2]Guha S, Rastogi R, Shim K. CURE: an efficient clustering algorithm for large databases[C]//ACM SIGMOD Record.ACM,1998, 27(2):73-84
[3]周亞建,徐晨,李維國(guó),基于改進(jìn)CURE聚類算法的無(wú)監(jiān)督異常檢測(cè)方法[J].通信學(xué)報(bào),2010,31(7):18-23.
[4]邱榮財(cái),基于Spark平臺(tái)的CURE算法并行化設(shè)計(jì)與應(yīng)用[D].華南理工大學(xué)碩士論文,2014.