【校招面经】机器学习与数据挖掘常见面试题整理 part9

本文主要是介绍【校招面经】机器学习与数据挖掘常见面试题整理 part9,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

八十、SVM的核函数

from:https://blog.csdn.net/lihaitao000/article/details/51173459

SVM核函数包括线性核函数、多项式核函数、径向基核函数、高斯核函数、幂指数核函数、拉普拉斯核函数、ANOVA核函数、二次有理核函数、多元二次核函数、逆多元二次核函数以及Sigmoid核函数. 核函数的定义并不困难,根据泛函的有关理论,只要一种函数 K ( x i , x j ) 满足Mercer条件,它就对应某一变换空间的内积.对于判断哪些函数是核函数到目前为止也取得了重要的突破,得到Mercer定理和以下常用的核函数类型: (1)线性核函数 K ( x , x i ) = x ⋅ x i (2)多项式核 K ( x , x i ) = ( ( x ⋅ x i ) + 1 ) d (3)径向基核(RBF) K ( x , x i ) = exp ( − ∥ x − x i ∥ 2 σ 2 ) Gauss径向基函数则是局部性强的核函数,其外推能力随着参数 σ 的增大而减弱。多项式形式的核函数具有良好的全局性质。局部性较差。 (4)傅里叶核 K ( x , x i ) = 1 − q 2 2 ( 1 − 2 q cos ( x − x i ) + q 2 ) (5)样条核 K ( x , x i ) = B 2 n + 1 ( x − x i ) (6)Sigmoid核函数 K ( x , x i ) = tanh ( κ ( x , x i ) − δ ) 采用Sigmoid函数作为核函数时,支持向量机实现的就是一种多层感知器神经网络,应用SVM方法,隐含层节点数目(它确定神经网络的结构)、隐含层节点对输入节点的权值都是在设计(训练)的过程中自动确定的。而且支持向量机的理论基础决定了它最终求得的是全局最优值而不是局部最小值,也保证了它对于未知样本的良好泛化能力而不会出现过学习现象。 核函数的选择 在选取核函数解决实际问题时,通常采用的方法有: 一是利用专家的先验知识预先选定核函数; 二是采用Cross-Validation方法,即在进行核函数选取时,分别试用不同的核函数,归纳误差最小的核函数就是最好的核函数.如针对傅立叶核、RBF核,结合信号处理问题中的函数回归问题,通过仿真实验,对比分析了在相同数据条件下,采用傅立叶核的SVM要比采用RBF核的SVM误差小很多. 三是采用由Smits等人提出的混合核函数方法,该方法较之前两者是目前选取核函数的主流方法,也是关于如何构造核函数的又一开创性的工作.将不同的核函数结合起来后会有更好的特性,这是混合核函数方法的基本思想

 

八十一、SVM-点到超平面的距离

from:https://blog.csdn.net/denghecsdn/article/details/77313758

前提知识:已知法线的情况下,求点到平面的距离:

d=| ( n*PA) / n | (n为法向量,P为该点,A为平面内任意一点)

n*PA是向量的点乘

—————————————————————————————

样本空间中的任意一点 x,到超平面(w,b)的距离,可以表示为

                                           

        后来有同学评论说,点到超平面上的点为什么这么计算呢?我在这里再具体说一下。推导过程并不繁琐(这里以三维空间为例)。

      对于超平面A

,假设 x‘ 为超平面上任意一点,那么,显然满足:

                                           

 

对于空间上任意一点 x, 到平面 A  的距离 H,等于 x 到超平面的法向量长度,也就是 向量 xx' 在垂直方向上(即法向量)上的投影。而计算投影,将 xx' 乘以法向量 w 即可。并且,我们不光要投影,还要计算单位,即使用单位为 1 的投影。也就是在分母除以 || w ||。所以,距离 H 可以表示为:

                                      

 

又因为:

                                               

 

所以,距离为:

                    

 

八十二、SVM中,高斯核为什么会把原始维度映射到无穷多维?

from:https://blog.csdn.net/u013382288/article/details/80978456

1)先将高斯函数泰勒展开

2)将x和x'分离,发现它们长得一样

3)高斯函数里藏着无限多维的转换

 

八十三、SVM中的C和gamma

from:https://blog.csdn.net/u013382288/article/details/80978456

1. C

1)C越大,越不能容忍分类误差样本存在,也就是hard-margin SVM,容易出现曲线边,容易过拟合

2)C越小,不关心分类是否正确,而关心间隔是否够大,容易欠拟合

 

2. gamma:gamma是选择RBF函数作为kernel后,该函数自带的一个参数。隐含地决定了数据映射到新的特征空间后的分布,

1)gamma越大,支持向量越少,容易欠拟合

2)gamma值越小,支持向量越多,容易过拟合

支持向量的个数影响训练与预测的速度

 

八十四、SVM的原问题和对偶问题

from:https://blog.csdn.net/diligent_321/article/details/53396682

SVM原问题

  SVM的几何意义是寻找一个最优分隔超平面,使其能把数据空间的两类点分开。记超平面方程为wTx+b=0,任意一点xi到超平面的距离公式为

di=|wTxi+b|||w||

  所以,目标函数为

maxw,bmini∈{1,...,N}|wTxi+b|||w||

  约束条件为

yi(wTxi+b)>0,i∈{1,...,N}

  ,这样便可以保证所有点都被正确分类。 

  观察上述规划问题可知,将w, b同时放大或者缩小相同的倍数,不影响结果,即w, b存在多组解。为了得到唯一的一组w, b, 不妨令“函数间隔”为1,即令样本集满足

