摘要:近些年来随着社会人口老龄化及城镇化步伐进一步加快,城市居民不太健康的生活形式盛 行,心脑血管病症的凶险要素明显增多,我国中风的患病率具有明显增长。然而中风的诱使因素 多,临床诊断复杂,且尚未有有效的治疗手段。是故现今对于中风主要还是采取预防和尽早治疗 等手段来控制中风问题。本文的研究成果可以用于排查易感人群,了解中风高风险因素等领域。 本文聚焦于患者数据集中数据不平衡问题,运用四种改进方法,改变数据集的分布,对样本权值 修改,采用单类学习,使用集成学习等方法,分析比较建立在医学诊断测试统计指标中灵敏度与 发现率更高的中风预测模型,以期使其具有更高的实用价值。

1 引言

1.1 中风预测模型构建的背景及意义

按照世界卫生组织调查:我国中风患病率位列世界第一,近二十年来中风死亡总数逾 200 万,年增长速率已达 8.7%。中风严重威胁我国国民的生命和健康,现已位居我国死亡及 成年人致残的首要疾病。世界卫生组织的数据显示,全世界每年有 1500 万人患有中风,受 影响的人每 4-5 分钟就会死亡。[1] 中风是一个多要素影响的病症,其病发的主要要素多样,诊断的指标极为之多。传统 上,中风的诊断过程完全通过医生的临床经验,依靠人工判断非常耗时,容易出错,这导致 了中风防治的困难。临床上建议通过健康的生活方式,控制体重指数,平均血糖水平等来预 防中风。 本文将通过研究包含高血压,BMI 等 11 项诊断指标的数据集,运用机器学习,选择对 中风重要的稳健特征,构建中风的风险预测模型,为中风的早期发现提供了一种新的计量诊 断方法。同时由于中风未有有效的临床治疗手段,尽早发现,预防和控制脑中风就具有极大 的现实意义。故本项目也旨在利用机器学习建立分类器,分析比较的出具有更高的准确性, 以及更好的精度、召回率和特异性的相对最优预测模型,为医生快速排查中风患者和未患者 进行确诊等提供技术支持。

1.2 求解方案分析

本项目旨在构建一个分类器,中风样本类别的检验是个二分类问题,即根据数据集中的 诸多特征判断患者中风与否。在医学诊断测试中着重关注的检测结果统计指标为灵敏度 (Sensitivity),特异度(Specificity),患病率(Prevalence),发现率等。现实生活中的医学检测样 本往往不均衡,常见的准确率难以很好的反馈分类器的实用效果。同时医学检验需要对于阳 性案例检出有格外的关注,一个未检测出来的中风案例将会导致严重的后果。因而本分类器 在构建的过程中将会着重对于召回率等评估标准进行评估。 本项目将对数据集分析并通过 seaborn 和 matplotlib 可视化分析库呈现,并分析数据集所 反映出来的中风关键因素。对数据集进行特征工程,数据预处理,采用主成分分析对数据降 维。 对于分类的问题,现行有大量成熟的机器学习方法。本实验的分类器首先考虑将采用多 种方案测试其在本数据集上的使用效果。传统的分类策略主要包含 K-NN、决策树、逻辑回 归 (LR)、支持向量机 (SVM)等,尝试通过不同分类策略的比较和分析能够得出结果相对优秀 的模型。 本项目聚焦本数据集的典型特征,即正负样本不均衡这一问题。采用多种不同方法提高 分类器对本数据集的分类效果。改变样本的分布,对数据进行重采样。对于传统方法进行参 数调优以实现对不均衡样本的适应。使用单类学习,改变分类思路。使用集成学习通过建 立几个模型来优化预测效果。观察不同的改进策略,对于分类器的优化效果,尝试得出可以 更好得检出患病病人的分类器。

1.3 文章概述

本文首先表述了中风预判分析模型建立的视域、战略意义,和建立分析模型的现存困 难,继而给出了本文所应研究的具体内容和总体目标,然后简要概述了本项目所使用的算 法。在算法实现描述板块着重讲解了本文的核心内容,即本文如何解决数据不平衡这一问 题。在实验描述板块介绍了数据集的来源与组成,对数据集中各类数据的分布情况进行可视 化呈现,得出数据集数据的基本分布情况。随后本文以中风数据集及其模型建立为切入点首 先展示传统的机器学习算法在此类问题上的无力,接着展现本文的四种改进方案及其效果。 最后得出结论。

