1. 研究背景
宫颈癌是威胁全球妇女健康及生命的主要恶性肿瘤之一,其发病率占女性恶性肿瘤第4位。尽管随着社会经济和医疗事业的发展,宫颈癌的发病率在发达国家已大幅下降,但在发展中国家宫颈癌的发病率与死亡率仍居高不下。在我国,宫颈癌新发病例达13.15万,死亡人数每年约为5.3万,其发病率和死亡率存在明显的地理差异 [1] 。
目前,控制宫颈癌发病率主要以预防为主。通过注射HIV疫苗、对适龄妇女人群进行宫颈癌筛查可以有效降低宫颈癌的发病率及其导致的死亡率。由于疫苗接种也不能提供全面的保护,其长期疗效尚未确定,因此通过了解个人健康行为对宫颈癌进行预防就变得很重要 [2] 。
机器学习已广泛用于疾病的早期检测 [3] [4] ,甚至用于某些重大疾病的预测。一些来自分类技术的机器学习算法,如朴素贝叶斯、逻辑斯蒂回归、K-NN、和支持向量机是数据挖掘中热门的算法。
在本文中,逻辑斯蒂回归、线性判别分析、二次判别分析、朴素贝叶斯和K-NN分别被用作分类器,来检测基于行为及其决定因素的宫颈癌风险 [5] [6] ,并将它们的检测结果进行对比,选择准确率最高的分类器。
2. 相关理论与方法
2.1. 主成分分析
主成分分析是利用少数几个综合原始数据集中大部分变异信息的典型变量概括数据集,是一种常见的降维方法。提取的主成分要尽可能多地包含原始信息,且互不相关,主成分的个数可以根据累计贡献率的阈值和碎石图来决定。
(1)
是第一主成分载荷向量,是提取原始变量信息最多的主成分。同理,可以定义第一主成分,是在剩余信息中保留变异信息最多的主成分,其方向与第一主成分垂直。
2.2. 交叉验证
统计建模往往分析的是
的数据,而对于特征比较多的数据,一方面可以使用降维方法降低维度;另一方面,可以使用子集选择的方法进行变量选择,本文使用交叉验证方法来选择变量,核心算法见表1。

Table 1. Cross validation algorithm
表1. 交叉验证算法
2.3. 逻辑回归
逻辑回归的本质是分类,通过构造Sigmoid Function来计算Y在每一类的概率,哪类概率大,Y就被判到哪类。其缺点是,当维度p比较大时,算法很难收敛。
(2)
2.4. 生成式模型
1) 线性判别分析
线性判别分析是一种有监督的学习,当特征变量来自同方差的分布时,其判别分数与X是线性关系。
(3)
2) 二次判别分析
与线性判别分析不同的是,二次判别分析主要用于特征之间具有非线性关系时的分类,此时特征变量是来自不同方差的分布。
(4)
3) 贝叶斯判别分析
贝叶斯分析相较于其他判别方法有更强的假设,假设定量变量服从高斯分布,其缺点是没有对变量之间的关系进行研究。
(5)
2.5. K-近邻
K-近邻采用寻找“邻居”的方法找到类与类之间的分界线。K值越大,模型越简单,分界线越光滑。因此,在建模过程中需要多尝试几个K值(注:K表示总邻居的个数)。
(6)
3. 数据说明及基本分析
3.1. 数据说明
本文选择的数据集将行为的决定因素:感知、意图、动机、主观规范、态度、社会支持和授权转化为问卷,并将问卷分发给72名受访者。其中,有22名受访者是宫颈癌患者,50名受访者不是宫颈癌患者。受访者均来自印度尼西亚雅加达的城市公民(注:本数据集不存在空值,同时符合分类算法的数据要求,因此不需要进行预处理)。数据来源于UCI机器学习数据库,具体变量情况见表2。
3.2. 描述性分析
3.2.1. 特征基本关系
由于部分分类算法对特征之间的关系进行了假设,因此本文计算了所有原始变量的相关系数,发现变量X13~X19之间存在较强的线性关系,相关系数均在0.5以上(见表3)。即对于女性患者,社会在物质上给予客观支持,在情感上给予主观支持,有利于减弱女性患者的病耻感 [7] [8] ,帮助她们更加积极的面对应对,降低宫颈癌死亡率;而对于女性非患者,社会支持则有利于增强她们的医疗健康意识,从而积极主动去做定期筛查,降低宫颈癌发病率。

Table 3. Table of raw variable partial correlation coefficient
表3. 原始变量部分相关系数表
3.2.2. 各特征分布分析
为了分析数据的联合分布和边际分布形态,本文利用Shapiro-Wilk统计量对宫颈癌数据联合正态性以及各变量的边际正态性进行了检验(见表4),发现数据的联合分布和边际分布均违背了正态性假设,因此我们后续对其进行了降维处理。

