第 55 课

支持向量机模型

课程讲义导读 · 聚焦本课核心概念、分析流程与复现要点

说明:本页适合用于快速回顾本课重点、关键步骤与常用示例。

主讲老师第五十五课:支持向量机模型

机器学习在生信分析中存在三大经典模型,分别是 LASSO 模型,随机森林模型和支持向量机模型(svm.zip)。在前面的内容中,我们分别介绍了 LASSO 模型和随机森林模型的构建方法,最后,我们来讲一下支持向量机的使用。支持向量机(Support Vector Machine,SVM),最早提出于 1964 年,是监督学习中的一类,SVM 的基本原理是基于一个分离超平面,将数据集准确的进行划分,且将该平面的几何间隔最大化,因此,对于一个线性可分的数据集而言,尽管线性可分离平面存在无穷多个,但几何间隔最大的分离超平面是唯一的。

目前,SVM 主要应用于人像识别,分类等场景中,下面,我们一起来看一下支持向量机模型的构建过程。

1.R 包的安装与读取

同样的,支持向量机也有其相应的 R 包,e1071 包是用于进行支持向量机分析的 R 包, 尽管名字看似简单,但内部包含了多种功能强大的相关函数,包括模型优化的 tune.svm()函数,以及一些核函数,使用起来简单方便。

2.数据读取与处理

与随机森林模型分析一样,首先需要对读取的表达数据和临床相关数据进行整理和查看。

在表达矩阵中,行名为患者编号,列名为不同的基因名称,而临床数据则纳入了患者的生存时间(futime)和生存状态(fustat)两个变量同样,我们将所有的患者按 7:3 的比例,分成了训练组和验证组两群,分别用于支持向量机模型的构建和验证作用

3.使用 trainee 数据集建立支持向量机模型

使用 e1071 包构建 SVM 模型,先从线性支持向量机,然后转入非线性模型基于 e1071 包中的 tune.svm()函数,我们可以通过交叉验证,对相关的调优参数和核函数进行选择,从而达到最优最优成本函数 cost 为 0.001,这时的误分类误差率差不多为 18.28%,低于其他几个模型的误差率。

选择最优的模型进行最终的模型用于后续的验证分析。

4.模型验证及其可视化

关于模型的验证,我们还是使用箱型图核 ROC 曲线来进行可视化展示

4.1 使用 trainee 数据集进行验证

使用 predict()函数来进行模型的应用。

4.2 使用 testee 数据集进行验证

根据上述的两个结果,我们可以发现,无论在训练组还是验证组中,模型均展现了较好的区分度。

4.3 训练组的 ROC 曲线

4.4 验证组的 ROC 曲线

可以发现,无论在训练组还是验证组中,SVM 模型均展示出了良好的区分能力,其中AUC 值分别为

0.937 和 0.792。

5.使用 trainee 数据集建立支持向量机模型

接着,我们来看看非线性模型能否表现的更好,当然依然使用交叉验证选择调优参数,在此,我们需要测试的核函数是多项式核函数,包括两个调优参数,分别为多项式的阶(degree)和核函数(coef0)。

设定多项式的阶是 3,4 和 5,核系数则从 0.1 逐渐增加到 4,从而进行建模。

模型选择的多项式的阶数为 5,核系数为 0.1 时,模型表现最佳。

选取最佳模型用于后续分析

6.模型验证及其可视化

和线性 SVM 模型一样,可以使用这些参数在验证组中进行预测和评价

6.1 使用 testee 数据集进行验证

6.2 验证组的 ROC 曲线

通过比较,我们可以发现,在 AUC 值上,两个模型的预测效能基本相似,非线性模型并没有展示更好的预测能力,当然,在实际应用中,大家可以根据结果对两个模型进行选择,没有绝对的优劣之分,只是看在当前数据集中,哪个更加的合适

← 返回批次1总导航