2 相关算法概述

2.1 经典机器学习算法

2.1.1 K 近邻算法

KNN 算法最早是由 Cover 和 Hart 提出的一种非参数分类算法,现已广泛应用于模式识别 和数据挖掘的各个领域。分类思想是:给定一个待分类的样本 x,首先找出与 x 最接近的或最 相似的 K 个已知类别标签的训练集样本,然后根据这 K 个训练样本的类别标签确定样本 x 的 类别。[2]

2.1.3 决策树

决策树是一种树形结构,其中每个内部节点表示一个属性上的判断,每个分支代表一个 判断结果的输出,最后每个叶节点代表一种分类结果,本质是一颗由多个判断节点组成的 树。决策树的生成通常使用信息增益最大,信息增益比最大和基尼指数最小作为最优特征, 从根节点开始,递归的产生决策树。相当于用信息增益或其他准则不断地选取局部最优的特 征,或将训练集分割为能够基本正确分了的子集。

2.1.4 逻辑回归

逻辑回归是用于处理因变量为分类变量的回归问题,常见的是二分类或二项分布问题, 也可以处理多分类问题,它实际上是属于一种分类方法。逻辑回归算法基于 Sigmoid 函数, 或者说 Sigmoid 就是逻辑回归函数。

2.1.5 支持向量机

支持向量机的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有 别于感知机;SVM 还包括核技巧,这使它成为实质上的非线性分类器。SVM 的学习策略就 是间隔最大化,可形式化为一个求解凸二次规划的问题,也等价于正则化的合页损失函数的 最小化问题。SVM 的学习算法就是求解凸二次规划的最优化算法。

2.2 主成分分析

主成分分析(PCA),是一种用于探索高维数据的技术。PCA 通常用于高维数据集的探 索与可视化,还可以用于数据压缩,数据预处理等。PCA 可以把可能具有线性相关性的高维 变量合成为线性无关的低维变量,称为主成分,新的低维数据集会尽可能的保留原始数据的 变量,可以将高维数据集映射到低维空间的同时,尽可能的保留更多变量。降维就意味着信 息的丢失,如果用原始数据在模型上没有效果,期望通过降维来进行改善这是不现实的。[3]

2.3 分类评估方法

2.3.1 混淆矩阵

在分类任务下,预测结果(Predicted Condition)与正确标记(True Condition)之间存在四种不 同的组合,构成混淆矩阵。混淆矩阵如图所示:

2.3.2 准确率(Accuracy)

准确率是一个用于评估分类模型的指标。通俗来说,准确率是指我们的模型预测正确的 结果所占的比例。准确率的定义如下:

2.3.3 精确率(Precision)

精确率是预测结果为正例样本中真实为正例的比例。精确率的定义如下:

在医学诊断测试中检测结果的统计指标 Discovery rate 发现率与精确率的定义相同。

2.3.4 召回率(Recall)

召回率是真实为正例的样本中预测结果为正例的比例。召回率的定义如下:

在医学诊断测试中检测结果的统计指标 Sensitivity 灵敏度。与召回率的定义相同。

2.3.5 F1-score

F1-score 又称平衡 F 分数(balanced F Score),它被定义为精确率和召回率的调和平均 数。是统计学中用来衡量二分类模型精确度的一种指标。它同时兼顾了分类模型的精确率和 召回率。F1 分数可以看作是模型精确率和召回率的一种调和平均,它的最大值是 1,最小值 是 0。

3 算法实现描述

在本次实验遇到模式识别中常见的一个问题类先天分布的倾斜性,即数据集各个类别的 样本数目相差巨大。以二分类问题为例,假设正类的样本数量远大于负类的样本数量,这种 情况下的数据称为不平衡数据。但是小类往往更加收到重视,具有更加高昂的错分代价。以 本次实验而言,中风患者的样本是分类器实际效用的保障。构建分类器的主要目的即为检出 中风患者这一小类。基本上大多数常见传统的机器学习算法在不进行参数调优时识别小类的 时候是一个障碍。由于多数类与少数类在数量上的巨大差距往往会使得分类模型偏向于多数 类而忽略少数类,造成少数类的分类精度较低。以不平衡数据集作为训练样本, 构建训练样 本与类别之间的关系模型, 并对新的样本类别进行判断的问题称为不平衡数据分类问题。当 前, 不平衡数据分类问题广泛存在于生物医疗、金融、信息安全、工业、计算机视觉等诸多 领域,本文尝试在三个方向解决这一问题。[4] 第一个方向为人工数据处理层面,对数据进行不同方式的重采样改变数据分布; 第二个方向是选用对数据不平衡不敏感的分类算法对样本的权重进行修改; 第三个方向是采用单类学习 One-class-SVM; 第四个方向是使用集成学习方法。

