周志华《机器学习》课后习题解答系列(七):Ch6.2 - 支持向量分析实验

查看相关答案和源代码,欢迎访问我的Github:PY131/Machine-Learning_ZhouZhihua.

6.2 支持向量分析实验

题目

周志华《机器学习》课后习题解答系列(七):Ch6.2 - 支持向量分析实验_第1张图片

(注:本题实验基于python,另外,sklearn库已集成了libsvm库,并在其基础上扩展形成了自带svm工具库,这里我们采用该sklearn-svm工具库开展实验)

查看本实验完整代码

数据预处理

生成数据watermelon_3a.csv,将类别编码为 0(否),1(是),基于pandas读取数据,做出可视化界面如下:

周志华《机器学习》课后习题解答系列(七):Ch6.2 - 支持向量分析实验_第2张图片

训练与分析

采用sklearn.svm.svc训练并得出支持向量,实验段程序示意如下:

from sklearn import svm 
   # initial
   svc = svm.SVC(C=1000, kernel=kernel)  # classifier 1 based on linear kernel
   # train
   svc.fit(X, y)
   # get support vectors
   sv = svc.support_vectors_

绘制出决策边界,同时标记出支持向量如下图:

  1. 线性核函数:

周志华《机器学习》课后习题解答系列(七):Ch6.2 - 支持向量分析实验_第3张图片

  1. 高斯核函数:

周志华《机器学习》课后习题解答系列(七):Ch6.2 - 支持向量分析实验_第4张图片

可以估计出,面向该题数据集,高斯核函数的拟合更好(间隔更小),且用到的支持向量更少(当前参数设置下有9个支持向量)。

参考

本文涉及的一些参考资料如下:

  • sklearn官网 - sklearn.svm.SVC.
  • sklearn官网 - SVM Exercise(使用样例)

你可能感兴趣的:(机器学习)