机器学习(十四)SVM分类案例

在这里插入图片描述

01_案例一:鸢尾花数据SVM分类

import numpy as np
import pandas as pd
from sklearn import svm
from sklearn.model_selection import train_test_split
from sklearn import metrics 
from sklearn.datasets import load_iris

# 读取数据
# 'sepal length', 'sepal width', 'petal length', 'petal width'
iris_feature = '花萼长度', '花萼宽度', '花瓣长度', '花瓣宽度'
path = 'http://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data'  # 数据文件路径
data = pd.read_csv(path, header=None)
x, y = data[list(range(4))], data[4]
y = pd.Categorical(y).codes

# 数据分割
x_train, x_test, y_train, y_test = train_test_split(x, y, random_state=28, train_size=0.8)

svm.SVC API说明:

  • 功能:使用SVM分类器进行模型构建
  • 参数说明:
  • C: 误差项的惩罚系数,默认为1.0;一般为大于0的一个数字,C越大表示在训练过程中对于总误差的关注度越高,也就是说当C越大的时候,对于训练集的表现会越好,
  • 但是有可能引发过度拟合的问题(overfiting)
  • kernel:指定SVM内部核函数的类型,可选值:linear、poly、rbf、sigmoid、precomputed(基本不用,有前提要求,要求特征属性数目和样本数目一样);默认是rbf;
  • degree:当使用多项式函数作为svm内部的函数的时候,给定多项式的项数,默认为3
  • gamma:当SVM内部使用poly、rbf、sigmoid的时候,核函数的系数值,当默认值为auto的时候,实际系数为1/n_features
  • coef0: 当核函数为poly或者sigmoid的时候,给定的独立系数,默认为0
  • probability:是否启用概率估计,默认不启动,不太建议启动
  • shrinking:是否开启收缩启发式计算,默认为True
  • tol: 模型构建收敛参数,当模型的的误差变化率小于该值的时候,结束模型构建过程,默认值:1e-3
  • cache_size:在模型构建过程中,缓存数据的最大内存大小,默认为空,单位MB
  • class_weight:给定各个类别的权重,默认为空
  • max_iter:最大迭代次数,默认-1表示不限制
  • decision_function_shape: 决策函数,可选值:ovo和ovr,默认为None;推荐使用ovr;(1.7以上版本才有)
# 数据SVM分类器构建
clf = svm.SVC(C=1, kernel='linear')

# 模型训练
clf.fit(x_train, y_train)
# 计算模型的准确率/精度
print (clf.score(x_train, y_train)) 
print ('训练集准确率:', clf.score(x_train, y_train))
print (clf.score(x_test, y_test))
print ('测试集准确率:', clf.score(x_test, y_test))

# 训练器的预测值
print ('\npredict:\n', clf.predict(x_train))
# 计算决策函数的值(decision_function计算的是样本x到各个分割平面的距离<函数距离>)
print ('decision_function:\n', clf.decision_function(x_train))

在这里插入图片描述

  • 10
    点赞
  • 115
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值