3.1 算法总体框架

3.2 改进一及分析

对于数据不平衡这一问题我们首先可以想到的是改变样本的分布,考虑是否可以增加小 类数据或者减少多类数据,以此达到正负样本的平衡适应传统的机器学习方法。对数据进行 重采样主要有两种办法,即过采样和欠采样。[5] [6]

3.2.1 过采样

过采样,是通过复制小类样本,从而增加小类比例的一个方法。随机过采样方法是复制 从少数类样本中随机选用的一些样本生成新的样本集。将它们掺入到原数据集中扩展原始数 据集而获得新的少数类集合。SMOTE 是对随机过采样方法得一种改进,SMOTE 算法改进了 随机过采样方法仅仅是对少数类样本进行复制的缺陷,SMOTE 算法对每一个少数类样本从 它最近邻的样本中随机选用一个少数类样本然后在和其的连线上随机选择一点作为新合成的 少数类样本。

3.2.1 欠采样

欠采样方法是去除一些多数类中的样本使得正例、反例数目接近然后学习。但随机欠采 样也存在问题,对于随机欠采样,由于采样的样本集合要少于原来的样本集合,因此会造成 一些信息损失。

3.3 改进二及分析

经典分类算法在对不平衡数据分类时, 结果会向多数类倾斜, 使得少数类容易被忽视. 以支持向量机为例, 由于少数类样例较少, 基于支持向量寻找到的分割超平面会向少数类 偏移, 这样少数类便会被错分为多数类。针对这一问题传统的分类方法也具有一定的解决 方法。 [7] 以支持向量积为例,改变样本分布采用过采样方法会增加样本的总数,对于支持向 量机这个样本总是对计算速度影响巨大的算法来说,轻易地增加样本数量是不明智的。 况且,支持向量机中地决策仅仅受到决策边界的影响,而决策边界又仅仅受到参数 C 和 支持向量的影响,单纯地增加样本数量不仅会增加计算时间,可能还会增加无数对决策 边界无影响的样本点。因此在支持向量机中,我们可以利用两个不同的正规化参数(C+ 和 C-)来分别控制两类样本的错误惩罚。其主要是预防 SVM 的过学习预防 SVM 的过学 习,这时分类错误基本上都归结于这些越界的支持向量,这样就能得到两类样本分类错 误率近似相等的 SVM 分类器。[8] 决策树也有同样可以进行参数调优以实现对不均衡样本的适应。[9]

3.3 改进三及分析

样本极度不均衡,面对这一情况,传统的二分类问题又是可以进行一个转发。我们可以 改变思路将其转变为一个单分类问题。例如本实验,我们从样本中判断患病与健康,这是个 二分类问题。我们假设使用 SVM 支持向量机,通过 SVM 中的支持向量找到这两类的最大间 隔。进而再输入一个未知患病与否的人信息后我们可以得出结论其为健康或者患病。这一方 法正如医生的视角,其在看病的过程中接触了足够的病人数据,根据复诊与检测信息,分析 出了其中的关键特征后,能够准确的判断病症。 但是我们将其转换为这样一个问题即我们作为一位普通的善于观察的人,我们平时所接 触到的均为健康的人群,身边出现了一个病人,其明显可以被看出有所不适,这时我们可以 推断其不是健康的人。这样这个问题就变成了一个错误检测的问题,变成了一个是与非的问 题。这种方法被称为单类学习的方法。 基于单类学习的不平衡数据分类方法的主要思想是只对多数类样本进行训练, 形成一个 对该类别的数据模型。其目标是从测试样本中识别出多数类样本, 而不是对少数类和多数类 进行区分。对于新的样本, 通过设计相似度度量并设定阈值来判断新样本的归属。 单类支持向量机算法(One-Class SVM)是对支持向量机算法的扩展,他即为一个经典的单 类学习方法,基本思想是利用估计目标类样本在特征空间的密度分布,对未知的样本做出 “是”或者“非”的判断。

3.4 改进四及分析

