机器学习:非线性SVM核函数在不同数据集上的表现

本文探讨了在机器学习中,SVM非线性核函数如多项式、Sigmoid和RBF在不同数据集上的表现。通过实验发现,RBF核函数通常表现出色,适合多种情况;线性和多项式核函数在特定条件下有效,而Sigmoid核函数应用较少。建议先尝试使用RBF核函数,若效果不佳再考虑其他选项。
摘要由CSDN通过智能技术生成

问题引入

除了"linear"以外的核函数都能够处理非线性情况,那究竟什么时候选择哪一个核函数呢?遗憾的是,关于核函数在不同数据集上的研究甚少,谷歌学术上的论文中也没有几篇是研究核函数在SVM中的运用的,更多的是关于核函数在深度学习,神经网络中如何使用。在sklearn中,也没有提供任何关于如何选取核函数的信息。
但无论如何,还是可以通过在不同的核函数中循环去找寻最佳的核函数来对核函数进行一个选取。接下来我们就通过一个例子,来探索一下不同数据集上核函数的表现。
现在有一系列线性或非线性可分的数据,我们希望通过绘制SVC在不同核函数下的决策边界并计算SVC在不同核函数下分类准确率来观察核函数的效用。

  1. 导入所需要的库和模块
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import ListedColormap
from sklearn import svm
from sklearn.datasets import make_circles, make_moons,
make_blobs,make_classification
  1. 创建数据集,定义核函数的选择
#创建数据集
n_samples = 100

datasets = [
            make_moons(n_samples=n_samples, noise=0.2, random_state=0),
            make_circles(n_samples=n_samples, noise=0.2, factor=0.5, random_state=1),
            make_blobs(n_samples=n_samples, centers=2, random_state=5),
            make_classification(n_samples=n_samples,n_features =2
                                ,n_informative=2,n_redundant=0, random_state=5)
            ]
datasets[0][1]
array([0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值