机器学习之SVM介绍
一、SVM
support vector machine,在机器学习中,SVM 既可以做回归,也可以做分类器。
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) 对结果进行预测。