集成学习通过建立几个模型来解决单一预测问题。其工作原理是生成多个分类器,各自 独立地生成多个分类器,各自独立地学习和做出预测。这些预测最后就和成组合预测,因此 优于任何一个单分类做出预测。利用集成学习提升分类性能已经成为非常普遍的优化方案。 Bagging 方法集成不同的分类器通过选择的输入,在训练集时,使用自助法选择样本迭 代或者分配权重给观察点;最后的预测阶段使用了多数投票的原则,这能够确保误差被忽 略。Random Forest(随机森林)是一种基于树模型的 Bagging 的优化版本,一棵树的生成肯定 还是不如多棵树,因此就有了随机森林,解决决策树泛化能力弱的特点。 Boosting: Adaboost 是一种迭代促进的方法。在训练种它分配不同的权重给观察值。具体 来说,在每次迭代中,误分的观察值的权重增加,而正确分类的观察值的权重减少。从而, 训练过程中,模型会更加聚焦于误分类的数据,因而提高了分类结果的正确率。XGBoost, lightGBM 等 boosting 方法也是本实验所采用的部分方法。 boosting 是一个有效且易于执行的方法,但是它位于类边界的限制,以及对奇异值进行 训练的风险,会影响它学习的效果。 Bagging 对于不平衡数据集仍然是不合理的,这是因为自助法采样是不管数据标签的, 因而不平衡的分布会被子样本数据集所继承。根据文献[10]对基于集成学习的不平衡数据分 类方法进行了较为完整的梳理和总结, 其主要提出了数据预处理与集成学习相结合的方法 即改进方法一与本方法结合。

4 实验描述

4.1 实验数据

4.1.1 数据集的来源与组成

本课题研究的数据集来源于大数据竞赛网站 kaggle,该数据集来源于孟加拉国部分医院 的数据采集。数据集有 11 个特征值和 1 个目标值。目标值自然就是中风与否,11 个特征值 分别为:1)个人身份识别 id,2)性别,3)是否拥有高血压,4)是否拥有心脏病,5)是 否有结过婚,6)工作类型,7)居住在城市还是乡村,8)血糖水平,9)bmi 指数,10)吸 烟程度。

4.1.2 数据分布分析

在本数据集中连续的特征值有年龄,血糖水平和 bmi 指数。下图将展示各连续的特征值 的分布情况。

在本数据集中离散的分类的单变量为性别,结婚与否,高血压,心脏病,工作类型,居 住类型和吸烟程度,下图即为离散特征的饼状图。

4.1.3 目标值分布

数据集中最为重要分布即为中风人数占全部总人数的占比,但是实际数据并不令人满 意。中风和未中风的分布如下图所示。从分布上可以看出这是一个极其高度不均衡的数据 集,其目标值类别的比例几乎高达 20 比 1 的程度,这为模型训练和得到正确结论带来了极其 巨大的麻烦,本报告大量章节将详细讲述不进行数据对模型构建的影响以及我是如何应对此 问题的。现在所需知到的是未中风的比例约为 95%,中风比例约为 5%,在下文将根据中风 与否结合各个特征值进行分析。

4.1.4 特征值与中风的联系

下图展现了年龄,血糖水平和 bmi 指数这三个连续的特征值与中风的联系。

接下来分析离散的变量与中风的关系。下图中是我进行数据预处理所得,行坐标将离散 的分类别的特征值离散化,列坐标是将数据集按照中风与否进行分类,图中的百分率是根据 各类中中风人数和非中风人数与总人数相除得到的比例。本数据集中风人数占比仅为 5%, 可以通过观察蓝色的中风这一列观察与 5%相差较大的几个数字从而得出哪一些具体的离散 单变量对于中风的影响较大。

4.2 数据预处理

本节阐释了对于数据集进行预处理的方式,以及面对极度不平衡的数据样本集的处理方 法的改进一。 数据集中包含以下几种不同类型的数据:1)连续的变量例如年龄等;2)二进制数据例 如高血压等,3)分类的离散的变量例如工作类型,其中包含了私企,国企等,4)表示是或 否的字符串数据例如结婚与否。在 bmi 指数中有空数据 nan。这些数据不是相同的数据类型 且不在一个量纲之中。因此本实验相继进行了介绍去除缺失值,将数据进行离散化,去除无 关信息,数据标准化,PCA 主成分分析法降维等步骤。 上文中已经指出本数据集是一个极度不平衡的数据集,未中风患者的比例同中风患者的 比例高达 20 比 1。本文想要构建的模型是一个二分类模型,正负样本比例的严重失调将会造 成构建模型准确度看似很高但精确率和召回率极其低下的后果。本节将会展示本次实验所使 用的改进方法一即改变样本分布的方法,其具体原理在上文已经简介故不再赘述。下图为使 用不同重采样方法在双连续特征下的分布。

