基于机器学习的冠心病辅助诊断研究

随着人们生活水平的提高,冠心病的患病率越来越高,患病群体进一步年轻化。传统的医疗手段尽管可以识别出大多数冠心病患者,但成本高、效率低,并且依赖于医生的丰富经验和专业水平,还需要根据众多复杂的医学指标做出判断,加重了医务负担。因此,利用机器学习辅助诊断是否患有冠心病是一种简单、方便、高效的方法。基于此,本文利用机器学习算法构建冠心病分类模型,用于冠心病的辅助诊断。首先,本文基于Kaggle平台上的某冠心病数据集,对原始数据进行了预处理,为了解各特征变量对冠心病患病的影响,对数据进行了可视化分析。其次,数据集中患有和未患有冠心病的数据比例约为1:11,存在不平衡问题。为了提高后续模型的有效性和稳定性,分别利用ADASYN算法、SMOET算法和SMOTE-ENN算法三种方法对不平衡数据进行处理,并建立了逻辑回归、决策树、KNN和selleck合成随机森林四种模型,通过对比模型性能,选择SMOTE-ENN算法用于后续研究。为了提高模型的泛化能力和学习能力,采用嵌入式方法进行特征选择,并通过建立决策树、随机森林和Ada Boost三种模型得到特征重要性排序,最终确定GSI-IX核磁17个特征变量全部用于后续建模分析中。然后,针对冠心病辅助诊断研究问题,本文分别构建了决策树、逻辑回归和KNN三个单一模型,以及Ada Boost、light GBM和随机森林三个集成模型。对比测试集的F1值及AUC值发现,单一模型中,KNN的F1值和AUC均达到0.9以上,效果最好;三个集成模型的FAggregated media1值和AUC值整体高于单一模型,其中随机森林的F1值和AUC达到了0.9627和0.9944,分类效果最好。最后,利用Stacking算法对六个模型以九种组合方式建立融合模型。对比所有模型评价指标发现,Stacking融合模型的F1值与AUC值整体高于同质集成模型,其中以随机森林、Adaboost和Light GBM为初级学习器,KNN为次级学习器建立的Stacking融合模型的泛化能力最好,且模型不存在过拟合问题,具有较强的稳健性。