R语言机器学习与临床预测模型70--支持向量机SVM和logis

2022-07-19  本文已影响0人  科研私家菜

R小盐准备介绍R语言机器学习与预测模型的学习笔记, 快来收藏关注【科研私家菜】


01 往期介绍回顾

R语言机器学习与临床预测模型34--支持向量机 (qq.com)
R语言机器学习与临床预测模型03--Logistic回归分析概述 (qq.com)
R语言机器学习与临床预测模型56--Logistic回归(逻辑回归) (qq.com)


02 支持向量机(SVM) 与logistic回归

支持向量机(SVM) 和logistic回归都是预测模型中常见的分类算法,他们之间存在着一定的区别和相似。
首先,支持向量机(SVM) 和logistic回归都是解决分类问题,从目标函数来看,区别在于逻辑回归采用的是logistical loss,支持向量机(SVM) 采用的是hinge loss。这两个损失函数的目的都是增加对分类影响较大的数据点的权重,减少与分类关系较小的数据点的权重。SVM的处理方法是只考虑support vectors,也就是和分类最相关的少数点,去学习分类器。而逻辑回归通过非线性映射,大大减小了离分类平面较远的点的权重,相对提升了与分类最相关的数据点的权重。两者的根本目的都是一样的。
此外,根据需要,两个方法都可以增加不同的正则化项,如l1,l2等等。所以在很多实验中,两种算法的结果是很接近的。
但是逻辑回归相对来说模型更简单,好理解,实现起来,特别是大规模线性分类时比较方便。而SVM的理解和优化相对来说复杂一些。但是SVM的理论基础更加牢固,有一套结构化风险最小化的理论基础,虽然一般使用的人不太会去关注。还有很重要的一点,SVM转化为对偶问题后,分类只需要计算与少数几个支持向量的距离,这个在进行复杂核函数计算时优势很明显,能够大大简化模型和计算量。
svm 更多的属于非参数模型,而logistic regression 是参数模型,本质不同。其区别就可以参考参数模型和非参模型的区别。Logistic Regression 来自于Generalized Linear Model, 其想法和Linear Regression同源。对于参数的估计、无偏、方差、一致性,有效性等都有统计理论作为支持。其Loss Function也是从统计理论中自然而然得到的。SVM的思想来源于Perceptron Method。区别在于要找到最有效的分类器(距离Support Vector距离最远)。
SVM与LR的主要区别可能是准确率与效率的区别。SVM有多种核可以选择,可以处理各种非线性问题(条件是选对核函数)。大多数情况准确率都比LR要高,但是模型较大,训练效率低。LR是很基础和普适的广义线性模型,非常适合超高特征维度,超大数据量,因为其效率非常高,还可以改造成online learning。(百万以上的特征或训练数据,一般都建议使用LR。)

03 支持向量机(SVM) 与logistic回归的区别

在实际模型构建中,主要根据要分析的数据情况来权衡。如果异常点较多的话,无法剔除,首先LR,LR中每个样本都是有贡献的,最大似然后会自动压制异常的贡献,SVM+软间隔对异常还是比较敏感,因为其训练只需要支持向量,有效样本本来就不高,一旦被干扰,预测结果难以预料。

支持向量机(SVM) 与logistic回归比较:

上图来自Andrew Ng的机器学习课程:

假设: n = 特征数量,m = 训练样本数量

1)如果n相对于m更大,比如 n = 10,000,m = 1,000,则使用lr
理由:特征数相对于训练样本数已经够大了,使用线性模型就能取得不错的效果,不需要过于复杂的模型;

2)如果n较小,m比较大,比如n = 10,m = 10,000,则使用SVM(高斯核函数)

理由:在训练样本数量足够大而特征数较小的情况下,可以通过使用复杂核函数的SVM来获得更好的预测性能,而且因为训练样本数量并没有达到百万级,使用复杂核函数的SVM也不会导致运算过慢;

3)如果n较小,m非常大,比如n = 100, m = 500,000,则应该引入/创造更多的特征,然后使用lr或者线性核函数的SVM

理由:因为训练样本数量特别大,使用复杂核函数的SVM会导致运算很慢,因此应该考虑通过引入更多特征,然后使用线性核函数的SVM或者lr来构建预测性更好的模型。

最后,总结一下。SVM是对于已知的样本做超平面进行分类,所以他的功能偏重于所给的样本分类。逻辑回归是一种极大似然估计的方式,是想通过已知样本推断未知类别的分类。如果说你的样本有限,需要预测的样本并不会很多,推荐使用SVM。如果说你的样本有限,需要预测的样本趋近于无穷,那么推荐逻辑回归。

参考资料:

SVM和logistic回归分别在什么情况下使用? - 知乎 (zhihu.com)


关注R小盐,关注科研私家菜(VX_GZH: SciPrivate),有问题请联系R小盐。让我们一起来学习 R语言机器学习与临床预测模型

上一篇下一篇

猜你喜欢

热点阅读