博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sklearn调包侠之支持向量机
阅读量:6278 次
发布时间:2019-06-22

本文共 1324 字,大约阅读时间需要 4 分钟。

img_68c465f2d176c613407509830531ca1b.png

算法原理

对于支持向量机原理,可参考该系列博客()。

实战——乳腺癌检测

数据导入

本次实战使用前文中的乳腺癌数据集,如图所示。

from sklearn.datasets import load_breast_cancercancer = load_breast_cancer()print(cancer.DESCR)
img_f68c5b79e7af2c679e5b437866b5e813.png
切分数据集
X = cancer.datay = cancer.targetfrom sklearn.model_selection import train_test_splitX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=33)
模型训练与评估

支持向量机算法使用sklearn.svm 模块中的SVC方法。常用的参数如下:

  • C:默认为1.0,是对于错误的惩罚项。
  • kernel:指定算法的核函数,默认为'rbf',常用的有'linear','poly','rbf','sigmoid','precomputed'。
  • degree:多项式核函数的次数('poly'),默认为3。 其他核函数会将其忽略。
  • gamma:'rbf','poly'和'sigmoid'的核系数。 如果gamma是'auto',那么将使用1 / n_features。

这里的数据较小,使用高斯核函数很容易过拟合:

from sklearn.svm import SVCclf = SVC(C=1.0, kernel='rbf', gamma=0.1)clf.fit(X_train, y_train)clf.score(X_train, y_train)clf.score(X_test, y_test)# result# 1.0# 0.6228070175438597

当然我们也可以通过网格搜索获得适合的gamma值。

import numpy as npfrom sklearn.model_selection import GridSearchCVparam_grid = {'gamma':np.linspace(0, 0.0003, 30)}clf = GridSearchCV(SVC(), param_grid, cv=5)clf.fit(X, y)print(clf.best_params_, clf.best_score_)# result# {'gamma': 0.00011379310344827585} 0.936731107206

最后,使用多项式核函数拟合:

clf = SVC(C=1.0, kernel='poly', degree=2)clf.fit(X_train, y_train)train_score = clf.score(X_train, y_train)test_score = clf.score(X_test, y_test)print(train_score, test_score)# result# 0.98021978022 0.964912280702

转载地址:http://rafva.baihongyu.com/

你可能感兴趣的文章
从源码剖析useState的执行过程
查看>>
地包天如何矫正?
查看>>
中间件
查看>>
Android SharedPreferences
查看>>
css面试题
查看>>
Vue组建通信
查看>>
用CSS画一个带阴影的三角形
查看>>
前端Vue:函数式组件
查看>>
程鑫峰:1.26特朗.普力挺美元力挽狂澜,伦敦金行情分析
查看>>
safari下video标签无法播放视频的问题
查看>>
01 iOS中UISearchBar 如何更改背景颜色,如何去掉两条黑线
查看>>
对象的继承及对象相关内容探究
查看>>
Spring: IOC容器的实现
查看>>
Serverless五大优势,成本和规模不是最重要的,这点才是
查看>>
Nginx 极简入门教程!
查看>>
iOS BLE 开发小记[4] 如何实现 CoreBluetooth 后台运行模式
查看>>
Item 23 不要在代码中使用新的原生态类型(raw type)
查看>>
为网页添加留言功能
查看>>
JavaScript—数组(17)
查看>>
Android 密钥保护和 C/S 网络传输安全理论指南
查看>>