您好, 访客   登录/注册

美国威斯康辛州女性乳腺癌肿瘤预测探讨

来源:用户上传      作者:

  摘要:在机器学习和人工智能领域,有两类常见的问题,一类是回归问题;另一类是分类问题,分类问题是机器学习中一类重要的问题。对于机器学习中的分类问题而言,有很多常见的分类模型,比如kNN模型,支持向量机模型,Logistic模型。每一个模型在一个具体的问题中都有不同的性能,因此,我们的研究通过具体的实例“威斯康辛州女性乳腺癌肿瘤预测”,预测女性所患有的肿瘤是良性肿瘤还是恶性肿瘤。通过对该二分类问题的研究,并分析比较了不同的机器学习分类模型在该问题的效果。
  关键词:肿瘤预测;KNN;支持向量机;Logistic回归
  中图分类号:F24文献标识码:Adoi:10.19311/j.cnki.1672-3198.2019.10.037
  0引言
  乳腺癌是危害全世界妇女健康的癌症之一,严重影响到妇女的生命。目前全世界每年的乳腺癌發病例超过了120万,发病率每年都在增长。虽然现在科学技术非常发达,有很多病都可以治愈,但是乳腺癌的病因还没有被研究的特别清楚,发病机制又相当复杂。在还未研究出乳腺癌病因的情况下,如果能够及时根据女性的一些显著性特征,预测女性是否有可能患有乳腺癌,以便于及时采取治疗措施,就十分的有必要。
  在这个研究课题中,我们将根据美国威斯康辛州女性乳腺癌肿瘤数据集,来建立相关的机器学习分类模型,能够判断女性肿瘤是良性的还是恶性的。
  1训练集以及测试集
  我们一共有699名美国威斯康辛州女性肿瘤数据,每个女性数据包含有9个特征,分别为Clump Thickness,Uniformity of cell size,Uniformity of cell shape,Marginal Adhesion,Single Epithelial Cell Size,Bare Nuclei,Bland Chromation,Normal Nucleoli,Mioses,每个特征都是对女性肿瘤信息的一些生理性描述,比如肿瘤的形状,肿瘤的大小尺寸等等。
  为了检验我们所构建的分类模型的性能,我们在699名女性样本中,随机采样500名女性样本作为我们的训练集样本,用于训练模型,余下的199名女性数据,作为我们的测试集样本,用于检验我们训练出的模型的性能。
  2构建分类器
  2.1kNN算法
  2.1.1kNN算法原理
  kNN模型(K Nearest Neighbor),又叫作k领近模型,是现如今的机器学习分类问题中,一种比较常见的简单的分类算法之一。k是指和待预测的分类样本最接近的k个样本,kNN 算法最初由 Cover 和 Hart 于 1968 年提出, 是一个在工业界比较成熟的分类算法。
  kNN模型的主要步骤大致分为两个阶段:第一个阶段,将所有的训练集样本映射到相应的特征空间当中。第二个阶段,将所有的测试集样本,通过一定的距离计算公式,计算相应的测试集样本与所有的训练集样本的距离,然后对所得到的所有距离进行排序,从中选出最近的k个距离的样本,最后采用相应的投票手段,从而确定测试集样本的所属类别。
  在我们的女性肿瘤预测问题中:第一个阶段,首先我们将训练集的500个女性样本映射在相应的特征空间中。第二个阶段,我们将测试集的199个样本,分别计算与训练集的所有500个女性样本的欧几里得距离,然后对所有的距离排序,从中挑选出最近的k个,最后,采用一种等权重的投票方式,通过票数最多的类别,来判断测试集的该女性的肿瘤是良性肿瘤还是恶性肿瘤。
  2.1.2结果分析
  我们使用了机器学习的开源包sklearn中的kNN算法,在我们的500个数据的训练集上进行训练,并且尝试了不同的k取值对结果产生的影响。最终当k=5时,模型在199个测试样本上取得了97.1%的准确率。
  kNN模型性能的好坏和k的取值大小存在着很大的关系,如果k比较小,则模型对于实例点会非常敏感,会陷入过拟合。反之,如果k比较大,则模型比较容易进入欠拟合的状态。一般情况下,我们会尝试多个不同的k取值,来观察在验证集上的效果,从而选择一个比较合适的k值,使模型具有良好的性能。
  在我们的肿瘤预测问题中,我们的训练集只包含500个样本,测试集也只有199个样本,因此kNN的运行速度比较快。但是当面临大规模数据集分类问题时,kNN算法的缺点就暴露出来,其由于在预测时需要计算待预测样本与所有训练集样本的距离,因此算法运行的速度会十分缓慢。这个时候,我们往往需要选择其他运行效率比较高的分类模型。
  2.2Logistic模型
  2.2.1Logistic原理
  Logistic是现如今的机器学习领域中,一种被广泛使用的分类模型。该模型对于一些简单的分类场景下具有优异的性能。Logistic模型的原理采用sigmoid函数当作我们的假设函数,来猜测在给定的特征下,相应的条件概率。在我们所研究的肿瘤分类问题当中,S函数的结果就是女性肿瘤为良性的概率,概率大小在[0,1]之间。
  Logistic在训练阶段,不断的进行迭代,降低误差函数的值,提高模型在训练集上的准确率,在该阶段,通过采取相应的正则化手段,可以在一定程度上,避免模型陷入过拟合。
  2.2.2Logistic regression H function
  Hfunciton使用S函数,S函数形式如式(1),大小在[0,1]之间。其输出的结果代表了该女性所患有良性肿瘤的概率。Θ代表了我们在训练阶段,要学习的参数取值,X在我们所研究的问题之中,代表了每个女性患者的9个生理学特征。
  g(X) = 1/(1+e-θX)(1)
  2.2.3Logistic regression loss function   Loss function又叫作损失函数,也称之为代价函数,它是用来表示模型在训练样本上的误差函数,如果在训练集上准确率越高,那么损失函数就越小,如果在训练集上的准确率越低,相应的损失函数值就越大。训练阶段的目标就是不断的去降低误差函数的取值。
  比较常用的代价函数有两类:一类是回归问题的代价函数,一般使用MSE代价;另一类分类问题的代价函数,一般使用交叉熵代价。对于我们的癌症问题,它是一个二分类问题,因此我们采用交叉熵损失函数。交叉熵损失函数如式(2)所示。其中g(θ)代表了逻辑回归函数的输出,log代表以10为底的对数,yi代表样本的真实分布。
  J(θ) = -∑yi*log(g(θ))(2)
  2.2.4逻辑回归的潜在问题
  在訓练过程中,模型通过多次的迭代,损失函数的值可以不断的减小,直到在一个比较小的取值范围内波动,即基本保持不变。但是并不是损失函数的值越小越好,因为损失函数的取值越小,模型越有可能陷入过拟合,模型如果陷入过拟合,虽然模型在训练集上会有比较高的准确率,但是在测试集上的准确率会比较低。而我们最终的目标是希望模型在测试集上也具有比较高的准确率,因此我们要避免模型陷入过拟合的状态。
  2.2.5逻辑回归的正则化
  常用的解决模型过拟合的手段有两种,第一种是增加训练集的样本,但是往往增加训练集样本的成本太高。因此常常采用第二种手段,即正则化手段。常见的正则化策略有l1,l2正则化。在我们的癌症预测问题中采用l1正则化,加入正则化后的代价函数如式(3),其中C为正则化系数。
  J(θ) = -∑yi*log(g(θ)) +∑C|θ|(3)
  2.2.6结果分析
  我们使用了开源的机器学习包sklearn中的logsitic算法,最终在我们的肿瘤分类问题中取得了98.2%的准确率。
  Logsitic回归模型的优点是在预测阶段,速度相比kNN模型而言效率非常的高,因为预测的过程和训练集的数目没有关系。而Logsitic回归模型的局限在于其一般只适用于处理线性可分的数据集。
  2.3SVM模型
  2.3.1SVM模型原理
  支持向量机(support vector machine,SVM),它最初于20世纪90年代由Vapnik提出,是机器学习中一种十分强大的分类模型。与kNN模型,逻辑回归等分类模型相比,SVM模型具有比较强大的泛化能力。而且能够处理非线性可分的数据集。
  SVM模型和逻辑回归模型两者之间既有区别,又有联系,对于逻辑回归模型来讲,是寻找到一个超平面能够将数据集在特征空间划分开来,但是这个超平面往往不是最优的。而SVM则是寻找一个最优的超平面来对数据集进行划分。
  对于一般的分类模型来讲,通常只适用于处理线性可分的数据,不适合处理线性不可分的数据,而对于SVM来讲,其引入的核技巧能够很好的处理线性不可分的数据集。
  2.3.2SVM模型的核函数
  SVM不仅对于一般的线性可分的数据能够取得很好的效果,而且引入了核函数的SVM,能在非线性可分的数据集上也取得比较好的效果。核函数的核心思想就是能够将数据从低维特征空间映射到高维特征空间,从而使原本在低维空间线性不可分的数据,在高维空间上线性可分。
  2.3.3结果分析
  基本的SVM模型一般也只适用于处理线性可分的数据集,但是在SVM模型中,引入了核技巧。通过将低维空间线性不可分的数据集,映射到高维空间中成为线性可分的数据集来间接的对数据集进行分类。因此,我们在训练过程中,使用了核函数+SVM,对500个训练样本进行训练,最终得到了几十个支持向量。
  在整个训练过程,我们尝试了不同的核函数所取得的效果。结果显示,在采用高斯核函数的SVM后,在测试集上的准确率打到了98.5%,性能表现比kNN,logsitic都要好。而且,通过准确率来看,模型基本上处于一个比较好的状态,没有陷入过拟合。因此可见,从效率,准确率上来讲,SVM是综合性能比较好的一个分类模型。
  3结语
  本研究通过UCI乳腺肿瘤分类数据集,在该数据集上,我们分别使用了kNN模型,logsitic回归模型,SVM模型。分别取得了97.1%,98.2%,98.5%的准确率。分析了不同的机器学习方法在该问题上取得的效果以及优异性。
  参考文献
  [1]窦小凡.KNN算法综述[J].通讯世界,2018,(10):273-274.
  [2]陈真诚,杜莹,邹春林,梁永波,吴植强,朱健铭.基于K-Nearest Neighbor和神经网络的糖尿病分类研究[J].中国医学物理学杂志,2018,35(10):1220-1224.
  [3]范玉妹,郭春静.支持向量机算法的研究及其实现[J].河北工程大学学报(自然科学版),2010,27(04):106-112.
  [4]王宏涛,孙剑伟.基于BP神经网络和SVM的分类方法研究[J].软件,2015,36(11):96-99.
转载注明来源:https://www.xzbu.com/2/view-14893195.htm