谈谈linear regression 和 SVM
来源:互联网 发布:淘宝客博主的收入 编辑:程序博客网 时间:2024/05/02 04:37
线性分类是一个简单而又非常实用的概念。因为其速度快,在工业界中广泛应用。
SVM一般是学习机器学习接触的又一个学习方法,非常fasion,学术界研究大热,数学上有严格的证明。但是由于神经网络的优异表现,风头渐渐不如以前。
这里就一个知识点进行自己小小总结。
线性回归和SVM有什么区别呢。网上很多人直接拿出这张图给你。例如知乎上这个答案 https://www.zhihu.com/question/26768865
只要看过SVM,对这个图都非常熟悉,但是究竟有什么区别呢。如果不跑一跑真实的例子,理解永远不深。下面不谈理论,直接从结果上看看LR和SVM的区别。
建议学习所有机器学习算法中,至少自己能编写逻辑回归的算法,会理解更好。
如上图的的二维的二分类问题,如果用线性回归分类,结果可能是蓝线,可能是红线。跟初始状态,梯度下降幅度有关系。其实还有更多的可能性,因为,在所有这些线中,对训练集来说,误差为0,目标损失函数都最小。不同的初始化状态可能对应不同的最终结果。如下图。
这样就引来一个问题,如果我的结果是蓝线。那么对于新的数据,很可能就造成了错误的分类结果。形象上来说红线的结果更好, 为什么?这就是SVM理论了。
上面是线性可分的情况,SVM要求的是上图的两个红色虚线的间距距离最大。那么如果线性不可分呢。怎么得到虚线?这时候就需要加入一个参数,我们允许一定的错误分类,在这种情况下,满足两个红色虚线间隔最大。这就是线性不可分情况下的SVM。可以用libSVM简单测试下不同条件下SVM分类结果。https://www.csie.ntu.edu.tw/~cjlin/libsvm/
上面是不同参数的结果。效果不是很明显。可以感受一下有重叠的情况下不同惩罚项的分类效果。
sklearn 中有SVM优劣总结:
The advantages of support vector machines are:
- Effective in high dimensional spaces.
- Still effective in cases where number of dimensions is greater than the number of samples.
- Uses a subset of training points in the decision function (called support vectors), so it is also memory efficient.
- Versatile: different Kernel functions can be specified for the decision function. Common kernels are provided, but it is also possible to specify custom kernels.
The disadvantages of support vector machines include:
另外,SVM在数据分析中会大量内存消耗,速度并不算快,随着数量增加复杂度显著提高。平方数据量的关系?SVM虽然在大数据中应用不佳,但是小量数据中,拥有非常好的范化能力。可由前面的SVM的原理看出。
- If the number of features is much greater than the number of samples, the method is likely to give poor performances.
- SVMs do not directly provide probability estimates, these are calculated using an expensive five-fold cross-validation (see Scores and probabilities, below).
- 谈谈linear regression 和 SVM
- Linear SVM vs Logstic Regression
- Linear regression
- linear regression
- linear regression
- linear regression
- Linear Regression
- linear regression
- linear regression
- linear regression
- linear regression
- Linear Regression
- Linear Regression
- Linear Regression
- linear-regression
- Linear regression
- Linear Regression
- Linear Regression
- 设计模式简述
- 杭电OJ
- Bandwidth UVA-140
- json字符串出现转义符,导致调用者使用ObjectMapper解析成Map报错
- Android 操作SQLite基本用法
- 谈谈linear regression 和 SVM
- 从C#到TypeScrip
- python实现排序算法后续
- Lambda 表达式 最快的记忆方法
- 使用Faster R-CNN训练自己的数据
- 网格聚类算法(一)
- nat 详解
- 第一份工作离职时候的前述,觉得当时的文采很不错奥
- No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?