mini∈{1,...,N}|wTxi+b|=1

  ,那么可以转化为新问题如下,

maxw,b1||w||=minw,b12||w||2s,t    yi(wTxi+b)≥1,i∈{1,...,N}

SVM对偶问题

  对于SVM而言,原问题

minwθp(w)=minwmaxα,β,αi≥0L(w,α,β)

  不易求解,但由于原问题为二次规划问题,满足“strong duality”关系,故可解其对偶问题。

maxα,β,αi≥0minwL(w,α,β)=maxα,αi≥0minw,b{12||w||2−∑i=1Nαi[yi(wTxi+b)−1]}

  求解偏导数得

∂L(w,α)∂w=w−∑i=1Nαiyixi∂L(w,α)∂b=−∑i=1Nαiyi

  ,若令∂L(w,α)∂w=0,∂L(w,α)∂b=0,则可解之得

w∗=∑i=1Nαiyixi,  ∑i=1Nαiyi=0

  ,于是,对偶问题转化为

maxα{∑i=1Nαi−12∑i,j=1Ny(i)y(j)αiαj<x(i),x(j)>}s,t  αi≥0,  i∈{1,...,N}∑i=1Nαiyi=0

  ,求解出α,则w∗,b∗也就得到了。决策方程可以表示为

(w∗)Tx+b=(∑i=1Nαiyixi)Tx+b=∑i=1Nαiyi<xi,x>+b

  ,上式中,看上去是对所有训练样例和测试样例做内积,计算量大,其实不然,从KKT条件可知,对偶问题解出的α参数,仅support vectors的αi非零,其余全0。 

  此外,引入对偶问题,除了简化“无约束”最优化过程外,还为核函数做了铺垫,而kernel function可以将原始样本映射到高维空间,使其变得“更有可能线性可分”(根据常识,数据越稀疏越可分)

这篇关于【校招面经】机器学习与数据挖掘常见面试题整理 part9的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1140955

相关文章

深度解析Java @Serial 注解及常见错误案例

《深度解析Java@Serial注解及常见错误案例》Java14引入@Serial注解,用于编译时校验序列化成员,替代传统方式解决运行时错误,适用于Serializable类的方法/字段,需注意签... 目录Java @Serial 注解深度解析1. 注解本质2. 核心作用(1) 主要用途(2) 适用位置3

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

MyBatis的xml中字符串类型判空与非字符串类型判空处理方式(最新整理)

《MyBatis的xml中字符串类型判空与非字符串类型判空处理方式(最新整理)》本文给大家介绍MyBatis的xml中字符串类型判空与非字符串类型判空处理方式,本文给大家介绍的非常详细,对大家的学习或... 目录完整 Hutool 写法版本对比优化为什么status变成Long?为什么 price 没事?怎

MySQL ORDER BY 语句常见用法、示例详解

《MySQLORDERBY语句常见用法、示例详解》ORDERBY是结构化查询语言(SQL)中的关键字,隶属于SELECT语句的子句结构,用于对查询结果集按指定列进行排序,本文给大家介绍MySQL... 目录mysql ORDER BY 语句详细说明1.基本语法2.排序方向详解3.多列排序4.常见用法示例5.

MySQL 索引简介及常见的索引类型有哪些

《MySQL索引简介及常见的索引类型有哪些》MySQL索引是加速数据检索的特殊结构,用于存储列值与位置信息,常见的索引类型包括:主键索引、唯一索引、普通索引、复合索引、全文索引和空间索引等,本文介绍... 目录什么是 mysql 的索引?常见的索引类型有哪些?总结性回答详细解释1. MySQL 索引的概念2

Python按照24个实用大方向精选的上千种工具库汇总整理

《Python按照24个实用大方向精选的上千种工具库汇总整理》本文整理了Python生态中近千个库,涵盖数据处理、图像处理、网络开发、Web框架、人工智能、科学计算、GUI工具、测试框架、环境管理等多... 目录1、数据处理文本处理特殊文本处理html/XML 解析文件处理配置文件处理文档相关日志管理日期和

Python38个游戏开发库整理汇总

《Python38个游戏开发库整理汇总》文章介绍了多种Python游戏开发库,涵盖2D/3D游戏开发、多人游戏框架及视觉小说引擎,适合不同需求的开发者入门,强调跨平台支持与易用性,并鼓励读者交流反馈以... 目录PyGameCocos2dPySoyPyOgrepygletPanda3DBlenderFife

Python自动化批量重命名与整理文件系统

《Python自动化批量重命名与整理文件系统》这篇文章主要为大家详细介绍了如何使用Python实现一个强大的文件批量重命名与整理工具,帮助开发者自动化这一繁琐过程,有需要的小伙伴可以了解下... 目录简介环境准备项目功能概述代码详细解析1. 导入必要的库2. 配置参数设置3. 创建日志系统4. 安全文件名处

MySQL深分页进行性能优化的常见方法

《MySQL深分页进行性能优化的常见方法》在Web应用中,分页查询是数据库操作中的常见需求,然而,在面对大型数据集时,深分页(deeppagination)却成为了性能优化的一个挑战,在本文中,我们将... 目录引言:深分页,真的只是“翻页慢”那么简单吗?一、背景介绍二、深分页的性能问题三、业务场景分析四、