机器学习(一)svm运用实例

机器学习(一)svm运用实例

这里我使用sklearn.svm.SVC函数,首先介绍一下函数参数。

sklearn.svm.SVC(C=1.0, kernel=‘rbf’, degree=3, gamma=‘auto’,
coef0=0.0, shrinking=True, probability=False,tol=0.001,
cache_size=200, class_weight=None, verbose=False, max_iter=-1,
decision_function_shape=None,random_state=None)

C:C-SVC的惩罚参数C?默认值是1.0。C越大,相当于惩罚松弛变量,希望松弛变量接近0,即对误分类的惩罚增大,趋向于对训练集全分对的情况,这样对训练集测试时准确率很高,但泛化能力弱。C值小,对误分类的惩罚减小,允许容错,将他们当成噪声点,泛化能力较强。
Kernel:核函数,默认是rbf,可以是‘linear’, ‘poly’, ‘rbf’, ‘sigmoid’‘precomputed’
degree :多项式poly函数的维度,默认是3,选择其他核函数时会被忽略。
gamma :‘rbf’,‘poly’ 和‘sigmoid’的核函数参数。默认是’auto’,则会选择1/n_features
coef0 :核函数的常数项。对于‘poly’和 ‘sigmoid’有用。
probability :是否采用概率估计?.默认为False
shrinking :是否采用shrinking heuristic方法,默认为true
tol :停止训练的误差值大小,默认为1e-3
cache_size :核函数cache缓存大小,默认为200
class_weight :类别的权重,字典形式传递。设置第几类的参数C为weight
C(C-SVC中的C)
verbose :允许冗余输出?
max_iter :最大迭代次数。-1为无限制。
decision_function_shape :‘ovo’, ‘ovr’ or None, default=None3
random_state :数据洗牌时的种子值,int值
主要调节的参数有:C、kernel、degree、gamma、coef0。*

  1. 创造数据集函数
    make_blobs
    x为特征y为标签
    X, y = make_blobs(n_samples=200, centers=2, random_state=0, cluster_std=0.3)

  2. 画图

    • 找出x轴,y轴的长度,x[:,0].min()+1 x[:.0].man()+1
    • 生成坐标矩阵
      numpy.meshgrid()生成网格点坐标矩阵
      [X,Y] = meshgrid(x,y) 将向量x和y定义的区域转换成矩阵X和Y,其中矩阵X的行向量是向量x的简单复制,而矩阵Y的列向量是向量y的简单复制(注:下面代码中X和Y均是数组,在文中统一称为矩阵了)。假设x是长度为m的向量,y是长度为n的向量,则最终生成的矩阵X和Y的维度都是 nm (注意不是mn)
      np.linspace主要用来创建等差数列
      np.arange函数返回一个有终点和起点的固定步长的排列
      np.c_给numpy数组添加列
      np.r_给numpy数组添加行
    1. 生成数据作图
      np.ravel()将采样点的x坐标摊平,
      np.r_是按列连接两个矩阵,就是把两矩阵上下相加,要求列数相等。
      np.c_是按行连接两个矩阵,就是把两矩阵左右相加,要求行数相等。
      xx.shape表示一共有多少个元素
      Z.reshape作用就是把数据原来的尺寸更改为我们想要的尺寸
    2. 绘制
      plt.contourf(xx, yy, Z, cmap=‘hot’, alpha=0.5)等高线作图
      np.unique(y)该函数是去除数组中的重复数字,并进行排序之后输出
from sklearn import svm
from sklearn.datasets import make_blobs
from matplotlib import pyplot as plt
import numpy as np
X, y = make_blobs(n_samples=
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值