SVM面试题_海康

算法/机器学习校招面试题目合集

1.基本原理

  1. SVM 是一种二类分类模型。它的基本思想是在特征空间中寻找间隔最大的分离超平面使数据得到高效的二分类,具体来讲,有三种情况(不加核函数的话就是个线性模型,加了之后才会升级为一个非线性模型):
    当训练样本线性可分时,通过硬间隔最大化,学习一个线性分类器,即线性可分支持向量机*;
    当训练数据近似线性可分时,引入松弛变量,通过软间隔最大化,学习一个线性分类器,即线性支持向量机
    当训练数据线性不可分时,通过使用核技巧及软间隔最大化,学习非线性支持向量机
  2. 支持向量机(SVM,Support Vector Machines)是一种用于分类和回归的监督学习算法。目的是在特征空间中找到间隔最大的超平面。(ps:这里的超平面就是将所有类别划分开的那条线,当数据特征是二维时,此超平面是一条线;当数据特征是多维时,它就变成了面,如下图所示。超平面与最近的样本点保持一定的距离。)
    在这里插入图片描述

2.SVM 采用间隔最大化(与感知机的区别)

间隔(margin)就是指决策面(y=0)与任意训练数据点之间的最小距离。
间隔(margin)就是指决策面(y=0)与任意训练数据点之间的最小距离。
硬间隔是指SVM在分类中不允许出现分类错误。通俗点,硬间隔就是训练集中的任何数据点不允许出现在间隔内,即两条蓝线之间,但数据点可以出现在蓝色线上,这些点叫支持向量。

软间隔是指SVM在分类中允许出现分类错误的点,如下图所示。这些圈出的数据点都是支持向量,但是其中两个点不在蓝线上,一个在间隔内,另一个被分类错误(黑色直线所指的两个点)。软间隔允许这种情况存在,硬间隔则不允许。
在这里插入图片描述

3.核函数

3.1 核函数定义

将原始空间中的向量作为输入向量,并返回特征空间(转换后的数据空间,可能是高维)中向量的点积的函数称为核函数。

使用内核,不需要显式地将数据嵌入到空间中,因为许多算法只需要图像向量之间的内积(内积是标量);在特征空间不需要数据的坐标。

3.2线性核函数

让转换函数 ϕ ( x ) = x \phi(x )=x ϕ(x)=x,则得到线性核函数,则两个向量的点积为: k ( x , x ′ ) = x T x ′ k(x,{x}')=x^T{x}' k(x,x)=xTx

线性核函数的特征空间F的维度与输入控件 χ \chi χ的维度一样,每个向量的特征数也一样 ( x = ( x 1 , x 2 , . . . . ) (x=(x_1,x_2,....) (x=(x1,x2,....), x 1 x_1 x1叫特征, x x x 代表一个样本)。

当不需要在特征空间进行运算时,可以用线性核函数。如原始数据已经是高维的、可比较的,并且在输入空间线性可分。

线性内核适用于由大量固定长度的特征表示的对象(例如字袋)。

注:一个向量代表一个样本,一个样本有多个特征

核函数
当样本在原始空间线性不可分时,可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。而引入这样的映射后,所要求解的对偶问题的求解中,无需求解真正的映射函数,而只需要知道其核函数。核函数的定义:K(x,y)=<ϕ(x),ϕ(y)>,即在特征空间的内积等于它们在原始样本空间中通过核函数 K 计算的结果。一方面数据变成了高维空间中线性可分的数据,另一方面不需要求解具体的映射函数,只需要给定具体的核函数即可,这样使得求解的难度大大降低。

用自己的话说就是,在SVM不论是硬间隔还是软间隔在计算过程中,都有X转置点积X,若X的维度低一点还好算,但当我们想把X从低维映射到高维的时候(让数据变得线性可分时),这一步计算很困难,等于说在计算时,需要先计算把X映射到高维的的ϕ(x),再计算ϕ(x1)和ϕ(x2)的点积,这一步计算起来开销很大,难度也很大,此时引入核函数,这两步的计算便成了一步计算,即只需把两个x带入核函数,计算核函数,举个列子一目了然:

在这里插入图片描述

个人对核函数的理解:核函数就是一个函数,接收两个变量,这两个变量是在低维空间中的变量,而核函数求的值等于将两个低维空间中的向量映射到高维空间后的内积。
参考:

SVM面试知识点总结

  1. 如何选择核函数:
    当特征维数 d 超过样本数 m 时 (文本分类问题通常是这种情况), 使用线性核;
    当特征维数 d 比较小. 样本数 m 中等时, 使用RBF核;
    当特征维数 d 比较小. 样本数 m 特别大时, 支持向量机性能通常不如深度神经网络
    在这里插入图片描述

SVM 高频面试题

  1. SVM 核函数之间的区别
    一般选择线性核和高斯核,也就是线性核与 RBF 核。 线性核:主要用于线性可分的情形,参数少,速度快,对于一般数据,分类效果已经很理想了。 RBF 核:主要用于线性不可分的情形,参数多,分类结果非常依赖于参数。有很多人是通过训练数据的交叉验证来寻找合适的参数,不过这个过程比较耗时。 如果 Feature 的数量很大,跟样本数量差不多,这时候选用线性核的 SVM。 如果 Feature 的数量比较小,样本数量一般,不算大也不算小,选用高斯核的 SVM。

机器学习总结(三):SVM支持向量机(面试必
考)

  1. 基本思想:试图寻找一个超平面来对样本分割,把样本中的正例和反例用超平面分开,并尽可能的使正例和反例之间的间隔最大.
    4)核函数

  2. 原因:原始空间线性不可分,可以使用一个非线性映射将原始数据x变换到另一个高维特征空间,在这个空间中,样本变得线性可分。

解决方法:常用的一般是径向基RBF函数(线性核,高斯核,拉普拉斯核等)。

在这里插入图片描述
在这里插入图片描述

优点:避免了高维空间的计算,计算核函数的复杂度和计算原始样本内积的复杂度没有实质性的增加。

  1. 多分类
    一对多方法:每一次把某个样本定为正样本,其余样本作为负样本。

       优点:每个优化问题规模小,分类器少,分类速度快;
    
       缺点:每一个分类器都说它属于它那一类---分类重叠;每一个分类器都说它不是它那一类---不可分类现象。
       一对一方法:每次选一个类的样本作正类样本,负类样本则变成只选一个类。
    
       优点:不会出现分类重叠现象。
    

机器学习SVM算法常见面试题(一)

  1. SVM有哪些核函数,对应有哪些使用场景和特点?
    线性核:主要用于线性可分以及样本数与特征数差不多的情况。参数少,速度快。
    非线性核:RBF、tanh核:主要用于线性不可分以及特征数较少样本量一般的情况。参数多,分类结果非常依赖于参数。需要花费时间进行参数调节,才能达到好的结果。用于神经网络。
  2. SVM什么时候用线性核什么时候用高斯核?
    数据线性可分:数据特征与样本量差不多的情况用线性核,当特征少样本量多时,可手动添加特征,然后用线性核。
    数据线性不可分:数据特征较少,样本量一般时,用高斯核。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值