sklearn调包侠之支持向量机

简介: 算法原理对于支持向量机原理,可参考该系列博客(https://www.cnblogs.com/pinard/p/6111471.html)。
img_68c465f2d176c613407509830531ca1b.png

算法原理

对于支持向量机原理,可参考该系列博客(https://www.cnblogs.com/pinard/p/6111471.html)。

实战——乳腺癌检测

数据导入

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

from sklearn.datasets import load_breast_cancer
cancer = load_breast_cancer()
print(cancer.DESCR)
img_f68c5b79e7af2c679e5b437866b5e813.png
切分数据集
X = cancer.data
y = cancer.target

from sklearn.model_selection import train_test_split
X_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 SVC
clf = 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 np
from sklearn.model_selection import GridSearchCV

param_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
相关文章
|
移动开发 前端开发 JavaScript
js实现图片压缩上传
最近在研究H5前端图片处理相关技术,方向有图片压缩、裁切、旋转、模糊等。
507 0
|
4月前
|
安全 Linux Shell
Linux系统提权方式全面总结:从基础到高级攻防技术
本文全面总结Linux系统提权技术,涵盖权限体系、配置错误、漏洞利用、密码攻击等方法,帮助安全研究人员掌握攻防技术,提升系统防护能力。
452 1
|
6月前
|
存储 算法 Windows
【硬盘容量缩水真相】新买的U盘插上那刻我崩溃了:标称128G的存储为何只剩112G?
新买的硬盘或U盘在Windows中显示的容量为何与标称不符?其实并非商家“坑”,而是存储单位换算标准不同所致。本文详解bit、Byte、KB、MB、GB等存储单位的区别,介绍国际单位制(SI)与国际电工委员会(IEC)两种标准,解释为何500GB硬盘在系统中仅显示约465GB。带你从底层原理理解计算机存储单位的换算逻辑,揭开“消失”的容量之谜。
1094 0
【硬盘容量缩水真相】新买的U盘插上那刻我崩溃了:标称128G的存储为何只剩112G?
|
容器
Flutter基本组件Text使用
Flutter基本组件Text使用
265 13
|
自然语言处理 前端开发 数据可视化
1024程序员节:合合信息“百宝箱”开启智能文档处理新纪元
在数字化转型这股大洪流中,文档处理已然成为企业和开发者日常作业中的一块重要基石。合合信息给开发者送了个大礼——智能文档处理“百宝箱”。这“百宝箱”里头,啥都有,全面、高效、准确,简直就是文档处理的超级神器。他们想通过这个产品,让技术不再那么高不可攀,让更多人,特别是咱们开发者,能轻轻松松地把文档处理的能力加到自己的工作中去。下面来详细看一下吧~
340 0
|
JavaScript
Selenium--WebDriverWait--你知道显示等待?(结合源码让你更加得心应手)
Selenium--WebDriverWait--你知道显示等待?(结合源码让你更加得心应手)
355 0
|
SQL 存储 安全
SQL安全深度剖析:守护数据安全的坚固防线
展望未来,随着技术的不断进步和攻击手段的不断翻新,SQL安全将面临更多的挑战。因此,我们需要持续关注SQL安全领域的最新动态和技术发展,并不断更新和完善我们的防护措施。同时,加强国际合作与信息共享也是提升全球SQL安全性的重要途径。让我们共同努力,为构建一个更加安全、可靠的数字化环境而奋斗。
|
存储 数据采集 机器学习/深度学习
大数据基础:收集、处理与分析
【5月更文挑战第30天】本文探讨了大数据的基本概念、关键技术及应用案例。大数据是海量、多源、快速处理的数据集合,涉及数据采集、存储、处理和分析。关键技术包括使用Flume进行数据采集、Hadoop HDFS和NoSQL数据库存储数据、MapReduce和Spark进行批处理、以及Python的pandas和scikit-learn进行数据分析。应用案例涵盖了金融风控、医疗健康和智能交通等领域,展示大数据在风险评估、疾病诊断和交通管理等方面的潜力。随着技术发展,大数据将在更多领域发挥作用。
530 3
|
存储 安全 关系型数据库
技术人必修课:利用金字塔原理高效思考与表达
作者写这篇文章的目的就是希望能够帮助更多同学了解金字塔原理并合理应用,不只是写作,更是要着眼于思考和表达。本文将围绕认识金字塔结构、表达的逻辑、思考的逻辑、解决问题的框架、演示的逻辑这几个方面带领大家深入学习金字塔原理。
|
机器学习/深度学习 人工智能 自然语言处理
一文搞懂深度学习:神经网络基础部分
一文搞懂深度学习:神经网络基础部分
683 0