实验5:支持向量机
- 实验目的
了解支持向量机的基本原理,利用支持向量机算法解决实际问题。
- 实验准备
安装python和pycharm,了解python基础编程和pycharm使用。
三、实验内容
从给定的数据文件iris.data中读取鸢尾花数据,提取数据的前两个特征和标签参与模型学习和预测。把数据随机分成训练集(60%)和测试集(40%),利用SVM分类器来判断样本属于山鸢尾(Iris Setosa)、变色鸢尾(Iris Versicolor)还是维吉尼亚鸢尾(Iris Virginica)。选择不同的模型参数(C、 kernel、decision_function_shape等),输出测试集上的分类结果和分类正确率,并用前两个特征,实现分类结果的二维可视化。
实验步骤:(代码将附在文末)
- 首先了解实验的主要目标和方向,本次实验为验证归纳性实验。这里通过控制变量的方法来做,逐一研究各个参数对分类器的影响,进而来了解和分析支持向量机。
- 要熟知svm.SVC中各个参数的实际含义,下面给出参数的含义:
- C:C-SVC的惩罚参数C,默认值是1.0
- kernel :核函数,默认是rbf,可以是‘linear’, ‘poly’, ‘rbf’, ‘sigmoid’, ‘precomputed’
0 – 线性:u'v
1 – 多项式:(gamma*u'*v + coef0)^degree
2 – RBF函数:exp(-gamma|u-v|^2)
3 –sigmoid:tanh(gamma*u'*v + coef0)
- l degree :多项式poly函数的维度,默认是3,选择其他核函数时会被忽略。
- l gamma : ‘rbf’,‘poly’ 和‘sigmoid’的核函数参数。默认是’auto’,则会选择1/n_features
- l decision_function_shape :‘ovo’, ‘ovr’ or None, default=None3
- l coef0 :核函数的常数项。对于‘poly’和 ‘sigmoid’有用。l probability :是否采用概率估计?.默认为Falsel shrinking :是否采用shrinking heuristic方法,默认为truel tol :停止训练的误差值大小,默认为1e-3l cache_size :核函数cache缓存大小,默认为200l class_weight :类别的权重,字典形式传递。设置第几类的参数C为weight*C(C-SVC中的C)l verbose :允许冗余输出l max_iter :最大迭代次数。-1为无限制。l random_state :数据洗牌时的种子值,int值
- 在做完实验后对上面重点参数一些见解:
- 首先C作为惩罚函数能很有效的控制训练正确率以及测试正确率, C越大,即对分