SMOTE 算法的效果可以发现原本相邻的点几乎都连接了起来。SMOTE 算法对每一个少 数类样本从它最近邻的样本中随机选用一个少数类样本然后在和其的连线上随机选择一点作 为新合成的少数类样本。从欠采样方法的效果图,可以发现蓝色的未中风的数据被大量删除 直至同中风类型的数据集数量相似为止。 本次实验选择使用了不进行采样,SMOTE 算法,以及欠采样三种方法作为改进一的采 用方法来进行分析与对比。

4.3 模型的构建与比较

本实验最先采用的算法即为 k 近邻算法,该算法原理简单易懂这是本实验最先采用本算 法的原因。K 近邻算法的原理是如果一个样本在特征空间中的 k 个最相似的样本中的大多数 属于某一个类别,那么该样本也应该属于这个类别。根据此原理可以得知 k 近邻算法是一个 分类算法适合本次实验使用。 通过 sklearn 调用 k 近邻算法的 api,将超参数 n_neighbors 设定为 5,模型准确率高 达 90%。为进一步获取更好的准确率,本实验选择使用交叉验证网格搜索以其得到最佳的超 参数 k。出于数据量较小同时使用的计算机性能较为优异的情况下我将估计器参数设定为 1 到 23,并指定 5 折交叉验证。 测试的结果令人哑然,测试结果如下图所示。准确率最开始就能达到 90%,经过参数调 优准确率接近 95%左右。因此我通过使用 collections 模块中 Counter 模块来获取最佳准确 率预测数据中的元素分布,可以发现预测结果中只有 0。根据下图最佳准确率下的混淆矩阵 也可以明显看到。

95%的预测比例源自数据集中 95%的数据是未中风的数据,而 5%是中风患者的数据。样 本极其不平衡,未中风的样本容量很大,中风的样本容量很小。因此当我们输入测试集样本 时,其中任意一个样本的 k 个邻居中大容量的样本即未中风的样本占大多数,因而算法将其 归类为大样本那一类即未中风那一类。同时处于使用了网格搜索交叉验证的缘故,算法察觉 到将 k 值提高可以显著提升算法精确度将其提升至 95%左右因而选择了大的 k 值。即预测结 果完全倾向于大样本,模型对于一切数据做出的决断即为预测 0,即猜测没有中风。这显然 不是我们分类器所期望达到的效果。 倘若我们将 k 的值固定为 1 是否可以减少因为样本不均衡带来的问题呢?运行的结果如 下。从结果上可以看出估计器缺失开始猜测中风的病例了但是我们没有办法通过准确率来看 出次估计器的效果是故需要采用新的评判方式来对分类器进行评估。 在医学诊断测试中着重关注的检测结果统计指标为灵敏度(Sensitivity),特异度 (Specificity),患病率(Prevalence)。在上文已有提及医学诊断测试中检测结果的统计指标 Discovery rate 发现率与精确率的定义相同。Sensitivity 灵敏度。与召回率的定义相同。因此 本文使用了精准率,召回率,f1-score 和 AUC 指数来评定分类器的预测效果。 通过调用 sklearn 中的 roc_auc_score 方法即可得到答案。结果令人非常不满意,实时 上中风的患者仅有 8%被猜中,猜测为中风的患者中仅有 8%却为患者,这与随机乱猜几乎没 有什么区别。其原因或可能在于过小的 k 值使得模型整体变得即为复杂发生过拟合现象。

通过网格搜索我们可以找到最佳的 roc 曲线,其 AUC 为 0.69,这并不能达到我们的期 望,所以本实验将切换机器学习算法。试图使用不同的机器学习算法观测其分类效果的好 坏。

本实验相继使用了 KNN,决策树,逻辑回归,支持向量机等常见机器学习方法,算法描 述章节已经加以介绍。其分类效果如下图所示:

从上图可以明显的得出传统的机器学习方法传通常假设数据集中各类别所包含的样本数 相同且误分代价相等, 然而现实世界中的数据往往具有不平衡特性,面对现实生活中具有不 均衡特性的数据集时传统的机器学习方法就不具有泛用性。必须针对这一情况进行改进才可 以完成具有实际使用效益的分类器。

