说明:本文依据《Sklearn 与 TensorFlow 机器学习实用指南》完成,所有版权和解释权均归作者和翻译成员所有,我只是搬运和做注解。
第五章是对支持向量机SVM的系统介绍,阐述支持向量机的核心概念,怎么使用这个强大的模型,以及它是如何工作的。
这应该是第三次做这方面的内容了,贴出另一个比较全面的SVM进阶博客。
https://blog.csdn.net/v_JULY_v/article/details/7624837
支持向量机(SVM)是个非常强大并且有多种功能的机器学习模型,能够做线性或者非线性的分类,回归,甚至异常值检测。机器学习领域中最为流行的模型之一,是任何学习机器学习的人必备的工具。SVM特别适合应用于复杂但中小规模数据集的分类问题。
本章使用数据为Sklearn中iris数据
源代码已经同步在github中
https://github.com/jwc19890114/-02-learning-file-100days
3. SVM回归
SVM 算法应用广泛:不仅仅支持线性和非线性的分类任务,还支持线性和非线性的回归任务。
读到这里突然忘记回归任务和分类任务的区别了……
回归问题的应用场景(预测的结果是连续的,例如预测明天的温度25度)。回归问题通常是用来预测一个值。另外,回归分析用在神经网络上,其最上层是不需要加上softmax函数的,而是直接对前一层累加即可。回归是对真实值的一种逼近预测。
分类问题的应用场景(预测的结果是离散的,例如预测明天天气类型-阴,晴,雨)。分类问题是用于将事物打上一个标签,通常结果为离散值。
OK,我们继续。
SVM算法应用于回归任务,技巧在于“逆转目标”,不是试图找到两类之间的最大margin,而是在限制间隔违规情况下,尽量放置更多的样本在间隔上。间隔宽度由超参数C控制。下面使用SVR来实现SVM回归。(这就是为什么Sklearn里面svm有一个SVC和SVR,SVC是分类,SVR是回归)
作为对比,生成了两个SVM回归模型,其中一个epsilon=1.5,另一个0.5
在处理非线性回归任务中,可以使用核化SVM模型。关键参数设定类似上一节的核设定
领取专属 10元无门槛券
私享最新 技术干货