【Ryo】SPSS Modeler:SVM支持向量机在分类判别中的应用

支持矢量机(SVM)是一项特别适合于广泛数据集的分类和回归技术。广泛数据集包含大量预测变量,例如可能会在生物信息学领域遇到(对生物化学数据和生物学数据应用信息技术)的预测变量。本文研究了一个包含大量人体细胞样本的特征的数据集,这些样本是从被认为可能会患上癌症的患者身上提取的。对原始数据的分析表明,良性样本与恶性样本之间的很多特征显著不同。目的在于开发一个SVM模型,使该模型可以使用其他患者样本中的这些细胞特征值尽早发现他们的样本是良性还是恶性。

研究模型 软件 日期
SVM支持向量机 SPSS Modeler 2020年7月12日

△△△△△本文为个人项目练习,仅供参考,如有不足欢迎讨论 △△△△△


一、样本描述

  本示例基于可以从UCI Machine Learning Repository 公开获取的数据集。数据集由数百条人体细胞样本记录组成,每条记录都包含一组细胞特征的值。每条记录中包含的字段包括:
【Ryo】SPSS Modeler:SVM支持向量机在分类判别中的应用_第1张图片
标识字段包含患者的标识。来自每位患者的细胞样本特征包含在从Clump到Mit的字段中。这些字段的值按照1到10进行分级,1表示最接近于良性。Class字段包含诊断,由多步独立的医疗程序确认,用于表明样本是良性(值=2)还是恶性(值=4)。

二、建模路径详解

  本文旨在运用支持向量机划(SVM)分判别的方法,将无法看出表面联系、属性复杂的各种因素结合起来构建概率模型,以此预测肿瘤特征的情况(良性/恶性)。
  首先对数据类型和用处进行划分,如图所示(即Type步)
【Ryo】SPSS Modeler:SVM支持向量机在分类判别中的应用_第2张图片
  第二步,选择SVM节点连接type,建立相应的流模型(具体卡选项参数设置第三步讲),两个SVM连接运行后如下图:
【Ryo】SPSS Modeler:SVM支持向量机在分类判别中的应用_第3张图片  第三步,设置第一个SVM模型class-rbf的专家选项,在专家选项卡上,将模式设为专家以获得可靠性,但保持所有缺省选项不变。注意,Kernel 类型缺省设为RBF。在“简单”方式下,所有选项都显示为灰色。同时,在分析选项卡上,选中计算变量重要性复选框。【设置内核方法1-RBF】
【Ryo】SPSS Modeler:SVM支持向量机在分类判别中的应用_第4张图片
  运行查看模型结果(黄色菱椎体)显示了变量重要性。在“模型”选项卡上,“预测变量重要性”图形显示了不同字段对预测的相对影响。此图向我们显示了BareNuc 无疑具有最大的影响,而UnifShape 和Clump的影响也很大。(如下)
【Ryo】SPSS Modeler:SVM支持向量机在分类判别中的应用_第5张图片  把表连接到模型运行,可以发现两个新的字段。解释图下二图所示。
【Ryo】SPSS Modeler:SVM支持向量机在分类判别中的应用_第6张图片【Ryo】SPSS Modeler:SVM支持向量机在分类判别中的应用_第7张图片
  第四步,将函数专家模型设置为poly进行第二次SVM分类,用作对比。

【Ryo】SPSS Modeler:SVM支持向量机在分类判别中的应用_第8张图片
  同样将表连接到第二个模型上,同时把老的rbf模型连接到poly上,查看新的score得分进行对比,发现多项式结果得分更高了。
【Ryo】SPSS Modeler:SVM支持向量机在分类判别中的应用_第9张图片

三、结果评估与总结

  要确认此模型的性能更为优异,请将分析节点附加到class-poly 模型块,勾选AUC和比较,查看如下表的结果。单独模型和一致性显示SVM很有效,poly更好,并且AUC和基尼系数都显示poly更好。

【Ryo】SPSS Modeler:SVM支持向量机在分类判别中的应用_第10张图片

  此方法使用“分析”节点,它使您可以比较同一类型的两个或更多模型块。来自“分析”节点的输出显示RBF函数可以正确地预测97.85%的个案,这仍是一个不错的结果。 但是,输出显示多项式函数已正确预测每个个案中的诊断。实际使用中,未必能做到完全准确,但分析节点可帮您确定模型的精确度能否满足特殊使用要求。

  实际上,对于这个特定的数据集,其他两种函数类型(Sigmoid和线性)的效果都不如多项式函数。但用于其他数据集时,其结果可能会明显不同,因此始终应该尝试所有选项。

注:关于kernel,两模型的选择、解释(sklearn.svm.SVC中kernel参数说明):

常用核函数
线性核函数kernel=‘linear’
多项式核函数kernel=‘poly’
径向基核函数kernel=‘rbf’
sigmod核函数kernel=‘sigmod’

kernel=‘linear’

采用线性核kernel='linear’的效果和使用sklearn.svm.LinearSVC实现的效果一样,但采用线性核时速度较慢,特别是对于大数据集,推荐使用线性核时使用LinearSVC

kernel=‘poly’

degree代表d,表示多项式的次数
gamma为多项式的系数,coef0代表r,表示多项式的偏置

kernel=‘rbf’

可以将gamma理解为支持向量影响区域半径的倒数,gamma越大,支持向量影响区域越小,决策边界倾向于只包含支持向量,模型复杂度高,容易过拟合;gamma越小,支持向量影响区域越大,决策边界倾向于光滑,模型复杂度低,容易欠拟合;
gamma的取值非常重要,即不能过小,也不能过大


参考文献

[1]IBM SPSS Modeler Cookbook.Keith McCormick.
[2]CRISP-DM
[3]张治斌.基于SPSS Modeler的数据挖掘过程解析[J].数字技术与应用.2017(09):72-73.
[4]https://blog.csdn.net/qq_37007384/article/details/88418256

你可能感兴趣的:(学习百图志,机器学习,spss,数据挖掘)