【校招面经】机器学习与数据挖掘常见面试题整理 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

相关文章

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

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

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

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

MySQL 迁移至 Doris 最佳实践方案(最新整理)

《MySQL迁移至Doris最佳实践方案(最新整理)》本文将深入剖析三种经过实践验证的MySQL迁移至Doris的最佳方案,涵盖全量迁移、增量同步、混合迁移以及基于CDC(ChangeData... 目录一、China编程JDBC Catalog 联邦查询方案(适合跨库实时查询)1. 方案概述2. 环境要求3.

SpringSecurity整合redission序列化问题小结(最新整理)

《SpringSecurity整合redission序列化问题小结(最新整理)》文章详解SpringSecurity整合Redisson时的序列化问题,指出需排除官方Jackson依赖,通过自定义反序... 目录1. 前言2. Redission配置2.1 RedissonProperties2.2 Red

MySQL 多列 IN 查询之语法、性能与实战技巧(最新整理)

《MySQL多列IN查询之语法、性能与实战技巧(最新整理)》本文详解MySQL多列IN查询,对比传统OR写法,强调其简洁高效,适合批量匹配复合键,通过联合索引、分批次优化提升性能,兼容多种数据库... 目录一、基础语法:多列 IN 的两种写法1. 直接值列表2. 子查询二、对比传统 OR 的写法三、性能分析

Javaee多线程之进程和线程之间的区别和联系(最新整理)

《Javaee多线程之进程和线程之间的区别和联系(最新整理)》进程是资源分配单位,线程是调度执行单位,共享资源更高效,创建线程五种方式:继承Thread、Runnable接口、匿名类、lambda,r... 目录进程和线程进程线程进程和线程的区别创建线程的五种写法继承Thread,重写run实现Runnab

Java 方法重载Overload常见误区及注意事项

《Java方法重载Overload常见误区及注意事项》Java方法重载允许同一类中同名方法通过参数类型、数量、顺序差异实现功能扩展,提升代码灵活性,核心条件为参数列表不同,不涉及返回类型、访问修饰符... 目录Java 方法重载(Overload)详解一、方法重载的核心条件二、构成方法重载的具体情况三、不构

SQL中如何添加数据(常见方法及示例)

《SQL中如何添加数据(常见方法及示例)》SQL全称为StructuredQueryLanguage,是一种用于管理关系数据库的标准编程语言,下面给大家介绍SQL中如何添加数据,感兴趣的朋友一起看看吧... 目录在mysql中,有多种方法可以添加数据。以下是一些常见的方法及其示例。1. 使用INSERT I

Python中反转字符串的常见方法小结

《Python中反转字符串的常见方法小结》在Python中,字符串对象没有内置的反转方法,然而,在实际开发中,我们经常会遇到需要反转字符串的场景,比如处理回文字符串、文本加密等,因此,掌握如何在Pyt... 目录python中反转字符串的方法技术背景实现步骤1. 使用切片2. 使用 reversed() 函

MySQL 中的 CAST 函数详解及常见用法

《MySQL中的CAST函数详解及常见用法》CAST函数是MySQL中用于数据类型转换的重要函数,它允许你将一个值从一种数据类型转换为另一种数据类型,本文给大家介绍MySQL中的CAST... 目录mysql 中的 CAST 函数详解一、基本语法二、支持的数据类型三、常见用法示例1. 字符串转数字2. 数字