1. 引言
在传统的医疗诊断中,医生往往是根据自己积累的经验以及患者呈现和描述的症状来判断病人病情以及发病原因。然而,这很有可能会导致主观上的判断失误。机器学习主要是基于过去案例的经验进行学习,尤其是基于大数据的机器学习同传统医疗相比有着很大的优势。如果我们将机器学习的分类算法应用于疾病诊断中,那么可以很大程度上提高诊断的准确率,从而帮助人们做出更科学的诊断。
我们使用机器学习可以解决医疗过程中的很多问题,这对患者和医生都有好处。我们经常使用机器学习中的面向图像特征处理的深度神经网络和分类算法应用在医疗诊断领域中。提取医学影像特征、标准化临床数据和转化文本数据等问题都被人工智能有效解决了。
在传统计算机看来,医生的问诊记录、患者的日常护理记录、病理科的检验报告、放射科的CT报告等是没有任何意义,而对于人工智能却是有很大意义的。文献 [1] 使用机器学习的方法诊断糖尿病视网膜病变;文献 [2] 研究基于集成学习的乳腺癌分类;文献 [3] 使用感知机算法诊断脊柱病。
本文使用基于线性回归分析的决策树模型,将其应用于心脏诊断,来帮助医生进行治疗。前期利用spss线性回归来分析数据中变量的关系,最后利用决策树算法来建立模型。但是因为决策树算法有不同的实现方式,因此本文在对比两种不同决策树(一个利用信息熵,一个利用基尼指数)结果后选择表现最优的方式作为最后建立模型的算法。
2. 项目设计
2.1. 总体设计
总体结构设计如图1所示:
2.2. SPSS数据线性回归分析和结果
本文使用SPSS做线性回归分析 [4]。
参数说明如表1所示:
判定系数 [5] 一般需要大于60%才行,是判定线性方程拟合优度的重要指标。我们可以用判定系数来解释回归模型因变量变异的能力。我们将判定系数用R表示,其值越接近1越好。表2中第2列即为判定系数。我们得到的结果显示R = 0.719时模型的效果最好。
模型残差独立性 [6] 检验:如果DW值被包含在无自相关性的值域之中(查询Durbin Watson table),就认为残差是独立的。本例DW = 1.032,残差是独立的。

Table 2. Linear regression analysis resultb
表2. 线性回归分析结果b
a. Predictors: (Constant), thal, restecg, fbs, thalach, chol, trestbps, ca, sex, cp, stope, exang, age, oldpeak. b. Dependent Variable: target.
我们得到的方差 [7] 分析的显著性值 < 0.01 < 0.05。结果说明线性关系显著,即由自变量与因变量各个参数建立的线性关系回归模型具有显著的统计学意义。分析结果如表3~5所示:
a. Predictors: (Constant), thal, restecg, fbs, thalach, chol, trestbps, ca, sex, cp, stope, exang, age, oldpeak. b. Dependent Variable: target.

Table 4. Significance analysis results of each featurea
表4. 各个特征显著性分析结果a
a. Dependent Variable: target.

Table 5. Residual statistical resultsa
表5. 残差统计结果a
a. Dependent Variable: target.
我们需要检验数据是否可以做回归分析。回归分析对数据的要求是十分严格的,所以有必要分析残差。
从图2来看,不完全对称的左右两侧;从图3来看,散点并没有全部靠近斜线。
综合而言,没有得到最好的残差正态性结果,但是在现实分析当中,理想状态的正态并不多见,接近或者近似就可以接受。
3. 决策树建模和结果
我们最后选择建立模型的算法是:基于信息熵 [8] 和基尼指数 [8] 的决策树 [9] 算法。
决策树算法是一种不断逼近离散函数值的方法,是一种典型的分类算法。第一步先进行数据处理,利用归纳算法生成决策树和可读的规则,然后应用决策分析新数据。从本质上来说,通过一系列规则对数据进行分类的过程就叫做决策树算法。
上世纪60年代到70年代末,决策树方法产生了。J Ross Quinlan为了减少树的深度提出了ID3算法 [10],但是没有对叶子数目进行研究。C4.5算法 [11] 是在ID3算法的基础上进行了改进的,大大改进了剪枝技术、预测变量的缺值处理、派生规则等方面,适合于分类问题和回归问题。

