zoukankan      html  css  js  c++  java
  • 支持向量机原理(三)线性不可分支持向量机与核函数

    支持向量机原理(一) 线性支持向量机

    支持向量机原理(二)线性支持向量机的软间隔最大化模型

    支持向量机原理(三)线性不可分支持向量机与核函数

    支持向量机原理(一) 线性支持向量机、支持向量机原理(二)线性支持向量机的软间隔最大化模型,讲的是SVM的硬间隔最大化和软间隔最大化算,但他们对完全线性不可分没办法。该博客讲述核函数在SVM中处理线性不可分数据的作用。

    1. 多项式回归

    线性回归原理中,提到将多项式回归转化为线性回归

    比如:

    令:

    得到:

    此时将二元多项式回归转化为五元线性回归。通过二元样本特征得到五元样本特征(x1,x2,x3,x4,x5),即(

    这给我们启发,将低维线性不可分映射到高维,变为线性可分。

    2. 核函数

    线性可分SVM的优化目标函数:

    式子中低维特征仅以内积 xi • xj 形式出现,现在定义一个低维特征空间到高维特征空间的映射Ø(比如上一节的2维到5维),得到SVM的优化目标函数:

    可以看出,和线性可分SVM的优化目标函数的区别:将内积 xi • xj 替换为 Ø(xi)•Ø(xj)

    这种方法看起来解决了线性不可分SVM的问题了。可以将2维映射到5维,3维映射到19维。但低纬如果是100,1000,此时计算量太大,这种方法不合适。

    核函数登场

    假设Ø是一个从低维的输入空间χ欧式空间的子集或离散集合)到高维的希尔伯特空间Η 映射。如果存在函数 K(x, z) ,对任意 x, z ∈ χ,都有:

    此时称 K(x, z) 为核函数。

    核函数将特征从低维映射高维,但核函数计算是在低维上,将实质上的分类效果(利用了内积)表现在高维上。

    3. 核函数的介绍

    scikit-learn默认的几个核函数:

    3.1 线性核函数

    线性核函数(Linear Kernel)就是线性可分SVM,表达式:

    也就是说,线性可分SVM可以和线性不可分SVM归为一类,区别在于线性可分SVM用的是线性核函数

    3.2 多项式核函数

    多项式核函数(Polynomial Kernel)表达式:

    其中,γ,r,d在调参时自己定义。

    3.3 高斯核函数

    高斯核函数(Gaussian Kernel),也称径向基核函数(Radial Basis Function, RBF),是非线性分类SVM最主流的核函数。libsvm默认的核函数。表达式:

    其中,γ>0,调参时自己定义。

    3.4 Sigmoid核函数

    Sigmoid核函数(Sigmoid Kernel)表达式:

    其中,γ,r调参时自己定义。

    4. 分类SVM算法小结

    此时不再区分是否线性可分。

    输入:m个样本,其中 x 为 n 维特征向量。γ为二元输出,值为1或-1。

    输出:分离超平面的参数 ω*,b*和分类决策树函数。

    算法过程:

    (1)、选择适当的核函数 K(x, z和惩罚系数 C>0,构造约束优化问题

    (2)、用SMO算法求出上式最小时对应的α向量的α*向量。

    来自:刘建平

  • 相关阅读:
    shell脚本空行造成“: not found.sh“报错
    MySQL实现分组排序(8.0版本以下ROW_NUMBER() OVER())
    vscode远程主机
    nginx-ingress-controler改写上下文
    nginx-ingress-controller自定义参数
    kubernetes安装nginx-ingress-controller服务
    二进制kubernetes升级
    C++关键字完整版
    virtio、vhost和 vhost-user
    Tomcat端口占用报错时的排除办法
  • 原文地址:https://www.cnblogs.com/keye/p/11193558.html
Copyright © 2011-2022 走看看