基于随机森林算法的数据分析软件设计

2017-07-12 16:43冯兆祥白熙卓贾子一戴洋洋盛鑫宇
黑龙江工程学院学报 2017年3期
关键词:分类器数据挖掘客户端

周 屹,冯兆祥,白熙卓,贾子一,戴洋洋,盛鑫宇

(1.黑龙江工程学院 计算机科学与技术学院,黑龙江 哈尔滨 150050;2.哈尔滨铁路局 信息技术所,黑龙江 哈尔滨 150006)

基于随机森林算法的数据分析软件设计

周 屹1,冯兆祥1,白熙卓2,贾子一1,戴洋洋1,盛鑫宇1

(1.黑龙江工程学院 计算机科学与技术学院,黑龙江 哈尔滨 150050;2.哈尔滨铁路局 信息技术所,黑龙江 哈尔滨 150006)

随机森林是一种流行的机器学习方法,已经被广泛地应用于生物医学和生物信息学。针对医学数据集的特征高维等固有特点,设计一个基于随机森林的医学数据分析软件系统。本系统基于Web技术,在客户端采用Java语言接收用户数据和参数,并显示数据分析结果,在服务器端用R语言执行机器学习算法,进行数据分析。本系统具有友好的用户界面、操作简单,实现在Web端调用随机森林算法对医学临床数据进行分析,并且能够很容易地扩展到调用其他机器学习方法。

机器学习;数据挖掘;随机森林;Java语言;R语言

随着国内医院信息化建设的发展,医院信息系统中积累了大量的病人资料和医疗数据,这些数据中包含对医生、医院管理者和医疗管理部门都有着重要意义的信息,如何提取出这些信息,成为一个亟待解决的问题。传统的医学数据分析大多采用医学统计学方法,然而医学数据尤其是医学临床数据固有的非线性、不完整、多类型、类别不平衡等特点,给传统的统计分析方法,如多元回归、主成分分析等,带来很大的挑战。因此,越来越多的研究者开始使用数据挖掘或机器学习方法来分析和解释医学数据。

当前,利用机器学习或数据挖掘方法分析医学数据,探索影响疾病发生、发展的危险因素及机制,对疾病进行分类或预测,已经成为机器学习在医学领域的重要研究方向。然而,对于医学专业人员来说,利用计算机编程进行数据分析是非常困难的。为了便于医学专业人员利用机器学习方法进行医学数据分析和医学研究,本文设计了一个基于Web的医学数据分析软件,在客户端以用户友好的方式接收用户提交的数据和参数,在服务器端运行基于R语言的机器学习算法对数据进行挖掘分析,并将结果以用户友好的方式在客户端展示给用户。随机森林方法是一种流行的机器学习方法,已经被广泛地应用于生物医学与生物信息学研究。本文以Ⅱ型糖尿病临床数据为对象,以随机森林分类和预测算法为工具,对所设计的软件系统原型进行模拟实现。实验结果显示,本软件系统能够有效地完成医学临床数据的挖掘分析任务,并可以容易地扩展到其他医学数据和机器学习算法。

1 方法和原理

1.1 随机森林

随机森林(Random Forest, RF)是由Breiman于2001年提出的一种集成机器学习算法,目前已成为机器学习和数据挖掘领域最流行的分类与回归算法之一。RF算法结合了随机重采样和随机子空间技术,利用bootstrap采样技术从原始样本中抽取多个样本,对每个bootstrap样本进行决策树建模,在训练决策树进行节点分裂时,从一个属性子集中随机选取一个属性进行分割,最后组合多个决策树预测,通过多数投票的方式确定最终的分类或预测结果。随机森林分类器是由一系列的决策树分类器h(x,θk)构成,其中,θk是服从独立同分布的随机向量,每个决策树分类器对于特定的输入给出独立的分类,并对最终分类结果进行投票。随机森林生成步骤如下:

1)从原始训练数据中应用bootstrap采样法有放回地随机抽取k个新的自助样本集,并由此构建k棵决策回归树(Decision and Regression Tree,CART),每次未被抽到的样本组成k个袋外数据(out-of-bag, OOB)。

2)设原始数据集中共有n个变量,则在训练每一棵CART树进行节点分裂时,随机抽取mtry个变量(mtry≤n)进行计算,然后在mtry个变量中选择一个最具有分类能力的变量用于节点分割。

3)每棵CART树最大限度地生长,不做任何剪裁。

4)生成的k棵CART树组成随机森林,用森林中的每棵树为OOB中的样本进行分类。

5)统计每个类别获得的投票数,得票数最多的类别被认为是被测样本的类别。

