主要内容

  1. 运行使用支持向量机SVM需要做的步骤
  2. 选择SVM或逻辑回归的基本准则
  3. SVM 与神经网络对比
  4. 其他核函数 kernel

一、运行使用支持向量机SVM需要做的步骤

1.1、参数 支持向量机预测步骤 支持向量机的步骤_支持向量机

  • 一般情况下我们需要自己写软件来求解参数,但是不建议自己写核函数,建议直接使用现有的软件包(如 liblinear,libsvm 等)(关于liblinear\libsvm 的介绍可以参考我的另一个文章) 来最小化 SVM 代价函数
  • 强烈建议使用高优化软件库中的一个,而不是尝试自己实现

1.2 参数设置

  • 尽管有现成的库,但是我们也需要做几件事:
  • 1、参数C的选择
  • 2、选择内核参数或你想要使用的相似函数 (注:如果选择不需要任何内核参数,还称为使用了线性核函数 SVM)

1.3、SVM的两种选择

  • SVM的选择之一:是选择不带任何内核参数,也叫线性核函数(linear kernel),支持向量机预测步骤 支持向量机的步骤_人工智能_02
  • 如果有人说他使用了线性核的SVM(支持向量机),这就意味这他使用了不带有核函数的SVM(支持向量机)。
  • SVM的选择之二:使用kernel f(比如高斯核函数Gaussian Kernel),支持向量机预测步骤 支持向量机的步骤_机器学习_03,这里需要选择方差参数σ2

支持向量机预测步骤 支持向量机的步骤_机器学习_04

  • 注意:如果使用高斯核函数,需要进行特征缩放

支持向量机预测步骤 支持向量机的步骤_核函数_05

二、选择SVM或逻辑回归的基本准则

  • 支持向量机预测步骤 支持向量机的步骤_支持向量机预测步骤_06为特征数,支持向量机预测步骤 支持向量机的步骤_人工智能_07为训练样本数
  • (1) 如果相较于支持向量机预测步骤 支持向量机的步骤_支持向量机预测步骤_08而言,支持向量机预测步骤 支持向量机的步骤_支持向量机_09要大许多,即训练集数据量不够支持我们训练一个复杂的非线性模型,我们选用逻辑回归模型或者不带核函数的支持向量机
  • (2) 如果**支持向量机预测步骤 支持向量机的步骤_支持向量机预测步骤_06较小,而且支持向量机预测步骤 支持向量机的步骤_人工智能_07大小中等**,例如支持向量机预测步骤 支持向量机的步骤_支持向量机预测步骤_06在 1-1000 之间,而支持向量机预测步骤 支持向量机的步骤_人工智能_07在10-10000之间,使用高斯核函数的支持向量机
  • (3)如果**支持向量机预测步骤 支持向量机的步骤_支持向量机预测步骤_06较小,而支持向量机预测步骤 支持向量机的步骤_人工智能_07较大**,例如支持向量机预测步骤 支持向量机的步骤_支持向量机预测步骤_06在1-1000之间,而支持向量机预测步骤 支持向量机的步骤_人工智能_07大于50000,则使用支持向量机会非常慢,解决方案是创造、增加更多的特征,然后使用逻辑回归或不带核函数的支持向量机
  • 注意:
  • 如果训练集非常大,高斯核函数的SVM 会非常慢。 通常Andrew会尝试手动创建特征,然后用逻辑回归或者不带核函数的 SVM
  • (注: 逻辑回归和不带核函数的SVM 非常相似。但是根据实际情况,其中一个可能会更有效。随着 SVM 的复杂度增加、特征数量相当大时,不带核函数的SVM 就会表现得相当突出。)

支持向量机预测步骤 支持向量机的步骤_机器学习_18

三、SVM 与神经网络对比

  • 神经网络 在第二点上面的三种情况下都可能会有较好的表现 ,但是训练神经网络可能非常慢,
  • 选择支持向量机的原因主要在于它的代价函数是凸函数,不存在局部最小值
  • SVM是一种凸优化,不用担心局部最优;好的SVM优化软件包总是会找到全局最小值,或者接近它的值
  • SVM比神经网络快,它是一种体系,一个有效的方法去学习复杂的非线性函数

四、其他核函数 kernel

  • 在高斯核函数之外,还有其他一些选择,如:
  • 多项式核函数(Polynomial Kernel),
  • 字符串核函数(String kernel),
  • 卡方核函数( chi-square kernel) ,
  • 直方图交集核函数(histogram intersection kernel)
  • 它们的目标也都是根据训练集和地标之间的距离来构建新特征
  • 一个核函数需要满足 Mercer’s 定理,才能被 SVM 的优化软件正确处理
  • Mercer’s 定理: 任何半正定的函数都可以作为核函数
  • 所谓半正定的函数支持向量机预测步骤 支持向量机的步骤_支持向量机预测步骤_19:是指拥有训练数据集合支持向量机预测步骤 支持向量机的步骤_人工智能_20,我们定义一个矩阵的元素支持向量机预测步骤 支持向量机的步骤_支持向量机_21,这个矩阵式nn的,如果这个矩阵是半正定的,那么支持向量机预测步骤 支持向量机的步骤_支持向量机预测步骤_19就称为半正定的函数。
    .xn),我们定义一个矩阵的元素支持向量机预测步骤 支持向量机的步骤_人工智能_23,这个矩阵式n
    n的,如果这个矩阵是半正定的,那么支持向量机预测步骤 支持向量机的步骤_人工智能_24就称为半正定的函数。
  • Mercer定理是核函数的充分条件,只要函数满足Mercer定理的条件,那么这个函数就是核函数。