4.3 模型的改进

4.3.1 改进一

上文数据预处理板块和算法描述部分皆进行过论述。本文所用的第一个改进方法即为改 变样本的分布,期望通过降低小样本与大样本之间的不平衡程度,以适应传统的分类方法。 本实验首先采用的 SVM 对其效果进行测试。

根据上图分析可以看出对数据进行采样可以显著提升 SVM 这一传统分类器的分类效果。 从准确率的角度来看三者的准确率分别为(95%,73%,80%),不做样本平衡的时候准确率反 而更高,做了样本平衡准确率反而变低了,这是因为做了样本平衡后,为了要更有效地捕捉 出少数类,模型误伤了许多多数类样本。然而本实验的核心需求是在于希望检出少数类,即 检出中风群体,因而 ROC 曲线下面积,召回率等才是本实验关注的重点。从上图看来其中欠 采样的效果最佳。其原因可能在于,Smote 大量复制的负样本导致了过拟合的问题。 于是本实验同样针对各类传统的机器学习算法进行测试,同时还加入了大量集成学习的 方法,旨在同时用于改进方案四的比较。根据下图可以明确的得出结论:通过对于数据集分 布的重采样,可以使得传统的机器学习分类方法在不平衡的数据集有着相对较好的表项。

4.3.2 改进二

改进二旨在通过对于传统的机器学习方法 SVM 和决策树进行参数优化,使其适应不 平衡的样本,其原理已经在算法描述内详细讲解。 支持向量积可以通过控制 svc class-weight 参数给每个类别分别设置不同的惩罚参 数 C 使其更加重视小样本。 在决策树中,存在着调节样本均衡的参数:class_weight 和接口 fit 中可以设定的 sample_weight。有了权重之后,样本量就不再是单纯地记录数目,而是受输入的权重 影响了,因此这时候剪枝,就需要搭配 min_ weight_fraction_leaf 这个基于权重的剪枝 参数来使用。 改进方法二的效果如图所示:

由于篇幅限制本改进便仅展示 SVM 的在改进二中的效果。可以看出,效果十分显 著。由此我们可以得出结论利用参数调优,例如在 svm 中利用两个不同的正规化参数 (C+和 C-)来分别控制两类样本的错误惩罚。可以显著提升传统分类器面临不均衡样本 时的泛用性。

4.3.3 改进三

本样本为一个极端不平衡问题,因此我们次啊用 Oneclass SVM 利用只含有单一类样本 进行训练。该方法我们首先将多数类样本供给其进行训练,随后采用训练集对齐测试根据其 检出的异常与测试集进行对应即可得:在 1022 个训练样本中正例总计 62 个,其找出的训练 结果得出的真正例高达 33 个,有着相对较高的召回率。因此可以得出结论:单类学习在样本 极度不均衡的情况下是一个相对不错的分类方法。

4.3.3 改进四

对于集成学习(emsemble learning)其实是一种机器学习的框架,他会创造出多个 基模型,每个基模型被训练出来解决同一个问题,然后通过集成这些基模型的预测结果 来提升整体的表现情况。在算法描述中已有详细的描述。本次实验采用了,随机森林, XGBoost,LIGHTGBM,GradientBoosting,AdaBoost 等方法。

从上图可以明显看出集成学习算法相对于传统机器学习算法面对不平衡数据集的处理效 果略优但是仍然不尽如人意。通过查阅资料可知 boosting 由于类边界的限制,以及对奇异值 进行训练的风险,会影响它学习的效果。Bagging 自助法采样是不管数据标签的,因而不平 衡的分布会被子样本数据集所继承。所以需要对数据进行重采样结合集成学习方法。

从上图可以得出结论:数据预处理与集成学习相结合可以很有效的提升对集成学习 算法对于不平衡数据集的分类,其相较与传统的机器学习方法,可以更好的关注少数 类,得到跟好的 AUC 和 F1score。其效果胜于传统的机器学习方法经过数据重采样后的 分类效果。

5 结论

