趙亮+吳元琳
摘要:通過數(shù)據(jù)預(yù)處理對767例慢性乙肝患者的數(shù)據(jù),進(jìn)行數(shù)據(jù)清洗、數(shù)據(jù)變換和數(shù)據(jù)規(guī)約,得到規(guī)范的可挖掘的數(shù)據(jù)集。使用關(guān)聯(lián)規(guī)則Apriori分析方法,通過Weka數(shù)據(jù)挖掘平臺,對預(yù)處理后的數(shù)據(jù)進(jìn)行挖掘,得到106627條關(guān)聯(lián)規(guī)則。然后通過過濾程序,篩選出符合要求的4935條強(qiáng)關(guān)聯(lián)規(guī)則。最后根據(jù)用戶(醫(yī)生)的要求,利用可視化方法把結(jié)果呈現(xiàn)給用戶。
關(guān)鍵詞:慢性乙肝;數(shù)據(jù)挖掘;數(shù)據(jù)預(yù)處理;模式解釋
中圖分類號:TP391 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2016)10-0200-03
Abstract: The data of 767 patients with chronic hepatitis B are cleaned, transformed and reduced by data preprocessing, and getting the standard data sets can be mined.It mines the preprocessed data by using the apriori analysis method of association rules on the weka data mining platform, and gets 106627 association rules. Then it filtrates 4935 strong association rules which meet the requirements by the filter program. Finally according to the requirements of the user(the doctor),the results are presented to the user by using the method of visualization.
Key words: chronic hepatitis B; data mining; data preprocessing; interpretation of pattern
慢性乙型肝炎是一種流行廣泛的疾病,全球約有3.5億慢性乙型肝炎病毒感染者,我國現(xiàn)有的慢性乙型肝炎的感染者約9300萬例[1]。本研究以國家科技重大專項“病毒性肝炎中醫(yī)證候生物學(xué)技術(shù)平臺研究(編號:2009ZX10005-020)”中的證候生物學(xué)技術(shù)平臺的數(shù)據(jù)為研究對象,在Weka數(shù)據(jù)挖掘平臺中采用關(guān)聯(lián)規(guī)則等數(shù)據(jù)挖掘方法,進(jìn)行慢性乙肝癥狀和實驗室指標(biāo)等生物信息相關(guān)性研究,獲得慢性乙肝癥狀和生物信息的相關(guān)性的分析結(jié)果。在分析結(jié)果中對發(fā)現(xiàn)的模式進(jìn)行解釋,保留有用的模式,去掉多余的不合要求的模式,再將其轉(zhuǎn)換成有效的模式[2],使分析結(jié)果準(zhǔn)確清晰。
1 數(shù)據(jù)選擇
本研究數(shù)據(jù)來源為國家科技重大專項“病毒性肝炎中醫(yī)證候生物學(xué)技術(shù)平臺研究”中證候生物學(xué)技術(shù)平臺的數(shù)據(jù)。利用該技術(shù)平臺將病例數(shù)據(jù)導(dǎo)出為Excel數(shù)據(jù)文件格式,共8個Excel文件。將這8個Excel文件合并為1個Excel文件,只保留脈象、脅下痛、HBV-DNA、谷丙轉(zhuǎn)氨酶、谷草轉(zhuǎn)氨酶、總膽紅素、直接膽紅素和間接膽紅素等共767行、97列數(shù)據(jù)。
2 數(shù)據(jù)預(yù)處理
2.1 數(shù)據(jù)清洗
對于空白值采取忽略的方式處理。對于噪聲數(shù)據(jù)采取如下處理方式,以HBV-DNA數(shù)據(jù)列為例,可以看出數(shù)據(jù)的標(biāo)準(zhǔn)格式為XE+Y(X為實數(shù),Y為整數(shù)),然后升序排列該列數(shù)據(jù),把值為陰或陰性的結(jié)論值設(shè)為正常,對其他非標(biāo)準(zhǔn)格式的數(shù)據(jù)平滑為標(biāo)準(zhǔn)格式。
2.2 數(shù)據(jù)變換
在數(shù)據(jù)表中,存在如下情況,例如:舌色共有2列數(shù)據(jù),但在數(shù)據(jù)收集的時候,同一種舌色并沒有在同一列中。比如患者甲為淡紅,其數(shù)據(jù)存放于舌色A列中,而患者乙也為淡紅,其數(shù)據(jù)卻存放于舌色B列中。這就造成了同一癥狀的數(shù)據(jù)放在不同的列中,如果直接進(jìn)行數(shù)據(jù)挖掘,則會造成挖掘的結(jié)果不準(zhǔn)確。
解決問題的方法如下,先統(tǒng)計數(shù)據(jù)表中舌色的種類數(shù)量,共8種舌色。然后在2列舌色之后再增加6列舌色,同一種類舌色數(shù)據(jù)就可以放在同一舌色列中了。其他癥狀不同列的問題也按此方法處理。新數(shù)據(jù)表的數(shù)據(jù)列增加至147列。
2.3 數(shù)據(jù)歸約
本研究討論的實驗室指標(biāo)等生物信息為HBV-DNA、谷丙轉(zhuǎn)氨酶、谷草轉(zhuǎn)氨酶、總膽紅素、直接膽紅素和間接膽紅素共6項。若要進(jìn)行數(shù)據(jù)挖掘,則必須要對各項實驗室指標(biāo)數(shù)據(jù)進(jìn)行分類,根據(jù)實驗室指標(biāo)值的范圍確定結(jié)論值,再用結(jié)論的值替代各項實驗室指標(biāo)的值。
3 數(shù)據(jù)挖掘
本研究采用Weka3.7.11數(shù)據(jù)挖掘平臺,運(yùn)用關(guān)聯(lián)規(guī)則Apriori分析方法,對數(shù)據(jù)進(jìn)行挖掘,挖掘步驟如下:
3.1 將數(shù)據(jù)文件轉(zhuǎn)換成Weka數(shù)據(jù)格式
Weka數(shù)據(jù)挖掘平臺的數(shù)據(jù)標(biāo)準(zhǔn)文件格式是ARFF。在Weka中使用“ARFF Viewer”功能模塊打開CSV文件,然后將文件另存為ARFF格式文件即可。
3.2 關(guān)聯(lián)分析
在Weka中設(shè)置Apriori挖掘分析參數(shù),其中最小支持度lowerBoundMinSupport為0.1,最小置信度minMetric為0.5,挖掘出的最大規(guī)則數(shù)量numRules為200000。參數(shù)設(shè)置好后開始挖掘,結(jié)果如圖1所示,共挖掘出106627條關(guān)聯(lián)規(guī)則。
4 模式解釋與評價
模式解釋與評價是指對發(fā)現(xiàn)的模式進(jìn)行解釋,去掉多余的不合要求的模式,保留有用的模式,再將其轉(zhuǎn)換成有效的模式,最后利用可視化方法對有效的模式做出結(jié)論。
4.1 模式解釋
本研究是要挖掘出慢性乙肝癥狀和生物信息的強(qiáng)關(guān)聯(lián)規(guī)則。在已經(jīng)挖掘出的這106627條關(guān)聯(lián)規(guī)則中,其中有很多是提升度Lift≤1,實驗室指標(biāo)到實驗室指標(biāo)、實驗室指標(biāo)到癥狀和癥狀到癥狀的關(guān)聯(lián)規(guī)則,需要去掉這些不符合要求的關(guān)聯(lián)規(guī)則,保留有效的強(qiáng)關(guān)聯(lián)規(guī)則。
1) 導(dǎo)入數(shù)據(jù)
首先將從Weka中挖掘出的106627條關(guān)聯(lián)規(guī)則存儲為TXT文件,再將TXT文件中的關(guān)聯(lián)規(guī)則導(dǎo)入到MySql的數(shù)據(jù)庫的original表中。
2) 過濾規(guī)則
使用“Php+MySql+Apache”開發(fā)環(huán)境編寫過濾程序,核心代碼如下所示:
$flag1 = 1; //1表示原因,2表示結(jié)果
$flag2 = 1; //1表示是,2表示否
//處理數(shù)組,生成需要的7個字段,正則表達(dá)式匹配
for($i=1; $i<$arr_count ;$i++)
{
if (preg_match("/==>/", $arr[$i]))
{ //判斷有原因還是結(jié)果
$flag1 = 2; //2表示結(jié)果
continue;
}
//處理數(shù)組元素
if ($flag1 == 1)
{ if(preg_match("/^G/", $arr[$i]))
{ //判斷是否符合要求
$flag2 = 2;
break;
}
if (preg_match("/^[0-9]{1,}$/", $arr[$i]))
{ //判斷字段類型
$reason_count = $arr[$i];
}else {
if($reason!=''){
$reason = $reason." & ".$arr[$i];
}else{
$reason = $reason." ".$arr[$i];
}
}
}
else
{ if(preg_match("/^Y/", $arr[$i])) {
$flag2 = 2;
break;
}
if (preg_match("/^[0-9]{1,}$/", $arr[$i])) {
$result_count = $arr[$i];
} else {
if($result!='') {
$result = $result." & ".$arr[$i];
}else{
$result = $result." ".$arr[$i];
}
}
}
}
//判斷是否符合要求
if($flag2 == 1 && $lift>1)
{
$support= $result_count/767; //計算支持度
if($reason_count!=0) {
$confidence = ((int)$result_count) / $reason_count; //計算置信度
}
else {
echo $item_count;
}
$pass += 1; //統(tǒng)計通過數(shù)量
}
}
應(yīng)用過濾程序?qū)riginal表中的106627條關(guān)聯(lián)規(guī)則進(jìn)行過濾,最后得到符合要求的強(qiáng)關(guān)聯(lián)規(guī)則4935條。
4.2 模式評價
首先將符合要求的4935條強(qiáng)關(guān)聯(lián)規(guī)則,通過編寫的分解程序分解得到最終的filter表,然后將filter表導(dǎo)出為Excel文件如圖2所示,共4935條強(qiáng)關(guān)聯(lián)規(guī)則。
最后根據(jù)用戶(醫(yī)生)的要求展示結(jié)果,這些結(jié)果作為用戶進(jìn)一步分析的依據(jù)。
1) 按支持度Support降序排列,排在前10位的強(qiáng)關(guān)聯(lián)規(guī)則如圖3所示。
2) 按置信度Confidence降序排列,排在前10位的強(qiáng)關(guān)聯(lián)規(guī)則如圖4所示。
3) 按提升度Lift降序排列,排在前10位的強(qiáng)關(guān)聯(lián)規(guī)則如圖5所示。
4) 篩選出與癥狀“脅下痛”有關(guān)的規(guī)則,然后按照Confidence降序排列,排在前10位的強(qiáng)關(guān)聯(lián)規(guī)則如圖6所示。
5 總結(jié)
數(shù)據(jù)挖掘在慢性乙肝癥狀和生物信息相關(guān)性的研究中,數(shù)據(jù)預(yù)處理和模式解釋與評價這兩個過程尤為重要。數(shù)據(jù)預(yù)處理中得到的數(shù)據(jù)文件的準(zhǔn)確性,直接關(guān)系到數(shù)據(jù)挖掘結(jié)果的精確度。模式解釋與評價是要針對用戶的要求去偽取真,過濾掉多余的不合要求的模式,篩選出有用的模式,再將其轉(zhuǎn)換成有效的模式,最后再利用可視化方法把有效的模式呈現(xiàn)給用戶。這兩個過程能順利地進(jìn)行,需要不斷地和用戶進(jìn)行深入的交流和溝通。
參考文獻(xiàn):
[1] 李游,顏迎春,王妍,等.慢性乙型肝炎中醫(yī)治療研究進(jìn)展[J].遼寧中醫(yī)藥大學(xué)學(xué)報,2016,18(4):208.
[2] Usama M, Fayyad, Gregoyr Piatetsky-ShaPiro, et al.The KDD Processfor Extracting Useful Knowledge from Volumes of Data[J].Communications of the ACM,1996,l39(11):120-127.