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
相关文章
|
4月前
|
机器学习/深度学习 Python
LSTM神经网络实现对股市收盘价格的预测实战(python实现 附源码 超详细)
LSTM神经网络实现对股市收盘价格的预测实战(python实现 附源码 超详细)
64 0
|
4月前
|
机器学习/深度学习 Python
Python利用随机森林对泰坦尼克号乘客生还进行预测实战(超详细 附源码)
Python利用随机森林对泰坦尼克号乘客生还进行预测实战(超详细 附源码)
47 0
|
11月前
|
机器学习/深度学习 存储 人工智能
7 Papers & Radios | Hinton前向-前向神经网络训练算法;科学家造出「虫洞」登Nature封面
7 Papers & Radios | Hinton前向-前向神经网络训练算法;科学家造出「虫洞」登Nature封面
|
12月前
|
机器学习/深度学习 TensorFlow 数据处理
01 使用LSTM模型预测双色球,中大奖指日可待!
01 使用LSTM模型预测双色球,中大奖指日可待!
|
机器学习/深度学习 算法 JavaScript
sklearn调包侠之逻辑回归
本系列教程为《机器学习实战》的读书笔记。首先,讲讲写本系列教程的原因: 第一,《机器学习实战》的代码由Python2编写,有些代码在Python3上运行已会报错,本教程基于Python3进行代码的修订. 第二:之前看了一些机器学习的书籍,没有进行记录,很快就忘记掉了,通过编写教程也是一种复习的过程. 第三,机器学习相对于爬虫和数据分析而言,学习难度更大,希望通过本系列文字教程,让读者在学习机器学习的路上少走弯路。
|
机器学习/深度学习 算法
线性模型可解释一定比DNN高?UCSD科学家:大错特错!
人们对深度学习模型的真正运行机制还远远没有完全了解,如何提高预测模型的“可解释性”成了一个日益重要的话题。近来的一篇论文讨论了机器学习模型的“可解释性”的概念及其重要意义。
1709 0
|
算法 Python 自然语言处理
sklearn调包侠之朴素贝叶斯
文档处理 朴素贝叶斯算法常用于文档的分类问题上,但计算机是不能直接理解文档内容的,怎么把文档内容转换为计算机可以计算的数字,这是自然语言处理(NLP)中很重要的内容。
1480 0
|
算法 数据挖掘 Python
sklearn调包侠之K-Means
K-Means算法 k-均值算法(K-Means算法)是一种典型的无监督机器学习算法,用来解决聚类问题。 算法流程 K-Means聚类首先随机确定 K 个初始点作为质心(这也是K-Means聚类的一个问题,这个K值的不合理选择会使得模型不适应和解释性差)。
1536 0
|
算法 Python 机器学习/深度学习
sklearn调包侠之PCA降维
PCA PCA(主成分分析),它是一种维度约减算法,即把高维度数据在损失最小的情况下转换为低纬度数据的算法。 实战——人脸识别 数据导入 该数据集可通过sklearn进行下载。
3342 0
|
算法 Python 计算机视觉
sklearn调包侠之决策树算法
决策树原理 之前我们详细讲解过决策树的原理,详细内容可以参考该链接(https://www.jianshu.com/p/0dd283516cbe)。
1217 0