在线客服:
yobo官网 yobo官网
全国服务热线:010-80887545
您的位置:首页 > 新闻中心 >

支持向量机超参数的可视化解释

浏览 119次 来源:【jake推荐】 作者:-=Jake=-    时间:2021-02-20 20:31:27
[摘要] 支持向量机(SVM)是一种应用广泛的有监督机器学习算法。在这篇文章中,我们将深入探讨支持向量机的两个重要超参数C和gamma,并通过可视化解释它们的影响。我们先训练一个只需调整C的线性支持向量机,然后实现一个RBF核的支持向量机,同时调整gamma参数。Gamma是用于非线性支持向量机的超参数。

作者|善意的人

编译| V​​K

来源|迈向数据科学

支持向量机 参数

支持向量机(SVM)是一种广泛使用的监督型机器学习算法。主要用于分类任务,也适用于回归任务。

在本文中,我们将深入研究支持向量机的两个重要超参数C和gamma,并通过可视化解释它们的作用。因此,我假设您对算法有基本的了解,并专注于这些超参数。

支持向量机使用决策边界来分隔属于不同类别的数据点。当确定决策边界时,软裕度支持向量机(软裕度是指允许对某些数据点进行错误分类)试图解决优化问题。目标如下:

支持向量机 参数

显然,这两个目标之间需要权衡。它由C控制,这会为每个错误分类的数据点增加罚款。

如果C小,则错误分类点的惩罚非常低亚搏登陆亚博体彩 ,因此选择间隔较大的决​​策边界会以更多错误分类为代价。

当C值较大时,支持向量机会会最大程度地减少分类错误的样本数,因为惩罚会导致决策边界的间隔较小。对于所有错误分类的示例,惩罚是不同的。它与到决策边界的距离成比例。

在这些示例之后将更加清楚。让我们首先导入库并创建一个合成数据集。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
from sklearn.svm import SVC
from sklearn.datasets import make_classification
X, y = make_classification(n_samples=200, n_features=2,
n_informative=2, n_redundant=0, n_repeated=0, n_classes=2,random_state=42)
plt.figure(figsize=(10,6))
plt.title("Synthetic Binary Classification Dataset", fontsize=18)
plt.scatter(X[:,0], X[:,1], c=y, cmap='cool')

支持向量机 参数

我们首先训练仅需调整C的线性支持向量机yaboapp ,然后使用RBF内核实现支持向量机,并同时调整gamma参数。

为了绘制决策边界,我们将使用Jake VanderPlas撰写的《 Python数据科学手册》的SVM章节中的函数:

我们现在可以创建两个具有不同C值的线性SVM分类器。

clf = SVC(C=0.1, kernel='linear').fit(X, y)
plt.figure(figsize=(10,6))
plt.title("Linear kernel with C=0.1", fontsize=18)
plt.scatter(X[:, 0], X[:, 1], c=y, s=50, cmap='cool')
plot_svc_decision_function(clf)

支持向量机 参数

只需将C值更改为100即可生成以下图。

支持向量机 参数

支持向量回归实例_支持向量机 参数_支持向量机 参数

当我们增加C值时,间隔将变小。因此,低C值的模型更为通用。随着数据集的增加,这种差异变得更加明显。

线性核的超参数仅具有一定程度的影响。在非线性核中支持向量机 参数,超参数的影响更为明显。

伽玛是用于非线性支持向量机的超参数。径向基函数(RBF)是最常用的非线性核函数之一。 RBF的Gamma参数控制单个训练点的影响距离。

较低的gamma值表示较大的相似半径,这导致将更多的点分组在一起。在高伽玛值的情况下,这些点必须彼此非常靠近,才能被视为同一组(或类别)。因此,具有非常大的伽玛值的模型倾向于过拟合。

让我们绘制三个具有不同伽玛值的支持向量机的预测图。

clf = SVC(C=1, kernel='rbf', gamma=0.01).fit(X, y)
y_pred = clf.predict(X)
plt.figure(figsize=(10,6))
plt.title("Predictions of RBF kernel with C=1 and Gamma=0.01", fontsize=18)
plt.scatter(X[:, 0], X[:, 1], c=y_pred, s=50, cmap='cool')
plot_svc_decision_function(clf)

支持向量机 参数

只需更改伽玛值即可生成以下曲线图。

支持向量机 参数

支持向量机 参数

随着伽玛值的增加支持向量机 参数,模型变得过拟合。数据点必须非常接近才能分组在一起,因为相似度半径会随着伽玛值的增加而减小。

当伽玛值为0. 0 1、 1和5时,RBF核函数的精度分别为0. 8 9、 0. 92和0. 93。这些值表示随着gamma值的增加,模型对训练集的拟合逐渐增加。

伽玛和C参数

对于线性核,我们只需要优化c参数。但是,如果要使用RBF内核函数,则必须同时优化c参数和gamma参数。如果伽马值较大亚博电子竞技俱乐部 ,则可以忽略c的影响。如果伽玛很小,则c会影响模型,就像它会影响线性模型一样。 c和gamma的典型值如下。但是,根据特定的应用,可能会有一个特定的最佳值:

支持向量回归实例_支持向量机 参数_支持向量机 参数

0. 0001

0. 1

参考

原始链接:

欢迎关注Panchuang AI博客网站:

sklearn官方机器学习中文文档:

欢迎关注Panchuang博客资源汇总站:

老王
本文标签:支持向量机,可视化

推荐阅读

最新评论