本文通过多种改进措施,力图建立一个有效的分类其对中风数据进行预测。医疗疾病数 据是一个即为特殊的数据,其中未患病者往往数量远胜于患病者的数量。因而本文面对本数 据集,这一不平衡数据集所得出的结论应该在一定程度上对于同类问题有价值。从上文的实 验与分析中我们可以得出: 传统的机器学习方法传通常假设数据集中各类别所包含的样本数相同且误分代价相等, 然而现实世界中的数据往往具有不平衡特性,面对现实生活中具有不均衡特性的数据集时传统 的机器学习方法就不具有泛用性。必须针对这一情况进行改进才可以完成具有实际使用效益 的分类器。通过对于数据集分布的重采样,可以使得传统的机器学习分类方法在不平衡的数 据集有着相对较好的表项。对于部分对于不平衡数据不敏感的算法进行参数调优可以以实现 对不均衡样本的适应。单类学习在样本极度不均衡的情况下是一个相对不错的分类方法。数 据预处理与集成学习相结合可以很有效的提升对集成学习算法对于不平衡数据集的分 类,其相较与传统的机器学习方法,可以更好的关注少数类,其效果胜于传统的机器学 习方法经过数据重采样后的分类效果。

6 学习体会和建议

经过模式识别课程的学习,课程项目的制作以及论文的撰写,使我对于模式识别的了解 有所加深。在本次课程之前,我从未接触过机器学习算法内容的推导以及以 PCA 为代表的特 征工程算法。本次课程令我收益匪浅,不仅让我巩固了数据基础也让我为我打开了人工智能 世界的大门。课程实验设计的十分精美,在课程实验中我们实现了朴素贝叶斯等算法,这些 算法虽然基础,但也是从 0 到 1 的质变。此外通过最终大作业,我也体会到了用课上所学的 知识解决以实际问题的过程,这让我对模式识别这一系统的知识有了更加进一步的了解,为 我更加深入的学习提供了很多经验与参考。10 周的课程只是一个开头,还有许多内容需要自 己继续学习。

参考文献:

[1] Khishigsuren Davagdorj,Jang-Whan Bae,Van-Huy Pham,Nipon Theera-Umpon,Keun Ho Ryu,“可解 释的基于人工智能的非传染性疾病预测框架”访问 IEEE,第一卷。9 第 123672-123688 页,2021 年。 [2] BianZhaoqi,,ZhangXuegongPatternRecognition[M]Beijing:TsinghuaUniversityPress,2000(inChinese)(边肇棋, 张学工模式识别[M]北京:清华大学出版社,2000) [3] 王宏漫, 欧 宗瑛 . 采 用 PCA/ICA 特征和 SVM 分 类的 人 脸 识 别 [J].计 算 机 辅助设 计 与 图 形 学 学 报,2003,(04):416-420+431. [4] 李 艳 霞 , 柴 毅 , 胡 友 强 , 尹 宏 鹏 . 不 平 衡 数 据 分 类 方 法 综 述 [J]. 控 制 与 决 策 ,2019,34(04):673- 688.DOI:10.13195/j.kzyjc.2018.0865. [5]基于不平衡数据样本特性的新型过采样 SVM 分类算法[J]. 黄海松,魏建安,康佩栋. 控制与决策. 2018(09) [6]基于类重叠度欠采样的不平衡模糊多类支持向量机[J]. 吴园园,申立勇. 中国科学院大学学报. 2018(04) [7]基于样本权重更新的不平衡数据集成学习方法[J]. 陈圣灵,沈思淇,李东升. 计算机科学. 2018(07) [8]Dhar S,Cherkassky V.Development and evaluation of cost-sensitive universum-SVM[J].IEEE Trans on Cybernetics,2017.45(4):806-818 [9]Sahin Y,Bulkan S,Duman E.A cost-sensitive decision tree approach for fraud detection[J].Expert Systems with Applicati0ns,2013,40(15):5916-5923 [10]Galar M,Fernandez A,Barrenechea E,et al.A review on ensembles for the class imbalance problem:BaggingBoosting-,and Hybrid-based approaches[J].IEEE Trans on Systems,Man,and Cybernetics-Part C,2012,42(4):463-484

