1. 引言
随着人工智能的发展,全球信息化进一步推进,数据挖掘和机器学习技术开始逐渐登上历史的舞台,从理论研究走向生活的方方面面,其中智慧医疗得到了长足发展。由于医疗行业的特殊性,时时刻刻都在产生海量的医疗数据,数据挖掘和机器学习技术为这些海量医疗数据的分析和应用提供了新的思路和手段[1] [2]。在人工智能化、信息全球化的今天,利用人工智能和数据挖掘中相对较为成熟的算法与医疗数据的特点进行结合来处理医疗数据,更好地满足人民的健康医疗需求。目前,乳腺癌主要通过临床触诊、X射线、超声波、CT、核磁共振、细针穿刺细胞病理学检查等方法进行诊断。但由于医学图像质量低、患者个体差异和医护人员疏忽等,上述的传统诊断方法存在漏诊、误诊的情况。随着计算机技术和医疗数据智能化技术的发展,计算机辅助诊断技术应运而生,并得到了广泛研究,目前已取得了较好的诊断效果。采用神经网络、SVM、K近邻算法(K-Nearest Neighbor algorithm, KNN)等数据挖掘技术,对乳腺癌各项生理指标进行数学建模,从而区分出乳腺癌的良性与恶性[3] [4]。数据挖掘与医疗诊断的结合,一定程度上将诊断过程从复杂的病理分析中解救出来,可以有效避免医护人员主观因素的影响,从而减少乳腺癌的错诊和漏诊。
支持向量机(Support Vector Machines, SVM)的初始模型源于1992年由Boser等人提出的最优边界分类训练算法;1996年,Vapnik等正式提出基于统计学习理论的支持向量机算法[5] [6]。支持向量机是基于统计学习理论提出的着重解决小样本、非线性和高维度的新型机器学习方法,是一种有效克服“维数灾难”、“过学习”、“局部极值”等难题的机器学习方法。因其坚实的理论基础、模型的稀疏性以及极值解必是全局最优解等优点被广泛应用于模式识别和回归预测两大领域中,并有效推广于预测和综合评价等领域和学科,同时有效解决了神经网络局部极值问题。如果将SVM数据挖掘方法与各个研究领域的专业知识相结合,可将SVM扩展到不同的领域,但大量的实践证明,SVM惩罚系数、核函数的选取以及参数的优化对分类性能有极大的影响,因此如何利用科学有效的方法实现对SVM参数的优化是个很重要的问题[7]-[9]。
SVM其性能高度依赖于超参数的选择。超参数选择方法有随机搜索(Random Search)、贝叶斯优化(Bayesian Optimization)、经验法则(Rule of Thumb/Empirical Rule)、网格搜索(Grid Search)。其中网格搜索具有很强的实用性,其通过穷举搜索超参数空间中的不同组合,以找到最优的超参数设置。本文利用支持向量机分类原理对乳腺癌诊断问题进行建模分析,采用网格搜索方法对SVM的超参数进行优化选择,并评估优化后模型的性能。
2. 支持向量机的基本原理
支持向量机(Support Vector Machine, SVM)是由Vapnik等人基于统计学习理论中的结构风险最小化和VC维理论提出的一种机器学习方法。近年来,SVM已经被广泛应用于多个领域,如故障检测、医疗诊断和图像分类等。设数据集为
,其中
,
,
,
为标签值,N为样本量。SVM的核心目标是找到一个能够最大化分类间隔的决策边界,即超平面
。当数据是线性可分时,SVM可以找到决策边界。然而,在现实世界中,数据往往不是完全线性可分的。为了解决这一问题,SVM引入了软间隔的概念,即允许一些数据点违反间隔规则,以此让模型拥有更好的泛化能力。SVM通过决策函数
进行分类,其中w和b分别是超平面的系数和偏置项。根据SVM的目标可以得到如下含有不等式约束的凸二次规划问题。
其中,C叫作正则化参数,控制对超出边界样本的惩罚程度。
在选择了适合的核函数
、适合的精度以及正则化参数后,构造求解在约束条件下的凸二次规划优化问题。
当数据为非线性不可分时,通过核函数实现从低维空间转换到高维空间实现线性可分,而核函数的选取需满足mercer定理:任何半正定函数都可以作为核函数。
核函数决定了分类器模型性能的优劣。常见核函数如下:
1) 线性核函数:
。
2) 多项式(Poly)核函数:
,
,
。其中,d为多项式阶数,r为常数。d越大核矩阵元素值越大,核函数的维度越大,计算越复杂,相对而言对数据的分类能力更好,但是泛化性能较低,容易过拟合。
3) 高斯径向基(RBF)核函数:
,
。其中,
为高斯核函数的核宽度,控制作用范围,高斯核函数具有较好的局部性,应用范围广,对大样本和小样本都有较好的分类效果,参数少。
4) Sigmoid核函数:
,
,
。其中,
是尺度,r是衰减参数。相当于两层感知机函数。
面对不同的研究对象以及核函数,其构造的SVM模型的性能各不相同。
3. 模型的建立
基于网格搜索法Grid Search CV,建立SVM的乳腺癌诊断模型主要分为两个过程,第一个过程运用数据集训练得到最优参数对,第二个过程运用测试集检验模型的分类性能,实现乳腺癌良性恶性的诊断。构建参数优化的支持向量机诊断模型具体实现步骤如下:
数据预处理:输入原始数据,对数据进行预处理,标准化数据;将一部分数据作为训练集,另一部分作为测试集。
利用网格法寻找网格最优参数:确定参数C和核函数的范围,根据范围可以构建网格搜索平面,采用K折交叉验证寻找网格面的最优参数对,找到分类精度最高的参数对为最优参数对。如果有多组同样精度的参数对,取C值最小的那一组。利用训练集找到最优参数对后,构建SVM诊断模型,采用交叉验证法测试模型的分类性能。
支持向量机的不同模型参数分类性能可以通过K折交叉验证方法来检验。具体步骤:先将实验训练的数据集成K等分,K为分组数,每次取其中的K − 1份数据作为训练数据,剩下的一份数据作为测试数据进行验证。重复k次实验,直到每组都进行训练完成,根据K次计算后得到的平均值作为分类器性能的评价指标,最后选择其中分类效果最好的一组参数作为最优参数对。K折交叉验证可以有效地避免过拟合(over-fitting)以及欠拟合(under-fitting)情况的发生,因此被称为是对泛化误差的无偏估计,这种方法选择的参数能够使分类器具有良好的训练精度和泛化性能。交叉验证既可以用来验证支持向量机模型的分类性能,又可以通过多次验证寻找最好的支持向量机参数对,使其对乳腺癌数据的分类性能最好,有效防止过学习现象。
4. 网格搜索求解超参数
网格搜索是一种通过穷举给定的参数组合来寻找最优超参数的方法。在SVM超参数优化中,首先确定需要调优的参数范围。例如,选择不同的核函数类型(线性、多项式、高斯等),以及正则化参数C和高斯核函数宽度参数σ的取值范围。然后对这些参数值进行排列组合,生成一个参数网格。对于参数网格中的每一组参数,网格搜索都会训练一个SVM模型,然后通过评估性能来选取最佳参数组合。我们选取交叉验证来评估该模型的性能。交叉验证[6]是一种将数据集划分为多个子集,然后轮流用其中一个子集作为测试集,其余子集作为训练集进行训练和测试的方法,它可以帮助我们更准确地评估模型的性能。
网格搜索会选择在交叉验证中表现最好的参数组合作为最优超参数。这种方法虽然计算量大,但能够系统地搜索参数空间,找到全局最优解或近似最优解。
5. 实证分析
5.1. 数据集及预处理
本文采用公开的“UCI Breast Cancer Dataset”[10]数据集进行实验。该数据集包含569个实例,涉及30个特征指标,包括细胞核半径、纹理、周长等统计量(均值、标准差、最大值)。分为良性和恶性肿瘤两类:良性(B/Malignant) 357例,恶性(M/Benign) 212例。
首先对数据预处理,方法如下。
1) 空缺值处理:对于缺失较多的数据集,常用的方法是利用均值处理、回归等方式对空缺位置进行缺值填充。这种方法的基本原理是结合上下文对缺失值进行填充,使填充值最可能逼近原值;此外,针对缺少较少的,一种较为简便的方式是直接删除缺失值。本研究中,乳腺癌数据样本比较全面,缺失值很少,所以直接删除了缺失值的整条记录。
2) 异常值处理:数据中的噪声是异常值常见的形式。这些噪声通常来源于数据采集、记录过程中随机产生的误差和偏差。本文使用命令删除极端异常值和明显非正常医疗数据值的孤立点。数据集成与变换:如果数据来源于多个集合,则需要按照特定的方式将数据集集成合并,本文的数据已经集成,无需再做特别处理。数据变换是指将形态各异的原始数据变换成一致的格式,使其满足数据挖掘的要求。对于乳腺癌数据来说,每一项特征的检查数据有一定的冗余性或者规模较大,会影响分类器训练的能力,所以预测模型的输入指标需做相应的变换。这样大的属性值可能会使训练模型的输入维度变得非常高,导致计算量变大,训练所花时间变长,影响模型的分类准确性。为避免以上情况的发生,本文对原始数据进行了归一化处理。并且将指标是否是患者用1和0替换。
5.2. 超参数优化及交叉验证
本文使用网格搜索方法对SVM的超参数进行优化。网格搜索通过定义超参数的取值范围,遍历所有可能的超参数组合,并通过交叉验证评估每种组合的性能,最终选择性能最优的组合。
交叉验证方法具体实现:先将实验训练的数据集成5等分为5组,每次取其中的4份数据作为训练数据,剩下的一份数据作为测试数据进行验证。重复5次实验,直到每组都进行训练完成,根据5次计算后得到的平均值作为分类器性能的评价指标,最后选择其中分类效果最好的一组参数作为最优参数对。五折交叉验证可以有效地避免过拟合(over-fitting)以及欠拟合(under-fitting)情况的发生,选择的参数能够使分类器具有良好的训练精度和泛化性能,使其对乳腺癌数据的分类性能最好,有效防止过学习现象。
经过网格搜索,我们找到了最优的超参数组合:{'C': 2, 'kernel': 'RBF'}。
即C参数我们选择的是2,核函数我们选择的是高斯径向基(RBF)核函数。
5.3. 模型评估
我们使用准确率(Accuracy)、精确率(Precision)、召回率(Recall)和F1分数(F1 Score)以及ROC AUC作为模型性能的评估指标[9]。最优模型性能指标见表1。
ROC曲线展示了模型在不同阈值下的真正例率(TPR)和假正例率(FPR),如图1曲线下的面积(AUC)为0.9965,表明模型具有出色的分类性能。
Figure 1. ROC curve
图1. ROC曲线
Table 1. Performance indicators of support vector machine model for breast cancer diagnosis
表1. 乳腺癌诊断支持向量机模型性能指标
评估指标 |
数值 |
说明 |
准确率(Accuracy) |
0.9825 (98.25%) |
模型整体预测正确率非常高,表明在大多数情况下能够正确分类
良性和恶性肿瘤。 |
精确率(Precision) |
0.9839 (98.39%) |
模型预测为恶性肿瘤的样本中,98.39%确实是恶性肿瘤,
误判率很低。 |
召回率(Recall) |
0.9683 (96.83%) |
模型能够识别出96.83%的真实恶性肿瘤,漏诊率较低,
适合对恶性肿瘤的高敏感性要求。 |
F1分数(F1 Score) |
0.976 (97.6%) |
精确率和召回率的调和平均值,表明模型在精确性和全面性之间
取得了很好的平衡。 |
ROC AUC |
0.9965 (99.65%) |
模型区分良性和恶性肿瘤的能力非常强,接近完美分类器
(AUC = 1)。 |
6. 结论
支持向量机是建立在结构风险最小化原则基础之上的一种新的机器学习方法,主要借助于最优化方法解决数据挖掘中的分类问题,其模型和算法的改进是本文研究的主要内容,本文通过网格搜索方法成功找到了SVM模型的最优超参数组合,并在乳腺癌数据集上取得了优异的性能。实验结果表明,网格搜索是一种有效的超参数优化方法,能够显著提升SVM模型的分类性能。
基金项目
河南省“专创融合”特色示范课程项目(2023),河南科技大学教育教学改革研究与实践项目(2024BK089),河南科技大学大学生创新创业计划项目(2024238)。
NOTES
*通讯作者。