Table 4. Multivariate normal distribution and marginal normal distribution test
表4. 多元正态分布及边际正态分布检验
3.3. 数据预处理
为了防止数据过度训练,本文通过随机抽样将数据分为训练集和测试机。同时,由于本文选择的数据集变量众多(19个),且部分变量之间具有相关性,因此在正式做预测分类前,本文利用主成分分析对数据进行降维处理;利用交叉验证对数据进行变量选择,并将降维和子集选择的数据作预测分类后的结果进行对比。
3.3.1. 主成分降维
为了保留原始变量绝大部分信息,根据累计方差贡献在80%以上,同时又最大程度较低特征维度,本文最终选取了7个主成分,并得出了每个主成分在原始变量的载荷矩阵(见表5)和和其关于原始变量的线性组合。由于本文使用主成分降维只是一个中间过程,并不是做最终的结果模型,因此无需对主成分进行解释。

Table 5. Principal component load coefficient
表5. 主成分载荷系数
3.3.2. 交叉验证
由于本数据集变量众多,为了获得更好地预测分类效果(当在所有变量存在和降维之后进行预测分类,逻辑回归都无法达到收敛),本文利用交叉验证进行了子集选择。根据预测误差最小原则,选取X11、X18两个特征作为预测变量。
4. 实证分析
4.1. 逻辑回归(LR)
由于使用降维后的数据作逻辑回归,算法无法收敛,因此本文只呈现交叉验证后的数据逻辑回归的结果。

Table 6. LR confusion matrix (cross validation)
表6. LR混淆矩阵(交叉验证)
根据混淆矩阵表6,计算逻辑回归的分类准确率,准确率 = (40 + 8)/(40 + 13 + 11 + 8) = 66.67%,分类准确率一般。
4.2. 线性判别分析

Table 7. LDA confusion matrix (cross validation)
表7. LDA混淆矩阵(交叉验证)

Table 8. LDA confusion matrix (dimension reduction)
表8. LDA混淆矩阵(降维)
根据表7和表8可以分别计算交叉验证子集选择后数据预测分类准确率 = (23 + 8)/(23 + 2 + 2 + 8) = 88.57%;降维后数据预测分类准确率 = (21 + 7)/(21 + 3 + 4 + 7) = 80.00%。显然,交叉验证子集选择后数据预测分类效果要好于降维后数据的预测分类效果。
4.3. 二次判别分析(QDA)

Table 9. QDA confusion matrix (cross validation)
表9. QDA混淆矩阵(交叉验证)

Table 10. QDA confusion matrix (dimension reduction)
表10. QDA混淆矩阵(降维)
根据表9和表10可以分别计算交叉验证子集选择后数据预测分类准确率 = (24 + 8)/(24 + 2 + 1 + 8) = 91.43%;降维后数据预测分类准确率 = (23 + 7)/(23 + 3 + 2 + 7) = 85.71%。
利用二次判别分析进行预测分类,两组数据的准确率较线性判别分析有明显上升,特别是交叉验证组,其预测分类的准确率已超过90%,表明数据变量可能是来自不同方差的总体。
4.4. K-近邻(K-NN)

Table 11. K-NN confusion matrix (cross validation)
表11. K-NN混淆矩阵(交叉验证)

Table 12. K-NN confusion matrix (dimension reduction)
表12. K-NN混淆矩阵(降维)
当K取1,2,3时,根据表11和表12可以计算出交叉验证子集选择后数据预测分类准确率分别为88.57%、85.71%、85.71%,后面两种预测分类结果完全一致;降维后数据预测分类准确率分别为85.71%、88.57%、88.57%,两组数据分类结果差距不大。
4.5. 朴素贝叶斯(NB)

Table 13. NB confusion matrix (cross validation)
表13. NB混淆矩阵(交叉验证)

Table 14. NB confusion matrix (dimension reduction)
表14. NB混淆矩阵(降维)
根据表13和表14分别计算出交叉验证子集选择后数据预测分类准确率 = (24 + 8)/(24 + 2 + 1 + 8) = 91.43%;降维后数据预测分类准确率 = (24 + 7)/(24 + 3 + 1 + 7) = 88.57%。
在本次实证分析中,朴素贝叶斯分类器的准确率最高,同时表明所研究的变量可能来自高斯分布。
4.6. 实验结果总结
通过5种分类器进行判别分析,可以发现:
1) 当特征变量比较大时,逻辑回归算法很难达到收敛,此时要进行降维和变量选择;
2) 在预测效果方面,贝叶斯判别效果最佳,其次是二次判别分析;
3) 针对不同的数据集,几种判别分析表现可能存在差异;因此在进行预测分类前,需要对数据内部进行分析,了解它们之间的相关性和近似分布。
5. 结论
宫颈癌作为全世界女性的严重公共卫生问题,幸运的是人们可以通过技术手段进行预防。而通过行为预防对宫颈癌进行一级预防具有许多优势 [9] ,如果及早发现,可以降低死亡率并提高治疗效果。
根据实验结果,本文的模型具有一定的预测能力,且部分模型的预测分类准确率已达到90%以上,表明机器学习在疾病检测方面有充分的实践可能性。同时也表明了行为决定因素成为参与宫颈癌一级预防的重要方面,且这种预防方式更彻底、更具经济性 [10] 。