Loading [MathJax]/jax/output/HTML-CSS/jax.js

学习笔记: 机器学习经典算法-核SVM(KernelSVM)

简介: 机器学习经典算法-个人笔记和学习心得分享

1、核函数的概念

处理非线性数据问题本质是依靠升维(按照某种规则扩充数据的特征)使得原本在低维空间内线性不可分的数据在升维后的空间内变得线性可分。SVM的核函数 主要是为解决数据线性不可分而提出一系列变换函数,不同的特征扩充规则对应了了不同的核函数。

在实际应用 核SVM 的时候,往往是通过变形 线性SVM的目标函数 为适用核函数的效率形式:如
适用多项式特征的SVM优化函数
这里适用多项式核的SVM优化目标 maxmi=1αi12mi=1mj=1αiαjyiyjxixj 函数内嵌套了i,j两层加法循环,每次循环都是对样本集内的任意两个样本 x(i),x(j)做一次点乘。对于这样的点乘运算,核函数 的思想在于直接通过变换K处理使得原始特征的点积结果与对两样本添加构造特征后计算的点积结果相类似的效果。这样相比起先添加构造特征提升数据维度,再应用线性SVM 。在SVM原始优化目标里直接以函数变换 K 来计算升维后两样本 xixj的内积结果,不但降低了添加构造特征带来的硬件资源消耗,还进一步提升了运算效率。所以 核函数 本质只是一个在算法里提升效率的运算技巧(Kernel Trick)。

核函数 技巧一般多应用在两向量的内积处理上。

2、多项式核函数

一般数学形式:K(X,Y)=(XY+C)d
基本原理就是通过添加多项式特征来进行数据升维,用核函数重新定义了两向量的点乘结果。

推导如下:
对于核函数 K(X,Y)=(XY+1)2
XY=(x1,x2,...,xn)(y1,y2,...,yn)=ni=1xiyi
(XY+1)2=(ni=1xiyi+1)2=ni=1(x2i)(y2i)+ni=2i1j=1(2xixj)(2yiyj)+ni=1(2xi)(2yi)+1

从而在(XY+1)2的结果里可以看到基于X,Y的原始特征添加了最高2次项的构造特征 x2i,xixj,xi,并对两向量对应位置的分类进行了乘法运算和求和,也就是相当于一步完成了对X,Y添加构造特征升维再算内积的运算。

d=1时就对应了不使用添加构造特征 线性核函数 K(X,Y)=XY

2.2 在SVM中应用多项式核函数

### Polynomial Features
from sklearn.preprocessing import PolynomialFeatures,StandardScaler
from sklearn.svm import SVC
from sklearn.pipeline import Pipeline
def Polynomial_KernelSVC(degree,C = 1.0):
    return Pipeline([
        ("std_scaler",StandardScaler()),
        ("kernelSVC",SVC(kernel="poly",degree=degree,C = C))
    ])
poly_kernel_SVC = Polynomial_KernelSVC(degree = 1)
poly_kernel_SVC.fit(X,y)
AI 代码解读

3、高斯核函数(RBF)

一般数学形式:K(x,y)=eγxy2 ,又称为RBF核(Radial Basis Functiona Keral), 径向基函数

高斯核函数本身也是一个非常好的相似性度量函数

  • 当两样本非常 相距非常近 的时候就有xy20,eγxy21
  • 当两样本非常 相距非常远 的时候就有xy2+,eγxy20

在SVM中引入的 高斯核函数 本质作用也是一种升维处理,不过规则上不是通过添加多项式的处理方式,高斯核函数所做的事情是将当前数据集内的每一个样本作为 地标(landmark) 参考生成新特征,这个新构造的特征实际上反映了两样本点的相似性程度,从而在新特征空间内使得样本变得可分。由于高斯核函数升为变换将一个 mn的数据映射成mm的数据,所以在实际应用的时候会面临很高的算力开销,它的主要应用场景是样本集内特征数量比样本数量要多的时候$(m

高斯核函数形式上类似于统计学上的高斯函数 g(x)=1σ2πe12(xμ)2
高斯 12σ2 在高斯核函数里被描述成 γ,反映在决策边界上γ越大,模型的泛化出现过拟合,γ越小,模型的出现欠拟合。所以γ实际控制了高斯核SVM模型的泛化能力。


应用高斯核可以获得更为多样化的决策边界形状,并且只有一个控制超参数(gamma),相比多项式核容易选择。但存在可解释性差,无法获取超平面方程 wTx+b=0 所需的参数wb

3.2 在SVM中应用高斯核函数

### Polynomial Features
from sklearn.preprocessing import PolynomialFeatures,StandardScaler
from sklearn.svm import SVC
from sklearn.pipeline import Pipeline
def RBF_KernelSVC(gamma = 1):
    return Pipeline([
        ("std_scaler",StandardScaler()),
        ("kernelSVC",SVC(kernel="rbf",gamma = gamma))
    ])
rbf_kernel_SVC = RBF_KernelSVC(gamma = 1)
rbf_kernel_SVC.fit(X,y)
AI 代码解读

更多SVM核函数的优缺点介绍

目录
打赏
0
0
0
0
185
分享
相关文章
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构。本文介绍了K-means算法的基本原理,包括初始化、数据点分配与簇中心更新等步骤,以及如何在Python中实现该算法,最后讨论了其优缺点及应用场景。
246 6
基于机器学习的人脸识别算法matlab仿真,对比GRNN,PNN,DNN以及BP四种网络
本项目展示了人脸识别算法的运行效果(无水印),基于MATLAB2022A开发。核心程序包含详细中文注释及操作视频。理论部分介绍了广义回归神经网络(GRNN)、概率神经网络(PNN)、深度神经网络(DNN)和反向传播(BP)神经网络在人脸识别中的应用,涵盖各算法的结构特点与性能比较。
使用 PAI-DSW x Free Prompt Editing图像编辑算法,开发个人AIGC绘图小助理
使用 PAI-DSW x Free Prompt Editing图像编辑算法,开发个人AIGC绘图小助理
机器学习算法的优化与改进:提升模型性能的策略与方法
机器学习算法的优化与改进:提升模型性能的策略与方法
492 13
机器学习算法的优化与改进:提升模型性能的策略与方法
CCS 2024:如何严格衡量机器学习算法的隐私泄露? ETH有了新发现
在2024年CCS会议上,苏黎世联邦理工学院的研究人员提出,当前对机器学习隐私保护措施的评估可能存在严重误导。研究通过LiRA攻击评估了五种经验性隐私保护措施(HAMP、RelaxLoss、SELENA、DFKD和SSL),发现现有方法忽视最脆弱数据点、使用较弱攻击且未与实际差分隐私基线比较。结果表明这些措施在更强攻击下表现不佳,而强大的差分隐私基线则提供了更好的隐私-效用权衡。
71 14
解锁机器学习的新维度:元学习的算法与应用探秘
元学习作为一个重要的研究领域,正逐渐在多个应用领域展现其潜力。通过理解和应用元学习的基本算法,研究者可以更好地解决在样本不足或任务快速变化的情况下的学习问题。随着研究的深入,元学习有望在人工智能的未来发展中发挥更大的作用。
|
3月前
|
PAI下面的gbdt、xgboost、ps-smart 算法如何优化?
设置gbdt 、xgboost等算法的样本和特征的采样率
132 2
C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出
本文探讨了C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出。文章还介绍了C语言在知名机器学习库中的作用,以及与Python等语言结合使用的案例,展望了其未来发展的挑战与机遇。
97 1
深入探索机器学习中的决策树算法
深入探索机器学习中的决策树算法
73 0

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等