国 威,李莲娣,于广浩
(1. 牡丹江医学院生命学院,黑龙江牡丹江 157011;2. 牡丹江医学院附属第二医院,黑龙江牡丹江 157011;3. 牡丹江医学院医学影像学院,黑龙江牡丹江 157011)
甲状腺疾病是全球常见的内分泌系统疾病之一,其发病原因复杂,包括遗传、环境、营养等多种因素[1]。由于甲状腺激素几乎影响每个器官系统,人们可以预期严重的甲状腺功能减退症将与所有临床医生都知道的一系列体征和症状有关,反映了代谢活动的减少。许多甲状腺功能减退症患者相对无症状,甲状腺功能减退症的症状是非特异性的[2],与正常健康人的典型主诉(例如疲劳、体重增加、便秘、头发干燥、皮肤干燥等)重叠[3-5]。研究表明,轻度甲状腺功能减退症患者的甲状腺功能减退症状与一般人群的症状难以区分[6],老年人尤其如此[7-8]。目前,甲状腺激素水平是甲状腺疾病的常用诊断指标,但其准确性和灵敏度有限,且在某些情况下会产生假阳性和假阴性的结果[9-11]。因此,开发新的生物标志物和建立可靠的预测模型是提高甲状腺疾病早期诊断准确率的重要方法。
随着机器学习算法在医疗领域中的广泛应用,越来越多的研究侧重于利用机器学习算法对甲状腺疾病患者的电子病历数据进行挖掘和处理,构建疾病预测模型,发现甲状腺疾病的风险因素。本文将选取患者身体状况以及生化指标作为特征,使用SVR模型和鲸鱼优化算法对数据集进行建模和优化,为甲状腺疾病的早期诊断提供决策支持。
支持向量回归(Support Vector Regression,SVR)是一种基于支持向量机(Support Vector Machine,SVM)的回归方法。与传统的回归方法不同,SVR的目标是在保持预测误差在一定范围内的同时,尽可能拟合训练数据。
SVR的核心思想是通过构建一个边界带,将样本点映射到高维空间中,并尽量使预测值落在边界带内。边界带的宽度由用户事先定义,可以通过调整参数来控制模型的灵活性和容忍度。在SVR中,支持向量是那些落在边界带上的样本点,它们对模型的构建起着关键作用。
SVR 的优点包括:(1)对异常值具有较好的鲁棒性,SVR通过引入边界带的概念,可以更好地处理训练数据中的异常值,减少异常值对模型的影响。(2)灵活性和可调节性,通过调整SVR 中的参数,可以控制边界带的宽度和容忍度,从而使模型适应不同的数据分布和问题要求。(3)有效处理非线性关系,通过使用核函数,SVR可以将数据映射到高维空间,从而处理非线性关系,并能够更好地拟合非线性数据。
鲸鱼优化算法(Whale Optimization Algorithm,WOA)最初由Mirjalili 等人[12]于2016 年提出。该算法是一种群体智能算法,是受鲸鱼群体行为的启发而来。
鲸鱼是一种高度社会化的哺乳动物,其个体之间具有高度的协作和交流能力。在鲸鱼优化算法中,研究人员通过模拟鲸鱼群体的行为,设计了一种基于“搜寻—定位—捕食”三个阶段的优化模型,以解决复杂的优化问题。
具体而言,鲸鱼优化算法通过对鲸鱼行为的建模,将优化问题转化为鲸鱼捕食行为的模拟。算法的基本思路是将所有鲸鱼划分为三类:领袖鲸、随从鲸和外来鲸。领袖鲸通过自我调整来不断优化自身的位置和速度,并指导其他鲸鱼进行搜索。随从鲸则通过领袖鲸的指引来探索搜索空间,并调整自身位置和速度。外来鲸则通过随机搜索的方式来发现新的可能解。
图1 鲸鱼算法流程图
鲸鱼算法是一种基于仿生学的智能优化算法,其灵感来自于驼背鲸的觅食行为。算法通过模拟驼背鲸在觅食时的行为,如领袖鲸指引随从鲸等,来解决复杂的优化问题。鲸鱼算法主要包括三个阶段:包围捕食、气泡袭击、寻找食物。
2.2.1 包围捕食阶段
在包围捕食阶段中,算法首先选择一只领头鲸。接下来,其他鲸鱼将围绕领头鲸游动,并向领头鲸靠拢,以便在局部最优解附近进行搜索。每个鲸鱼的速度和位置将受到领头鲸的影响,领头鲸的速度和位置则由整个种群的最优解确定。算法通过调整领头鲸的位置和速度来控制整个种群的运动,以便更好地探索潜在的解空间。同时,领头鲸会根据其所在位置的质量来调整自己的速度和位置,以便更好地搜索到更优的解。
式中,A,C是系数向量,X是位置向量,A,C数学表达式如下:
式中,a是从2到0线性递减的向量,| |r∈[0,1]的随机向量。
2.2.2 气泡袭击阶段
在算法中,每个解代表一个鲸鱼,其运动方向是该解的移动方向,圆锥的顶点位置是解的当前位置,圆锥的壁面是由该解周围的其他解构成的邻域,圆锥的半径随着迭代次数的增加而不断缩小。每次迭代时,算法会根据每个解在邻域内的适应度值和距离值计算出一个权重值,然后将权重值作为概率选择下一步的移动方向。
气泡袭击阶段是鲸鱼优化算法中最重要的阶段之一,它可以帮助算法快速找到全局最优解。
(1)收缩包围原理。根据式(2)鲸鱼群进行收缩包围,当 ||A<1 时,鲸鱼个体会向着当前位置最优的鲸鱼靠近。
(2)螺旋更新位置。每只鲸鱼通过向目标位置螺旋移动来更新其位置。这个过程中,每只鲸鱼会在其当前位置和目标位置之间形成一个螺旋轨迹,并按照一定的步长沿着螺旋轨迹向目标位置移动。具体来说,在螺旋更新位置阶段,每只鲸鱼会按照式(5)计算更新其新的位置:
首先,根据当前鲸鱼位置和全局最优解的距离计算得到;然后,随机生成一个[0,1]范围内的数,用来控制鲸鱼更新位置时的左右旋转方向;最后,根据步长因子计算得到鲸鱼更新后的位置。
2.2.3 寻找食物阶段
在这个阶段中,优化算法通过搜索空间来寻找可能的最优解。该阶段的数学公式如下:
计算每个鲸鱼的适应度值:
对于每只鲸鱼,计算其新的位置:
xrand是随机选择的另一只鲸鱼的位置,A是控制步长的参数,D是当前鲸鱼到目标的位置距离。如果D越小,则鲸鱼会朝着目标位置前进。
最后,对于超出搜索空间边界的鲸鱼,通过随机位置来将其移回到搜索空间内:
CFR:南美国家应着重与邻国合作发展。5月23日,美智库美国外交关系协会(CFR)发文称,由于南美国家难以进入亚洲、欧洲和北美制造业生产链,其应着重与邻国互助,培育产业,并促进经济增长。一方面,将当前贸易协定延伸至较棘手领域,并有效合并不同贸易协定,简化规则。另一方面,政府应通过调整税收和投资条款、减少繁文缛节、加强法制等举措吸引跨国公司投资。
其中,l和u分别是搜索下界和上界,rand[l,u]在[l,u]范围。
SVR 和WOA 之间的关系在于,WOA 可以作为SVR 算法的一种优化方法。传统的SVR 算法通常使用梯度下降等方法来寻找最优化的超平面,但这些方法可能陷入局部最优解。而WOA 作为一种全局优化算法,能够帮助SVR算法更好地搜索全局最优解。
在将WOA 应用于SVR 中,可以将SVR 问题看作是一个目标函数的最小化问题,而WOA 则通过模拟鲸鱼的行为来搜索最优解。具体地,WOA中的搜索和迭代操作可以用来调整SVR模型中的参数,如超平面的斜率和截距等,以使SVR模型能够更好地拟合数据并找到最佳的回归函数。
通过结合SVR 和WOA,可以提高SVR 算法的性能,使其更好地适应复杂的回归问题,并且具有全局优化的特性,避免陷入局部最优解。这种结合可以通过在SVR 算法中引入WOA 的迭代过程,或者使用WOA来调整SVR模型的参数,以实现更好的回归性能。
本文数据来源于UCI 网站由Ross Quinlan 提供的甲状腺疾病数据集,2 800个训练实例和972个测试实例,大量缺失数据,29 个左右的属性都是布尔值或连续值。最终预测结果有两个概念,阳性(甲状腺功能减退)和阴性(甲状腺功能正常)。
根据统计发现,29 个特征为患者的基本信息、身体状况以及各种甲状腺功能指标。除TBG(实验室工作血液中的TBG 水平)以及TBG_measured(是否在血液中测量TBG)大量缺失,其余特征均有少量缺失值。为探究这些特征对患者患病与否的影响,如图2所示,各生化指标之间呈低度的线性关系,不进行降维处理。“甲状腺素结合球蛋白”和“是否测量血液中的甲状腺素结合球蛋白水平”直接进行删除处理。对于其他特征缺失值进行适当处理,使用样本均值进行填充。
图2 相关性分析图
清洗数据,将布尔值的特征采用One-Hot 的编码方式,即患者是否服用甲状腺素、患者是否有甲状腺肿、是否在血液中测量了TSH(Thyroid Stimulating Hormone)等这个特征,是否分别设为0和1。
将数据缩放到[0,1]之间,使数据服从均值为0,方差为1的正态分布。
经过数据预处理后,共纳入3 772 余例病人,其中,患有甲状腺功能减退的患者为291例,甲状腺功能正常的患者为3 481例。
将3 772 例前列腺癌数据随机打乱后拆分,比例为9∶1。即训练集用于寻找最优参数,构建最佳模型;测试集用于模型评估,结果输出。
当使用SVR进行模型训练时,首先需要进行参数调优。使用gridsearch 方法寻找最优的SVR 模型参数(gam 和sig2)。该方法会尝试各种可能的参数组合并计算相应的模型性能指标,如预测准确率等。最终,选择表现最佳的参数组合作为模型的最优参数。
需要设置优化算法来训练SVR 模型。使用了‘c’参数来表示改进的直线搜索法,该方法在优化过程中会寻找参数空间中的局部最优解。同时,也可以用‘q’参数来使用快速梯度下降法,该方法能够更快地找到全局最优解。不同的优化算法适用于不同的问题,需要根据具体情况进行选择。
使用TrainSVR 函数进行SVR 模型训练。在训练过程中,会根据数据集和模型参数计算出相应的模型权重。在本例中,使用的是TrainSVR 函数的‘c’模式寻找最优解。最终训练出的SVR 模型可以用于预测新的数据集的输出结果。
鲸鱼优化算法的模型优化过程可以通过调整算法的参数和迭代次数来实现,有两个重要的参数:鲸群大小和迭代次数。调整鲸群大小和迭代次数可以影响算法的收敛速度和最终性能。通常情况下,增加鲸群大小和迭代次数可以提高算法的性能,但需要权衡计算时间和计算资源的消耗。其次,调整算法参数可以影响算法的探索能力和局部搜索能力,从而影响模型的最终性能。通过网格搜索方法来寻找最佳的参数组合,以达到更好的模型性能。
本研究使用SVR 模型和鲸鱼优化算法对数据集进行建模和优化。如图3 和图4 所示,WOA 在前4 次迭代中成功地优化了模型,使得适应度函数不断下降。在4~7次迭代期间,适应度函数出现了波折,表明算法可能遇到了局部最优解,导致无法获得更好的结果。在7次迭代之后,适应度函数趋于稳定,说明模型已经收敛并且不再发生明显的变化。最终得到了一个具有良好预测性能的改进支持向量回归模型,其均方误差根为0.270 9,R2为0.744,模型准确率达到了92.6%。对于诊断和预测甲状腺疾病具有较高的准确性,模型的预测误差相对较小,对于甲状腺疾病的预测具有较高的精度,模型能够解释目标变量约74.4%的变异性,对于甲状腺疾病的预测能力较高。
图3 预测模型的收敛曲线
图4 测试集预测结果对比
相较于SVR模型,改进支持向量回归模型在甲状腺预测问题上具有强大的全局搜索能力。它能够在搜索过程中跳出局部最优解,并寻找到全局最优解。对于甲状腺预测模型来说,这意味着改进支持向量回归模型可以更好地探索特征空间,并找到更好的模型参数配置。鲸鱼优化算法可以提高模型的泛化能力。鲸鱼优化算法有助于避免模型对训练数据过度拟合,从而提高模型对未见数据的预测性能。这对于甲状腺预测模型的可靠性和实用性至关重要。鲸鱼优化算法具有自适应性,能够根据问题的复杂度和数据的特征来调整搜索策略。这种自适应性使得鲸鱼优化支持向量回归模型能够灵活地适应不同的数据集和问题域。在甲状腺预测模型中,这意味着模型能够根据不同的特征和样本分布,自动调整超平面和支持向量的位置,以更好地拟合数据。
该模型也存在一些不足之处。首先,该模型的参数需要经过网格搜索来确定最佳值,这一过程可能比较耗时,特别是当数据集较大时。其次,WOA 算法的搜索空间可能存在局部最优解[13],这可能会对模型的预测结果产生一定的影响。该模型的预测效果还需要进一步在更多数据集上进行验证。
甲状腺功能减退症常见于门诊,检测方法的改进和对病情认识的提高导致了对更多患者的评估[14]。原发性甲状腺功能减退是甲状腺功能减退的主要表现,但其他原因包括中枢性促甲状腺激素释放激素(Thyrotropin Releasing Hormone,TRH)、促甲状腺激素(Thyroid Stimulating Hormone,TSH)缺乏,或甲状腺激素过度失活引起的消耗性甲状腺功能减退。亚临床甲状腺功能减退(SubClinical Hypothyroidism,SCH)是指有实验室证据表明原发性甲状腺功能减退伴TSH升高,但游离甲状腺素(Free Thyroxine,FT4)水平正常[15-16]。在未来预测方面,可以通过定期检测甲状腺功能指标,可以及早发现甲状腺疾病,尤其是甲状腺功能减退症,早期治疗可以有效预防疾病的进展[17-19]。其次,甲状腺自身抗体是一些与甲状腺相关的自身免疫性疾病(如自身免疫性甲状腺炎)的重要指标[20]。检测甲状腺自身抗体可以及早发现自身免疫性疾病,并采取相应的治疗措施,预防疾病的进一步发展。此外,人们可以通过健康的生活方式来预防甲状腺疾病。如保持良好的饮食习惯,增加蛋白质、碘、维生素等营养物质的摄入;保持适量的运动,增强身体的免疫力;避免吸烟和饮酒等不良习惯。