转载至:https://blog.csdn.net/lhy2239705435/article/details/90035265
SVM(Support Vector Machine)是用来解决分类问题的。任何一个机器学习问题首先要考虑三个问题:
- 模型是什么
- 优化目标是什么
- 算法是什么
一、SVM
support vector machine,在机器学习中,SVM 既可以做回归,也可以做分类器。
SVM 主要是帮我们找到一个超平面,使不同类的样本分开,并且使得样本集中的点到这个分类超平面的最小距离(分类间隔)最大化。
支持向量就是距离超平面最近的样本点,确定了支持向量也就确定了超平面。
二、硬间隔、软间隔和非线性 SVM
硬间隔:在满足线性可分的基础上,分类完全正确,不存在分类出错的情况
软间隔:在满足线性可分的基础上,允许一部分样本分类出错
非线性SVM:如果样本满足非线性数据,需要引入新的概念:核函数,可以把样本从原始空间映射到一个更高维的特质空间中,使得样本在新的空间中线性可分。
三、SVM解决多分类问题
四、构造SVM分类器
model = svm.SVC(kernel=‘rbf’, C=1.0, gamma=‘auto’),kernel 主要包括四种核函数,如下
linear:线性核函数
poly:多项式核函数
rbf:高斯核函数
sigmoid:sigmoid 核函数
在创建SVM分类器后,可以利用训练集进行分类器训练,model.fit(train_x,train_y)。
利用 prediction=model.predict(test_X) 对结果进行预测。