1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > sklearn保存svm分类模型_机器学习100天-Day1601线性支持向量机分类

sklearn保存svm分类模型_机器学习100天-Day1601线性支持向量机分类

时间:2018-09-21 18:47:51

相关推荐

sklearn保存svm分类模型_机器学习100天-Day1601线性支持向量机分类

说明:本文依据《Sklearn 与 TensorFlow 机器学习实用指南》完成,所有版权和解释权均归作者和翻译成员所有,我只是搬运和做注解。

第五章是对支持向量机SVM的系统介绍,阐述支持向量机的核心概念,怎么使用这个强大的模型,以及它是如何工作的。

这应该是第三次做这方面的内容了,贴出另一个比较全面的SVM进阶博客。

/v_JULY_v/article/details/7624837

支持向量机(SVM)是个非常强大并且有多种功能的机器学习模型,能够做线性或者非线性的分类,回归,甚至异常值检测。机器学习领域中最为流行的模型之一,是任何学习机器学习的人必备的工具。SVM特别适合应用于复杂但中小规模数据集的分类问题

本章使用数据为Sklearn中iris数据

源代码已经同步在github中/jwc19890114/-02-learning-file-100days

1. 线性支持向量机分类

这里讲了软硬两种分类方式,一般会推荐使用软性间隔分类。

注意

在生成SVM模型的SVC函数中有两个关键参数,kernel和C

1.σ越大,f越平滑,非线性效能越小,对噪声越不敏感

large σ: High Biassmall σ: High Variance

2.C类似于正则化中1/λ的作用。C越大,拟合非线性的能力越强。较小的C会导致更宽的margin,但会有更多的间隔违规。如果SVM模型过拟合,可以尝试通过减小超参数C去调整。

large C: High Variancesmall C: High Bias

若使用核函数,一定要对Feature做Feature Scaling(Normalization)。

若训练集m太小,但Feature数量n很大,则训练数据不足以拟合复杂的非线性模型,这种情况下只能用linear-kernel(就是fi=xifi=xi)不能用高斯核。

教程给出两张图,左图中绿色虚线作为决策边界分类效果不好,红色和紫色线虽然已有数据分类上表现较好,但是因为太靠近样本,这样在引入新的数据时会出现误判。右图中实线为SVM分类器的判定边界,不仅分开了两种类别,而且还尽可能地远离了最靠近的训练数据点。

以下的代码为生成对比图的,原教程中没有出现,看看就好

import numpy as npimport osimport matplotlib.pyplot as pltnp.random.seed(42)%matplotlib inlineplt.rcParams['axes.labelsize']=14plt.rcParams['xtick.labelsize']=12plt.rcParams['ytick.labelsize']=12# 在第三章中已经介绍了iris的数据结构,这里做多个特征分类,所以就获取了data字段的2,3列,就是长度和宽度数据from sklearn.svm import SVCfrom sklearn import datasetsiris = datasets.load_iris()X = iris["data"][:, (2, 3)] # petal length, petal widthy = iris["target"]setosa_or_versicolor = (y == 0) | (y == 1)X = X[setosa_or_versicolor]y = y[setosa_or_versicolor]# 训练一个SVM模型svm_clf = SVC(kernel="linear

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。