慢性乙肝症状与生物信息相关性的数据挖掘研究
2016-06-16赵亮吴元琳
赵亮+吴元琳
摘要:通过数据预处理对767例慢性乙肝患者的数据,进行数据清洗、数据变换和数据规约,得到规范的可挖掘的数据集。使用关联规则Apriori分析方法,通过Weka数据挖掘平台,对预处理后的数据进行挖掘,得到106627条关联规则。然后通过过滤程序,筛选出符合要求的4935条强关联规则。最后根据用户(医生)的要求,利用可视化方法把结果呈现给用户。
关键词:慢性乙肝;数据挖掘;数据预处理;模式解释
中图分类号:TP391 文献标识码: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亿慢性乙型肝炎病毒感染者,我国现有的慢性乙型肝炎的感染者约9300万例[1]。本研究以国家科技重大专项“病毒性肝炎中医证候生物学技术平台研究(编号:2009ZX10005-020)”中的证候生物学技术平台的数据为研究对象,在Weka数据挖掘平台中采用关联规则等数据挖掘方法,进行慢性乙肝症状和实验室指标等生物信息相关性研究,获得慢性乙肝症状和生物信息的相关性的分析结果。在分析结果中对发现的模式进行解释,保留有用的模式,去掉多余的不合要求的模式,再将其转换成有效的模式[2],使分析结果准确清晰。
1 数据选择
本研究数据来源为国家科技重大专项“病毒性肝炎中医证候生物学技术平台研究”中证候生物学技术平台的数据。利用该技术平台将病例数据导出为Excel数据文件格式,共8个Excel文件。将这8个Excel文件合并为1个Excel文件,只保留脉象、胁下痛、HBV-DNA、谷丙转氨酶、谷草转氨酶、总胆红素、直接胆红素和间接胆红素等共767行、97列数据。
2 数据预处理
2.1 数据清洗
对于空白值采取忽略的方式处理。对于噪声数据采取如下处理方式,以HBV-DNA数据列为例,可以看出数据的标准格式为XE+Y(X为实数,Y为整数),然后升序排列该列数据,把值为阴或阴性的结论值设为正常,对其他非标准格式的数据平滑为标准格式。
2.2 数据变换
在数据表中,存在如下情况,例如:舌色共有2列数据,但在数据收集的时候,同一种舌色并没有在同一列中。比如患者甲为淡红,其数据存放于舌色A列中,而患者乙也为淡红,其数据却存放于舌色B列中。这就造成了同一症状的数据放在不同的列中,如果直接进行数据挖掘,则会造成挖掘的结果不准确。
解决问题的方法如下,先统计数据表中舌色的种类数量,共8种舌色。然后在2列舌色之后再增加6列舌色,同一种类舌色数据就可以放在同一舌色列中了。其他症状不同列的问题也按此方法处理。新数据表的数据列增加至147列。
2.3 数据归约
本研究讨论的实验室指标等生物信息为HBV-DNA、谷丙转氨酶、谷草转氨酶、总胆红素、直接胆红素和间接胆红素共6项。若要进行数据挖掘,则必须要对各项实验室指标数据进行分类,根据实验室指标值的范围确定结论值,再用结论的值替代各项实验室指标的值。
3 数据挖掘
本研究采用Weka3.7.11数据挖掘平台,运用关联规则Apriori分析方法,对数据进行挖掘,挖掘步骤如下:
3.1 将数据文件转换成Weka数据格式
Weka数据挖掘平台的数据标准文件格式是ARFF。在Weka中使用“ARFF Viewer”功能模块打开CSV文件,然后将文件另存为ARFF格式文件即可。
3.2 关联分析
在Weka中设置Apriori挖掘分析参数,其中最小支持度lowerBoundMinSupport为0.1,最小置信度minMetric为0.5,挖掘出的最大规则数量numRules为200000。参数设置好后开始挖掘,结果如图1所示,共挖掘出106627条关联规则。
4 模式解释与评价
模式解释与评价是指对发现的模式进行解释,去掉多余的不合要求的模式,保留有用的模式,再将其转换成有效的模式,最后利用可视化方法对有效的模式做出结论。
4.1 模式解释
本研究是要挖掘出慢性乙肝症状和生物信息的强关联规则。在已经挖掘出的这106627条关联规则中,其中有很多是提升度Lift≤1,实验室指标到实验室指标、实验室指标到症状和症状到症状的关联规则,需要去掉这些不符合要求的关联规则,保留有效的强关联规则。
1) 导入数据
首先将从Weka中挖掘出的106627条关联规则存储为TXT文件,再将TXT文件中的关联规则导入到MySql的数据库的original表中。
2) 过滤规则
使用“Php+MySql+Apache”开发环境编写过滤程序,核心代码如下所示:
$flag1 = 1; //1表示原因,2表示结果
$flag2 = 1; //1表示是,2表示否
//处理数组,生成需要的7个字段,正则表达式匹配
for($i=1; $i<$arr_count ;$i++)
{
if (preg_match("/==>/", $arr[$i]))
{ //判断有原因还是结果
$flag1 = 2; //2表示结果
continue;
}
//处理数组元素
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; //统计通过数量
}
}
应用过滤程序对original表中的106627条关联规则进行过滤,最后得到符合要求的强关联规则4935条。
4.2 模式评价
首先将符合要求的4935条强关联规则,通过编写的分解程序分解得到最终的filter表,然后将filter表导出为Excel文件如图2所示,共4935条强关联规则。
最后根据用户(医生)的要求展示结果,这些结果作为用户进一步分析的依据。
1) 按支持度Support降序排列,排在前10位的强关联规则如图3所示。
2) 按置信度Confidence降序排列,排在前10位的强关联规则如图4所示。
3) 按提升度Lift降序排列,排在前10位的强关联规则如图5所示。
4) 筛选出与症状“胁下痛”有关的规则,然后按照Confidence降序排列,排在前10位的强关联规则如图6所示。
5 总结
数据挖掘在慢性乙肝症状和生物信息相关性的研究中,数据预处理和模式解释与评价这两个过程尤为重要。数据预处理中得到的数据文件的准确性,直接关系到数据挖掘结果的精确度。模式解释与评价是要针对用户的要求去伪取真,过滤掉多余的不合要求的模式,筛选出有用的模式,再将其转换成有效的模式,最后再利用可视化方法把有效的模式呈现给用户。这两个过程能顺利地进行,需要不断地和用户进行深入的交流和沟通。
参考文献:
[1] 李游,颜迎春,王妍,等.慢性乙型肝炎中医治疗研究进展[J].辽宁中医药大学学报,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.