相对于其他机器学习算法,随机森林方法具有很多优点:首先,它能处理多种数据类型,包括定性的数据和定量的数据;第二,它能够生成变量重要性分数,可以用于特征选择,尤其适用于疾病危险因素分析,便于用户理解疾病各种危险因素的相对重要性;第三,它能生成内部无偏估计的分类器,具有非常好的分类性能;第四,它对于噪声数据和存在缺失值的数据具有很好的鲁棒性;最后,它具有较快的学习速度,对于大规模数据集来说,计算时间是合适的。近年来,随机森林已经成为机器学习和数据挖掘领域的研究热点。

本系统在服务器端直接调用R平台上的随机森林算法的一个具体实现randomForest(version 4.6-7)进行数据挖掘分析,并将结果在客户端使用网页进行展示。

1.2 变量重要性评分

随机森林的每一棵分类树为二叉树,根节点包含全部训练数据,按照节点不纯度最小原则分裂。若节点n上的分类数据全部来自于同一类别,则此节点的不纯度I(n)=0。不纯度度量方法是Gini准则,即假设p(ωj)是节点n上属于ωj类样本个数占训练样本总数的频率,则Gini准则表示为[6]

).

(1)

设原始样本含量为N,表示各特征的变量为x1,x2,…,xm。应用bootstrap法有放回地随机抽取b个新的自助样本,并由此形成b个分类树,每次未被抽到的样本则组成b个袋外数据。袋外数据作为测试样本可以用来评估各个变量在分类中的重要性,实现过程如下:

1)用自助样本形成每一个树分类器,同时对相应的OOB进行分类,得到b个自助样本OOB中每一个样品的投票分数,记为rate1, rate2, …, rateb。

2)将变量xi的数值在b个OOB样本中的顺序随机改变,形成新的OOB测试样本,然后用已建立的随机森林对新的OOB进行分类,根据判别正确的样品数得到每一个样本的投票分数,所得结果可以表示为

(2)

3)用rate1, rate2, …, rateb与式(2)对应的第i行向量相减,求和平均后再除以标准得变量xi的重要性评分,即

(3)

2 系统设计与实现

rJava是一个R语言和Java语言的通信接口,通过底层JNI实现调用,允许在R中直接调用Java的对象和方法。rJava还提供了Java调用R的功能,是通过JRI(Java/R Interface)实现的。JRI现在已经被嵌入到rJava的包中,rJava包已经成为基于Java开发R包的基础功能组件。

2.1 系统实现

由于rJava是底层接口,并使用JNI作为接口调用,所以效率非常高。在JRI的方案中,JVM直接通过内存加载RVM,调用过程性能几乎无损耗,因此,是非常高效的连接通道,是R和Java通信的首选开发包。

系统实现所涉及到的软件工具包括:R服务器为R version 3.0.2,随机森林算法为RandomForest version 4.6-7,Web客户端开发环境为MyEclipse 2016 Stable 1.0,Web服务器为Tomcat 7.0,数据库为MySQL 5.6.24,系统的体系结构如图1所示。

图1 基于R的数据分析Web系统结构

在图1中,普通用户可以在Web客户端提交需要进行挖掘分析的原始数据集,并选择合适的机器学习算法(随机森林等)以及算法参数,提交任务后将数据打包发送给Web服务器,Web服务器再调用R服务器上的机器学习算法进行数据挖掘分析,并将最终的结果通过Web服务器传递给Web客户端进行显示。

2.2 系统分析实验

用户可以在客户端上传数据文件、选择机器学习算法以及设置参数等,并可以查看数据分析结果,如生成的随机森林分类模型及其分类性能、变量的相对重要性分数等。

数据来自于黑龙江省某医院的糖尿病临床数据,原始的数据集中包括患者的性别、年龄、身高、体重、腰围、臀围等自然信息;糖尿病病史、饮酒史、吸烟史等病史信息;血糖、胰岛素、胆固醇、甘油三酯、脂蛋白等生化信息。

系统的效果如图2所示。

为了提高数据分析的准确性,对原始的数据进行预处理,包括删除部分信息不完整和重复的数据,对数值数据进行正则化和离散化处理。最终,测试数据中包括1 910个样本和46个变量,以样本患者是否患有外周动脉疾病作为目标变量,执行机器学习算法训练分类器。

图2 基于R的数据分析Web系统实现效果

3 比较验证

