1. 引言
泌尿类疾病,例如膀胱癌和前列腺癌,对全球健康构成严重威胁。然而,传统的泌尿类疾病检测方法存在需要大型仪器或有创伤的弊端。在癌症中,疾病早期筛查和发现能够有效地提高后续患者针对性治疗的成功率,以便提高生存率。因此,初期预防和早期筛查仍然是减轻全球癌症日益加重负担的关键战略。
电子鼻技术作为一种新兴的无创诊断工具备受关注,且在不同领域有广泛应用,如食品工业 [1] [2] [3] 、环境监测 [4] [5] 和医疗诊断 [6] [7] [8] 。电子鼻技术的关键在于算法研究,目前主要集中在传统机器学习和基于神经网络的深度学习两个方向。长沙理工大学的喻璐学者采用商用的金属氧化物气体传感器构成传感器阵列,使用支持向量机算法 [9] ,实现对丙酮和乙醇的快速检测。他们采用了分段拟合的方式提取特征,并取得了令人满意的结果,最终准确率达到了92.5%。然而,需要指出的是,大部分特征工程都受到人为先验知识的影响,这导致了这些特殊的特征工程仅适用于特定情况,缺乏普遍适用性。Cong Fang学者采用深度学习算法,具体包括卷积神经网络和递归神经网络,对整体原始数据进行分析,以实现对不同白酒的鉴定 [10] 。尽管深度学习以其多层神经网络和特殊层对原始数据进行全面分析而闻名,但其对于电子鼻技术的应用存在一些限制。深度学习算法的确无需进行繁琐的特征工程,因为它能够直接从原始数据中学习到隐藏特征。然而,由于其复杂的网络结构,深度学习模型需要大量的样本数据来支持训练,否则可能会产生不确定性,而且计算成本也会非常高,这使得其在商业应用方面不太适用。因此,本文设计一种仅基于常规传感器特征的机器学习算法,对泌尿系统疾病进行筛查的气体识别电子鼻系统具有重要意义。
对于通过挥发性有机化合物(Volatile Organic Compounds, VOCs)诊断疾病的方法已经在国内外得到了广泛研究,许多疾病的气体标志物已被发现,并部分已用于临床诊断。例如,丙酮被发现与糖尿病 [11] 、一氧化氮与哮喘 [12] 、硫化氢与口臭 [13] 、异戊二烯与心脏病 [14] 等相关联。本文选取了膀胱癌最大关联性的标志物乙苯 [15] 与异丙醇 [16] ,以及前列腺癌最大关联性的标志物甲苯 [17] 和戊醛 [18] 作为研究对象。我们采用了8种不同的金属氧化物气体传感器对这四种目标气体进行数据采集。具体地,我们通过传感器响应值的导数判断传感器阵列的实时状态,并提取相应时间段的特征。最后,我们采用了传统的机器学习算法,包括K-最近邻(K-Nearest Neighbor)、支持向量机(Support Vector Machine, SVM)和随机森林(Random Forest, RF)进行建模。为了提高分类模型的预测性能,我们采用了stacking方法对前述三种基本分类器进行两两集成。通过比较六种方法的实验结果,我们致力于利用常规的气体传感器特征,寻找出最佳模型。
2. 实验部分
2.1. 传感器阵列设计和选取
半导体(MOS)气体传感器主要以其灵敏度高、成本低、稳定性好等特点而闻名。针对甲苯、乙苯、异丙醇和戊醛等四类挥发性有机化合物(VOCs),我们选用了8种商用MOS气体传感器。这些传感器的型号、厂家和主要目标气体如表1所示。为了评估传感器阵列的性能,图1展示了采用静态配气法获取的数据,显示了各传感器对目标气体的实时响应。静态配气法是一种常用的实验方法,用于精确控制目标气体的浓度和流量,以便研究传感器对特定气体的响应特性。
![](Images/Table_Tmp.jpg)
Table 1. Sensors selected for electronic noses and their corresponding detection gases
表1. 电子鼻选用的传感器与他们对应的检测气体
2.2. 数据的获取
实验采用静态气体制备法,在气测试箱中的蒸发皿上注入目标挥发性有机化合物并加热蒸发,以获得特定浓度的气体环境。VOCs气体浓度计算方法如下:
Q = (V × C × M)/(22.4 × d × ρ) × 10−9 × (273 + TR)/(273 + TB)
Q为应取的液体体积(mL);V为测试瓶体积(mL);M为物质分子量(g);ρ为液体的纯度;C为所要配制气体的浓度(1 × 10−6, ppm);d为液体密度(g/cm3);TR为测试环境温度(℃);TB为测试瓶内的温度(℃)。
![](//html.hanspub.org/file/116-2571640x8_hanspub.png?20240604095657446)
Figure 1. Test diagram of sensor array for target VOCs (a) Sensor array response to 10 ppm isopropanol; (b) Sensor array responds to 10 ppm toluene; (c) Sensor array responds to 10 ppm glutaraldehyde; (d) Sensor array response to 10 ppm ethylbenzene
图1. 传感器阵列对目标VOCs的测试图 (a) 传感器阵列对10 ppm异丙醇响应;(b) 传感器阵列对10 ppm甲苯响应;(c) 传感器阵列对10 ppm戊醛响应;(d) 传感器阵列对10 ppm乙苯响应
系统实验测试示意图如图2所示,对甲苯、乙苯、异丙醇和戊醛的浓度分别设置为10、20、30、50、70、90 ppm。在实验过程中,甲苯和戊醛每种浓度重复五次,乙苯和异丙醇每种浓度重复四次,因此总的样本点数量为108个。
2.3. 特征工程
为了避免人为提取数据所带来的干扰,我们利用导数判断状态,并自动从原始数据中提取稳定状态时间段的平均电阻值。
具体而言,在图3中,注入了6次甲苯气体,浓度梯度分别为10, 20, 30, 50, 70, 90 ppm。通过对导数的分析,我们推导出6个时序相邻大于300秒的最小导数值,分别为[834, 2037, 3555, 5148, 6909, 8707]。同理,我们还得到了对应的最大导数时间点,分别为[1293, 2594, 4237, 5809, 7691, 9471]。其中最小导数时间点确定了进入响应阶段的时间段,而最大导数时间点确定了进入恢复阶段的时间段。
![](//html.hanspub.org/file/116-2571640x9_hanspub.png?20240604095657446)
Figure 2. Schematic diagram of gas collection process
图2. 气体采集流程示意图
![](//html.hanspub.org/file/116-2571640x10_hanspub.png?20240604095657446)
Figure 3. Real time response and derivative diagram of sensor KQ-2801 to toluene
图3. 传感器KQ-2801对甲苯的实时响应与其导数图
在导数确定传感器状态后,我们先对数据标准化,使用
,式中μ为所有样本下某一特征的均值, 为所有样本下某一特征的标准差。随后,采用传感器响应
作为特征,其中Ra为基线状态下的平均响应电阻值,Rg为响应稳定状态下的平均电阻值。这一转换将连续时间段的信号离散为6个样本点信号。
2.4. 机器学习模型
本研究为了鉴别泌尿类疾病标志物VOC:甲苯,乙苯,戊醛与异丙醇,我们先对原始数据进行自动化提取特征,将数据集转换为[108, 8]的矩阵,108表示样本个数,8表示各传感器对于样本的特征值。
108个数据集划分为33个样本的测试集,另外的75个样本用来作为5折交叉验证,60个样本作为训练集,15个样本作为验证集。图4和图5分别是各算法的示意图和数据选择流程图。
2.4.1. PCA
为了实现数据的可视化和数据的降维,首先对原始数据进行了主成分分析(Principal Component Analysis, PCA),以达到聚类的效果。PCA是一种采用的降维和数据压缩技术,通过线性变换将原始数据转换为一组新的坐标系,使得在新的坐标系下数据的方差最大化。这些新的坐标,代表着最有效解释数据变异性的方向 [19] [20] [21] 。
我们选择采用降维的原因是,许多气体传感器存在交叉敏感性,导致传感器阵列的原始数据中存在大量冗余信息。通过PCA降维,我们可以更有效地捕获数据中的主要变化,从而减少特征的维度,并保留数据的关键信息。
2.4.2. KNN
K最近邻方法(K-Nearest Neighbor)是一种基于实例的学习算法,用于解决分类和回归问题。在这种方法中,根据测试集中的自变量观测值与训练集中自变量观测值的距离,选择最近的k个点。然后,对这k个最近邻点的因变量进行加权平均,以预测测试集的因变量 [22] 。
2.4.3. SVM
支持向量机(Support Vector Machine, SVM)是一种强大的监督学习算法,用于分类和回归任务。其核心思想是通过找到一个最佳的超平面来对不同类别的数据进行分离 [23] [24] 。
2.4.4. SVM
随机森林(Random Forest)是一种基于集成学习的强大机器学习算法,它通过组合多个决策树来进行分类或回归任务。其基本原理是通过对训练集的随机采样,以及对特征的随机选择,构建多棵决策树,并且通过投票或平均的方式来获得最终的预测结果 [25] [26] 。
2.4.5. Stacking集成
Stacking集成是一种模型集成技术,它通过将多个基本模型的预测结果作为新的特征,然后再训练一个元模型(Meta Model)来进行最终的预测。这种方法能够有效地提高模型的泛化能力和预测性能 [27] 。
使用stacking集成方法将上面三种模型进行两两集成,将模型A和模型B的预测结果输入给逻辑回归模型(Logistic Regression, LR),逻辑回归模型学习如何为A和B的预测结果分配适当的权重,从而在最终的集成预测中有效地捕捉每个基本模型输出的重要性。
2.5. 评分标准
分类问题是监督学习的核心问题,为了评估分类模型的性能如何,我们使用混淆矩阵(Confusion matrix)来评估性能指标,直观判断模型的性能。在混淆矩阵中,有四个参数,分别是真阳性(true positives; TP);假阳性(false positives; FP);假阴性(false negatives; FN);真阴性(true negatives; TN)。正确地归类为阳类的例子称为真阳性,正确地归为阴类的例子称为真阴性,而被错误归类为阴性的阳性例子称为假阴性,被错误归类为阳性的阴性例子称为假阳性。
混淆矩阵提供了在测试数据上模型对各类别的估计与真实情况,因此由以下指标判断模型分类效果是否成功。以下为指标其计算公式:
准确率(Accuracy):
精确率(Precision):
![](//html.hanspub.org/file/116-2571640x14_hanspub.png?20240604095657446)
Figure 4. Schematic diagram of the algorithm designed in the article: (a) PCA schematic diagram; (b) Data partitioning; (c) SVM schematic diagram; (d) RF schematic diagram; (e) KNN schematic diagram
图4. 文章设计算法的示意图:(a) PCA示意图;(b) 数据的划分;(c) SVM示意图;(d) RF示意图;(e) KNN示意图
![](//html.hanspub.org/file/116-2571640x15_hanspub.png?20240604095657446)
Figure 5. Data selection flowchart (Taking PSO-SVM and PSO-RF Integration as an example)
图5. 数据选择流程图(以PSO-SVM和PSO-RF集成为例)
召回率(Recall):
F1值:
3. 结果与讨论
本研究采用Python语言,利用Scikit-learn框架进行实验。实验结果显示,各分类器的准确率如图6所示。在单一分类器方面,随机森林表现最佳,其准确率达到了91%。而在集成算法模型中,由于数据集样本有限,仅考虑了两两集成。其中,SVM和RF的集成效果最显著,准确率达到了97%。相比之下,SVM和KNN的集成准确率略有下降,仅为82%。
![](//html.hanspub.org/file/116-2571640x19_hanspub.png?20240604095657446)
Figure 6. Accuracy of classification models for each algorithm
图6. 各算法分类模型的准确率
3.1. PCA聚类结果
图7展示了前两个主成分PC1和PC2组成的二维图,其中前两个主成分的贡献率分别为73.3%和15.7%,累计贡献率达到89%,置信区间为0.95。PCA反映了四种气体的聚类情况,异丙醇和戊醛具有较高的识别度,而甲苯与乙苯则纠缠在一起。这可能是因为两者具有相似的分子结构,导致传感器阵列在它们的响应上无法很好地区分开。
![](//html.hanspub.org/file/116-2571640x20_hanspub.png?20240604095657446)
Figure 7. PCA clustering effect diagram for four types of gases
图7. 四类气体PCA聚类效果图
3.2. 单分类器和集成分类器实验结果分析
3.2.1. KNN的实验结果分析
大多数算法模型容易受其超参数影响,从而限制了模型的性能。对于KNN算法而言,由于其超参数K为离散的整数类型,因此无需优化算法进行超参数调整。我们直接对其三种距离度量和K值范围在 [3] [10] 内进行多次拟合,以选择最佳的K值和距离度量。从图8可以看出,当K = 3时,欧氏距离取得最佳效果,准确率达到了88%。在后续的集成算法中,我们确定了K = 3和欧氏距离作为最佳超参数,用作stacking集成算法的基分类器。
本文的目标是进行四类气体的分类,其中期望输出为:0 → 甲苯;1 → 乙苯;2 → 异丙醇;3 → 戊醛。图10(c)展示了KNN模型在测试集上的混淆矩阵,可以观察到,该模型将11个甲苯样本中的3个误分类为乙苯;将6个乙苯样本中的1个误分类为异丙醇。这一结果可能是由于它们都属于苯系物,导致在传感器阵列上的响应相似,从而在PCA降维后的特征空间中,甲苯与乙苯的区分度不高。最终,KNN模型的整体准确率为88%。然而,针对乙苯的精确度和甲苯的召回率分别为0.62和0.73,如图11(a)和图11(c)所示。
3.2.2. SVM和RF的实验结果分析
与KNN不同的是,SVM的超参数是连续的变化,所以需要采用优化算法搜索最佳超参数;而RF的超参数虽然是离散的整数型,但是空间变化很大,穷举地选取最佳值耗时耗力,所以仍然需要采用优化算法。因此,我们决定引入粒子群优化算法(Particle Swarm Optimization, PSO)对其超参数进行调优 [28] 。在粒子群算法中,SVM的优化主要涉及惩罚系数C和核函数常数项系数gamma;而RF的优化则包括决策树数量和决策树深度。这些超参数的范围与作用如表2和表3所示。选择准确率(Accuracy)作为优化参数,通过五折交叉验证,计算五次准确率的平均值和标准差,并使用加权求和,得到一个得分系数:0.7*avg~0.3*var (其中avg是五次交叉验证准确率的平均,var是五次交叉验证准确率的方差)。该得分系数用于评估优化结果的质量,以提高模型的稳定性和泛化性。
![](//html.hanspub.org/file/116-2571640x21_hanspub.png?20240604095657446)
Figure 8. Accuracy of different K values under three distance schemes
图8. 三种距离方案下,不同K值的准确率
![](Images/Table_Tmp.jpg)
Table 2. Superparameter range of PSO optimized SVM
表2. PSO优化SVM的超参数范围
![](Images/Table_Tmp.jpg)
Table 3. Superparameter range of PSO optimized RF
表3. PSO优化RF的超参数范围
粒子群优化的对比如图9所示,其中(a)展示了未优化超参数的SVM特征空间示意图,而(b)展示了经过优化后的SVM特征空间示意图。通过粒子群优化算法,成功将SVM的准确率从54%提升到85%。图10(a)和图10(b)分别是SVM和RF混淆矩阵,可观察到,PSO-SVM算法模型在甲苯与乙苯之间的鉴别方面仍有欠缺,这与KNN的结果类似,这可能是因为SVM是要在特征空间绘画出最优超平面的原因,而特征空间中,甲苯与乙苯纠缠不清,这才导致了SVM对于甲苯与乙苯的误分类情况。然而,在甲苯与乙苯的纠缠问题中,PSO-RF有着出乎意料的优异性能。
结果而言,超参数优化后的最佳模型,SVM的准确率达到了85%,然而针对乙苯的精确度和针对甲苯的召回率都只有55%,图11(a)和图11(c)所示;RF的整体准确率为91%,但是针对异丙醇的精确度仅有78%,图11(b)所示。
![](//html.hanspub.org/file/116-2571640x22_hanspub.png?20240604095657446)
Figure 9. (a) The SVM model with an accuracy of 54%, and its hyperplane is illustrated in the feature space; (b) The SVM model optimized by PSO (with an accuracy of 85%) has a hyperplane in the feature space schematic diagram
图9. (a) 准确率为54%的SVM模型,其超平面在特征空间示意图;(b) PSO优化后的SVM模型(准确率为85%),其超平面在特征空间示意图
3.2.3. 集成方法的实验结果分析
为了进一步优化分类器性能,决定采用Stacking方法,将SVM,KNN和RF模型进行两两集成,以充分发挥它们各自的优势,以提高整体模型的综合性能。
整体实验结果如图10(d)~(f)所示,SVM与RF的集成效果最好,其次是KNN和RF,两者准确率分别达到了97%和94%,相对于基分类器的准确率有明显提升。然而,在SVM和RF的集成中,模型效果反而不如之前的基分类器。这可能是因为SVM和KNN都是基于特征空间中的样本点距离来进行分类判断;而RF是一种集成算法模型,它的输出是根据多个决策树的预测结果进行综合,其中每棵决策树的训练样本存在差异。因此,只要大多数决策树都能做出正确的判断,即使个别决策树存在误判,也不会对整体模型的性能产生太大影响。
如图10(d)所示,作为RF与SVM的集成模型,其完美地继承了两个模型的优势,SVM在处理乙苯与异丙醇上有着巨大优势,而RF能更好地甲苯与乙苯之间的纠缠;KNN和RF同样如此,集成模型继承了基分类器在不同类别判断中的优点,如图10(f);然而SVM和KNN的集成,则是产生了冲突,如图10(e)所示。
图11是六种模型对各个类别预测的评分标准。其中六种模型对戊醛的检测最佳,如图11(d)所示,这符合原始数据在PCA降维后在特征空间上的分布。其中甲苯与乙苯由于其本身都是苯系物的原因,它们在传感器阵列上的响应类似,因此误分类点大部分出自于它们。
4. 结论
本研究使用电子鼻技术,利用常规气体传感器的响应值作为特征,采用KNN、SVM和RF等三种分类算法,并通过Stacking集成模式对它们进行了两两集成。对比了六种模型的性能,结果显示,SVM和RF集成模型表现出色,达到了97%的最终分类准确率。尤其在甲苯与乙苯等互相纠缠的情况下,集成模
![](//html.hanspub.org/file/116-2571640x23_hanspub.png?20240604095657446)
Figure 10. Confusion matrices of each algorithm model for the test set: (a) RF; (b) SVM; (c) KNN; (d) RF-SVM; (e) SVM_KNN; (f) RF_KNN
图10. 各个算法模型对于测试集的混淆矩阵:(a) RF;(b) SVM;(c) KNN;(d) RF_SVM;(e) SVM_KNN;(f) RF_KNN
![](//html.hanspub.org/file/116-2571640x24_hanspub.png?20240604095657446)
Figure 11. Performance evaluation indicators for four types of gases using six models. (a) Ethylbenzene; (b) Isopropanol; (c) Toluene; (d) Glutaraldehyde
图11. 六种模型对四类气体的性能评价指标。(a) 乙苯;(b) 异丙醇;(c) 甲苯;(d) 戊醛
型的分类准确率也达到了94%。这表明,仅使用常规气体传感器特征就能实现较好的单一气体检测。不过,尿液挥发物并非仅限于单一VOC,因此,后续实验将进一步扩展到多元气体的预测。
基金项目
上海市科委高校能力建设项目(21010502800)。
NOTES
*第一作者。
#通讯作者。