Figure 2. Standardized residual histogram
图2. 标准化残差直方图

Figure 3. P-P plot of standardized residuals
图3. 标准化残差的P-P图
决策树算法发现数据中蕴涵的分类规则是通过构造决策树实现的,其核心内容是构造精度高且规模小的决策树。构造决策树可以分为两步:第一步,生成决策树:决策树由训练样本集生成。一般情况下,有历史的、达到某个综合水平的和用来进行数据分析处理的数据集作为训练样本的数据集。第二步,对决策树进行剪枝:这个过程实际上是对获得的决策树进行检验、校正和修饰。我们用测试数据集(与原来不同的样本数据集)中的数据测试决策树生成过程中产生的初步规则,剪除那些影响预衡准确性的无用分枝。
模型选择
结果中的信息有一下几点:
1) precision——查准率/准确率
2) recall——查全率/召回率
3) F1-score——基于查准率和查全率的调和平均
4) Support——样本标签(本文中的标签是0/1)出现的次数
5) Accuracy——模型准确率
6) macro average——宏平均值,即所有标签结果的平均值
7) weighted average——加权平均值,即所有标签结果的加权平均值
通过基于信息熵的决策树模型得到的结果如图4所示:

Figure 4. Result of information entropy based on decision tree model
图4. 信息熵的决策树模型的结果

Figure 5. ROC curve of information entropy based on decision tree model
图5. 信息熵的决策树模型的ROC曲线
基于基尼指数的决策树的结果:

Figure 6. Result of Gini index based on decision tree model
图6. 基尼指数的决策树模型的结果

Figure 7. ROC curve of Gini index based on decision tree model
图7. 基尼指数的决策树模型的ROC曲线
基于基尼指数的决策树(预剪枝)的结果:

Figure 8. Result of Gini index based on pre-pruning decision tree model
图8. 基尼指数的预剪枝决策树模型的结果

Figure 9. ROC curve of Gini index based on pre-pruning decision tree model
图9. 基尼指数的预剪枝决策树模型的ROC曲线
通过对比准确率、召回率、ROC曲线图(如图5~9)可以看到,对于本文的数据,两种决策树的结果比较接近,但最终还是基于基尼指数的决策树的效果要略微好于基于信息熵的决策树。因此,本文选择建立模型的算法是基于基尼指数的决策树。
5. 结语
本文使用基于线性回归分析的决策树模型应用在心脏疾病诊断。我们最后实现的方式是通过决策树算法,这是为了避免过拟合,也因为资料是关联式资料库的关系,经过特征筛选后,我们选择了决策树模型。此模型经过预剪枝后,稳定度提升,准确度与其他机器学习模型相比要稍微好一点。虽然最后的准确度仍然没有达到90%或者更高,但这些结果也可以说明机器学习在疾病诊断方面的可行性。
此外,本文所用的模型只有一个,要想进一步提高模型对策准确度,我们可以将它与另外的模型相结合(比如SPSS、朴素贝叶斯、BP神经网络等等),应该会取得不错的效果。
基金项目
昆明市卫生健康委员会卫生科研课题项目(2020-09-04-112);云南省重点研发计划“基于智慧医疗平台的儿童疾病智能诊疗体系构建及应用示范”;中国博士后科学基金(2020M673312);云南省博士后基金;云南大学“东陆中青年骨干教师”基金(C176220200);云南省软件工程重点实验室开放基金资助项目(2020SE311);云南省自然科学基金项目(202101AT070167)。
NOTES
*第一作者。
#通讯作者。