基于不平衡数据集的中风分析预测相关推荐

  1. 基于Qt实现的股票分析预测软件,实现外排序功能,创建索引,加快数据获取,根据股票的年月和代码进行k线图展示,热力图展示,相关系数计算,最后价格预测和股票价格曲线展示。

    资源下载地址 https://download.csdn.net/download/qq_40335674/87857061 基于Qt实现的股票分析预测软件,实现外排序功能,程序加载数据内存限制不超过 ...

  2. 机器学习算法(五):基于企鹅数据集的决策树分类预测

    机器学习算法(五):基于企鹅数据集的决策树分类预测 1 逻决策树的介绍和应用 1.1 决策树的介绍 决策树是一种常见的分类模型,在金融风控.医疗辅助诊断等诸多行业具有较为广泛的应用.决策树的核心思想是 ...

  3. 基于用户电影评价的分析预测

    故事背景 在我们的日常生活中,人们已经习惯了看电影.但是,每个人的偏好是不同的,有的人可能喜欢战争片,有人可能更喜欢艺术片,而有的人则可能喜欢爱情片,等等.现在,我们收集了一些的客户和电影的相关信息, ...

  4. tensorflow基于csv数据集实现多元线性回归并预测

    #coding:utf8 import tensorflow as tf from sklearn import linear_model from sklearn import preprocess ...

  5. A.机器学习入门算法(五):基于企鹅数据集的决策树分类预测

    [机器学习入门与实践]入门必看系列,含数据挖掘项目实战:数据融合.特征优化.特征降维.探索性分析等,实战带你掌握机器学习数据挖掘 专栏详细介绍:[机器学习入门与实践]合集入门必看系列,含数据挖掘项目实 ...

  6. 《Python机器学习——预测分析核心算法》——2.4 基于因素变量的实数值预测:鲍鱼的年龄...

    本节书摘来异步社区<Python机器学习--预测分析核心算法>一书中的第2章,第2.4节,作者:[美]Michael Bowles(鲍尔斯),更多章节内容可以访问云栖社区"异步社 ...

  7. 基于Titanic数据集的数据分析处理及乘客生还率预测全流程教程

    基于Titanic数据集的数据分析处理及乘客生还率预测全流程教程 0.项目介绍 1.使用数据集 2.数据的基本统计分析 3.数据的属性探查 4.数据预处理 5.数据的相关性分析 6.特征工程 7.数据 ...

  8. 基于多元线性回归的股票分析与预测——R语言

    基于多元线性回归的股票分析与预测 一.数据来源 1.自变量 2.因变量 二.多元线性回归 1. 初步建立多元线性回归模型 (1)数据集划分 (2)建立回归模型 2. 多元线性回归模型的优化 3.模型误 ...

  9. ML之catboost:基于自带Pool数据集实现二分类预测

    ML之catboost:基于自带Pool数据集实现二分类预测 基于自带Pool数据集实现二分类预测 输出结果 Learning rate set to 0.5 0: learn: 0.9886498 ...

最新文章

  1. 在C++平台上部署PyTorch模型流程+踩坑实录
  2. java 判断网络类型_Android 网络类型判断(2g、3g、wifi)及IP地址获取
  3. HTML5 应用程序缓存
  4. Linux学习系列之Nginx调优实战
  5. 设计模式---组合模式
  6. iOS9 : Storyboard References
  7. mysql php 变量赋值,在MySQL UPDATE(PHP / MySQL)中使用变量
  8. io.circe_如何使用Circe(Un)在Akka HTTP中封送JSON
  9. RTT的线程同步篇——事件
  10. 真正优秀的人,都有这3种习惯
  11. 进程调度优先级JAVA_进程调度算法之短进程优先(Java)
  12. [USACO13OPEN]Luxury River Cruise【模拟】
  13. 简易JTAG线缆原理
  14. EasyUI treegrid 获取编辑状态中某字段的值 [getEditor方法获取不到editor]
  15. 设计模式(JAVA)——Facade模式
  16. abs链目前在哪个平台_ABS链怎么样?
  17. 卷皮网aso优化数据分析报告
  18. 使用torchvision.models
  19. linux下tar.bz2文件的 解压缩方法
  20. 【git、gerrit】git 使用tag

热门文章

  1. Elasticsearch 集群部署
  2. 福建三明市全部乡镇边界shp格式wgs84坐标
  3. AIGW50N65H5-ASEMI原厂代理英飞凌IGBT管AIGW50N65H5
  4. html5 调用摄像头 支持IE,JS调用本地摄像头拍照(兼容各大浏览器及IE8+)
  5. 感谢vmware软件公司
  6. 新规范《钢筋混凝土用钢材试验方法》、《建设用卵石、碎石》、《建设用砂》变化内容一览
  7. android密码登录,简单的密码登录功能实现(Android)
  8. 客服助手,两大客服常用工具,值得收藏!
  9. java写弹力球游戏,用Qt5做的弹力球小游戏
  10. 计算机图形学-二维图形变换 笔记总结与代码实战