支持向量机解决的问题:在线性可分数据集上所有的划分超平面中寻找一个最优的超平面,它的解是唯一的。
寻找最优超平面的策略:最大化支持向量样本点与超平面的间隔,这样泛化能力最好。
核函数解决的问题:给非线性划分问题提供了线性解决的方法,即将实际的非线性数据集通过核函数映射到高维空间,使其在转换空间线性可分,然后再求解。
概念总结:

习题 6.2 使用LIBSVM 线性核和高斯核对西瓜数据集3.0进行训练,并比较支持向量。
# 表4-5
import pandas as pd
import numpy as np
data = np.loadtxt('./CH3-3watermeleondata.csv', delimiter=',')
X = data[:,0:2]
y = data[:,2]
# 线性核 --- LIBSVM已经可以在sklearn上直接使用,不用再按步骤安装了,即sklearn上的NuSVC模型
from sklearn.svm import NuSVC
nusvcclf = NuSVC(kernel='linear',random_state=0)
nusvcclf.fit(X,y)
# 看下预测结果
nusvcy_pred = nusvcclf.predict(X)
print(metrics.classification_report(y,nusvcy_pred))
linearVector = nusvcclf.support_vectors_ #支持向量
# 线性核的支持向量绘图
# X - some data in 2dimensional np.array
import matplotlib.pyplot as plt
steplength = 0.002

本文介绍了支持向量机(SVM)的基本原理,它旨在找到最优超平面,最大化与支持向量的距离以提高泛化能力。非线性问题通过核函数在高维空间实现线性可分。实践中,使用LIBSVM对比了线性核与高斯核在西瓜数据集上的应用,结果显示高斯核得到更好的边界划分,支持向量更直观地体现了边界特性。
最低0.47元/天 解锁文章
626