本模型采用5次交叉验证的方式比较Logistic回归模型、决策树(C5.0)算法、支持向量机(support vector machine,SVM)算法以及随机森林算法这四种方法,建立分类模型的工作性能,如表1所示。每次实验都是随机选取数据测试集和样本集,最后取10次实验平均值分别计算出分类器的准确性(Accurary)、敏感性(Sensitivity)和特异性(Specificity),准确性就是预测正确的比例,敏感性实际上就是真阳性率,特异性衡量的是该模型预测对个体特异性变化的应变能力。从实验结果和对分类器的评估可以看出,选用随机森林方法更接近于真实情况,真阳性率比较高,达到了94%,其准确性、特异性也都高于其他机器学习算法。由此可说明,本文所提出的软件设计方案是可行的。

表1 相同测试集下4种不同算法工作性能的比较

4 结束语

本文设计并实现一款基于R的医学数据分析软件,采用Web结构,在客户端接收用户数据和参数,显示数据分析结果;在服务器端调用R算法包进行数据挖掘分析,采用rJava包实现R语言与Java语言的通信。该软件系统克服了R平台命令行操作和编程不利于医学专业人员使用的缺点,以用户友好、易学易用的操作界面为非计算机专业用户提供便捷的数据分析服务。通过真实的糖尿病临床数据和随机森林算法对系统进行测试,表明该设计方案是可行的。当然,本文只是实现了一个系统原型,集成更多的机器学习算法并在更多的医学临床数据上对系统进行测试,是下一步的研究方向。

[1] MAROCO J, SILVA D, RODRIGUES A, et al. Data mining methods in the prediction of Dementia: A real-data comparison of the accuracy, sensitivity and specificity of linear discriminant analysis, logistic regression, neural networks, support vector machines, classification trees and random forests[M]. BMC Research Notes,2011,4:1-14.

[2] KHALILIA M, CHAKRABORTY S, POPESCU M. Predicting disease risks from highly imbalanced data using random forest[M]. BMC Medical Informatics and Decision Making, 2011,11: 51.

[3] ZHAN X, YAO D, ZHAN X. Exploring a Novel Method Among Data Mining Methods and Statistical Methods to Analyse Risk Factors of Peripheral Arterial Disease In Type 2 Diabetes Mellitus [J]. International Journal of Digital Content Technology & Its Applications, 2012, 6(23):243-253.

[4] BREIMAN L. Random forests[J]. Machine Learning, 2001, 45: 5-32.

[5] 武晓岩, 李康. 随机森林方法在基因表达数据分析中的应用及研究进展[J]. 中国卫生统计, 2009, 26(4):437-440.

[6] VERIKAS A, GELZINIS A, BACAUSKIENE M. Mining data with random forests: A survey and results of new tests[J]. Pattern Recognition, 2011, 44: 330-349.

[7] YAO D, YANG J, ZHAN X, et al. A novel random forests-based feature selection method for microarray expression data analysis [J]. International Journal of Data Mining & Bioinformatics, 2015, 13(1):84-101.

[8] 周屹, 辛壮, 方志民,等. 基于自然交互的教学辅助系统研究与设计[J]. 黑龙江工程学院学报, 2015(6):38-40.

[责任编辑:郝丽英]

Design of data analysis software based on random forest algorithm

ZHOU Yi1,FENG Zhaoxiang1,BAI Xizhuo2,JIA Zhiyi1,DAI Yangyang1,SHENG Xinyu1

(College of Computer Science and Technology, Heilongjiang Institute of Technology, Harbin 150050, China)

Random forest is a popular machine learning method, which has been widely used in biomedicine and bioinformatics. For the inherent characteristics of the high dimension of medical data sets, the paper designs a software system of medical data analysis based on random forest algorithm. Based on Web architecture, for the client, the system adopts Java language programming Web pages for receiving original dataset and arguments submitted by users and showing the results of data analysis. For the server, R language is used for implementing machine learning algorithms and performing data analyzing. Finally, the system has user-friendly interface and is easy to use and implement the random forest algorithm calling in Web client for medicine clinical data analysis easily extended to other machine learning methods calling.

machine learning; data mining; random forest; Java language; R language

2017-01-03

黑龙江省大学生创新训练项目(201611802087);黑龙江省大学生创业训练项目(201611802098);国家自然科学基金项目(20154424)

周 屹(1971-),女,教授,研究方向:计算机应用.

TP391.3

A

1671-4679(2017)03-0038-04

猜你喜欢
分类器数据挖掘客户端
探讨人工智能与数据挖掘发展趋势
数据挖掘技术在打击倒卖OBU逃费中的应用浅析
如何看待传统媒体新闻客户端的“断舍离”?
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
大枢纽 云平台 客户端——中央人民广播电台的探索之路
基于差异性测度的遥感自适应分类器选择
基于实例的强分类器快速集成方法
一种基于Hadoop的大数据挖掘云服务及应用
基于层次化分类器的遥感图像飞机目标检测