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算法求出上式最小时对应的α向量的α*向量。

    来自:刘建平

  • 相关阅读:
    Redis源码分析(二十一)--- anet网络通信的封装
    leetcode 总结part1
    leetcode String to Integer (atoi)
    leetcode 165. Compare Version Numbers
    leetcode 189. Rotate Array
    leetcode 168. Excel Sheet Column Title
    leetcode 155. Min Stack
    leetcode 228. Summary Ranges
    leetcode 204. Count Primes
    leetcode 6. ZigZag Conversion
  • 原文地址:https://www.cnblogs.com/keye/p/11193558.html
Copyright © 2011-2022 走看看