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
相关文章
|
6月前
|
机器学习/深度学习 数据采集 算法
Python实现Naive Bayes贝叶斯分类模型(GaussianNB、MultinomialNB算法)项目实战
Python实现Naive Bayes贝叶斯分类模型(GaussianNB、MultinomialNB算法)项目实战
|
6月前
|
机器学习/深度学习 算法 API
Sklearn中的监督学习全览:从线性回归到SVM
【7月更文第23天】 在机器学习的广阔领域中,监督学习占据着举足轻重的地位,它通过已标记的数据集学习输入与输出之间的映射关系,进而对未知数据进行预测。`scikit-learn`(简称sklearn)作为Python中最受欢迎的机器学习库之一,提供了丰富的监督学习算法。本篇文章将带您深入探索sklearn中的监督学习世界,从简单的线性回归到复杂的支撑向量机(SVM),并通过实战代码示例,让您对这些算法有更直观的理解。
97 8
|
6月前
|
数据采集 机器学习/深度学习 算法
Python实现多元线性回归模型(statsmodels OLS算法)项目实战
Python实现多元线性回归模型(statsmodels OLS算法)项目实战
|
7月前
|
机器学习/深度学习 算法 Windows
【阿旭机器学习实战】【34】使用SVM检测蘑菇是否有毒--支持向量机
【阿旭机器学习实战】【34】使用SVM检测蘑菇是否有毒--支持向量机
|
8月前
|
机器学习/深度学习
R语言非线性回归和广义线性模型:泊松、伽马、逻辑回归、Beta回归分析机动车事故、小鼠感染、蛤蜊数据、补剂钠摄入数据|数据分享(上)
R语言非线性回归和广义线性模型:泊松、伽马、逻辑回归、Beta回归分析机动车事故、小鼠感染、蛤蜊数据、补剂钠摄入数据|数据分享
|
8月前
|
机器学习/深度学习 数据可视化
R语言非线性回归和广义线性模型:泊松、伽马、逻辑回归、Beta回归分析机动车事故、小鼠感染、蛤蜊数据、补剂钠摄入数据|数据分享(下)
R语言非线性回归和广义线性模型:泊松、伽马、逻辑回归、Beta回归分析机动车事故、小鼠感染、蛤蜊数据、补剂钠摄入数据|数据分享
|
8月前
|
机器学习/深度学习 搜索推荐 算法
降维·预测·救命:PCA、随机森林与乳腺癌
降维·预测·救命:PCA、随机森林与乳腺癌
133 1
|
8月前
|
机器学习/深度学习 Python
Python利用逻辑回归分类器对乳腺肿瘤进行良性/恶性预测实战(超详细 附源码)
Python利用逻辑回归分类器对乳腺肿瘤进行良性/恶性预测实战(超详细 附源码)
180 1
|
数据挖掘 计算机视觉 Python
【每周一坑】蜥蜴流感与贝叶斯定理
不过今天的题,我希望你们用程序模拟一场蜥蜴流感。比如有10万个人,按照上述3条规则去模拟,最后去统计下检测结果阳性中有多少人是真正的患者。
|
机器学习/深度学习 TensorFlow 数据处理
01 使用LSTM模型预测双色球,中大奖指日可待!
01 使用LSTM模型预测双色球,中大奖指日可待!

热门文章

最新文章

下一篇
开通oss服务