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

支持向量机(SVM,Support Vector Machines)是一种用于分类和回归的监督学习算法。目的是在特征空间中找到间隔最大的超平面。

这里的超平面就是将所有类别划分开的那条线,当数据特征是二维时,此超平面是一条线;当数据特征是多维时,它就变成了面,如下图所示。超平面与最近的样本点保持一定的距离。

回答这个问题前,得先知道什么是间隔。如上图所示,间隔(margin)就是指决策面(y=0)与任意训练数据点之间的最小距离。

硬间隔是指SVM在分类中不允许出现分类错误。通俗点,硬间隔就是训练集中的任何数据点不允许出现在间隔内,即两条蓝线之间,但数据点可以出现在蓝色线上,这些点叫支持向量。

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

上图是一个二分类且线性可分的实例,阈值为0。大于0,目标值(tnt_ntn​)属于类别1,小于0,目标值(tnt_ntn​)属于类别-1,可用线性模型y(x)=wTϕ(x)+by(x)=w^T\phi (x)+by(x)=wTϕ(x)+b表示。

间隔最大化就是让决策面与任意数据点的最小距离最大。SVM 通过间隔最大化可以将优化问题转换成一个凸优化问题,这时解是唯一的。而感知机根据误分类最小进行优化,可得到多个分离超平面,解有多个,如下图所示。

分类中的主要问题之一是类不平衡问题。当采用误分类作为损失函数时,容易受到类不平衡问题的影响,如二分类中有90%的数据属于A类,10%的数据属于B类,误分类是10%,这时的这个决策面是好还是不好?但是SVM采用间隔最大化就可以避免这类问题,因为它只受支持向量影响,鲁棒性强,不易过拟合。

相同点:都是用于分类的监督学习算法

异同点:

支持向量是指训练样本中,与分类超平面最近的数据点。其是训练数据的子集同时也是最难分类的点。

支持向量直接关系到决策面所在的位置。如下图所示,圆圈内的数据点便是支持向量,若从训练数据中删除圆圈内的点,则分类决策面会改变,若删除非圆圈内的点,则分类决策面不会改变。

主要是根据训练数据集是否线性可分以及是否允许出现分类错误进行划分的。主要包含以下三种模型:

支持向量机本质上是一个两类分类器,但通过组合可以处理多分类问题(多分类支持向量机)。

直接法:修改损失函数比如使用softmax,但这样复杂度高,实现起来比较麻烦,适合于小型问题。

间接法:

核函数主要是将数据映射到更高维度的空间,这个空间叫作特征空间。

在特征空间中,数据能够更容易地分离或更好地结构化。

这种映射的形式也没有限制,甚至可以形成无限维空间。核函数表示特征空间的内积,通常表示为:

K(x,y)=<x,y>=ϕ(x)Tϕ(y)K(x,y)=<x,y>=\phi(x)^T\phi(y)K(x,y)=<x,y>=ϕ(x)Tϕ(y)

核函数通过内积计算,避免了直接计算映射。

假设存在二维向量x=[x1,x2],y=[y1,y2]x=[x_1,x_2],y=[y_1,y_2]x=[x1​,x2​],y=[y1​,y2​],将其升维(ϕ\phiϕ)到高维空间,则:

升维到三维空间:

ϕ(x)=[x12,x22,2x1x2],ϕ(y)=[y12,y22,2y1y2]\phi(x)=[x_1^2,x_2^2,\sqrt{2}x_1x_2],\phi(y)=[y_1^2,y_2^2,\sqrt{2}y_1y_2]ϕ(x)=[x12​,x22​,2​x1​x2​],ϕ(y)=[y12​,y22​,2​y1​y2​]

则核函数的值为:

K(x,y)=ϕ(x)Tϕ(y)=x12y12+x22y22+2x1x2y1y2=(x1y1+x2y2)2=(xTy)2=f(x,y)\begin{aligned} K(x,y)&=\phi(x)^T\phi(y)\\ &=x_1^2y_1^2+x_2^2y_2^2+2x_1x_2y_1y_2\\ &=(x_1y_1+x_2y_2)^2\\ &=(x^Ty)^2\\ &=f(x,y) \end{aligned}K(x,y)​=ϕ(x)Tϕ(y)=x12​y12​+x22​y22​+2x1​x2​y1​y2​=(x1​y1​+x2​y2​)2=(xTy)2=f(x,y)​

fff表示函数,在这里代表多项式核函数。在其他条件下,fff可以为任何函数形式。

升维到四维空间:

ϕ(x)=[x12,x22,x1x2,x1x2],ϕ(y)=[y12,y22,y1y2,y1y2]\phi(x)=[x_1^2,x_2^2,x_1x_2,x_1x_2],\phi(y)=[y_1^2,y_2^2,y_1y_2,y_1y_2]ϕ(x)=[x12​,x22​,x1​x2​,x1​x2​],ϕ(y)=[y12​,y22​,y1​y2​,y1​y2​]

则核函数的值为:

K(x,y)=ϕ(x)Tϕ(y)=x12y12+x22y22+2x1x2y1y2=f(x,y)K(x,y)=\phi(x)^T\phi(y)=x_1^2y_1^2+x_2^2y_2^2+2x_1x_2y_1y_2=f(x,y)K(x,y)=ϕ(x)Tϕ(y)=x12​y12​+x22​y22​+2x1​x2​y1​y2​=f(x,y)

这里要注意一个问题,当ϕ(x),ϕ(y)\phi(x),\phi(y)ϕ(x),ϕ(y)是三维时,f(x,y)f(x,y)f(x,y)可以化为三项的和;当ϕ(x),ϕ(y)\phi(x),\phi(y)ϕ(x),ϕ(y)是四维时,fff可以化为四项的和。所以fff可以转化成多少项的和,ϕ(x),ϕ(y)\phi(x),\phi(y)ϕ(x),ϕ(y)就有多少维,即当fff可以化成无限的项相加时,ϕ(x),ϕ(y)\phi(x),\phi(y)ϕ(x),ϕ(y)也可以是无限维的。高斯核可以数据扩展到无限维就是利用这个原理。

核函数的意义在于做到了没有真正映射到高维空间却达到了映射的作用,减少了大量的映射计算。

SVM核函数的引用主要将非线性分类问题转换为线性分类问题。因为存在一个假设,就是数据在低维空间不可分,但在高维空间可分。

高斯核:k(x,y)=exp(−∣∣x−y∣∣22σ2)k(x,y)=exp(- \frac{||x-y||^2}{2\sigma^2})k(x,y)=exp(−2σ2∣∣x−y∣∣2​)

根据泰勒展开式:

ex≈1+x+x22!+x33!+...+xnn!e^x \approx 1+x+\frac{x^2}{2!}+\frac{x^3}{3!}+...+\frac{x^n}{n!}ex≈1+x+2!x2​+3!x3​+...+n!xn​

将泰勒展开式带入高斯核,将得到一个无穷维度的映射:

k(x,y)=exp(−∣∣x−y∣∣22σ2)≈1+(−∣∣x−y∣∣22σ2)+(−∣∣x−y∣∣22σ2)22!+(−∣∣x−y∣∣22σ2)33!+...+(−∣∣x−y∣∣22σ2)nn!\begin{aligned} k(x,y)&=exp(- \frac{||x-y||^2}{2\sigma^2})\\ & \approx 1+(- \frac{||x-y||^2}{2\sigma^2}) +\frac{(- \frac{||x-y||^2}{2\sigma^2}) ^2}{2!}+\frac{(- \frac{||x-y||^2}{2\sigma^2}) ^3}{3!}+...+\frac{(- \frac{||x-y||^2}{2\sigma^2}) ^n}{n!} \end{aligned}k(x,y)​=exp(−2σ2∣∣x−y∣∣2​)≈1+(−2σ2∣∣x−y∣∣2​)+2!(−2σ2∣∣x−y∣∣2​)2​+3!(−2σ2∣∣x−y∣∣2​)3​+...+n!(−2σ2∣∣x−y∣∣2​)n​​

可以对特征进行归一化,这样就可以用新的特征建模。但在类别变量中,特征归一化有时是不可行的,比如类别变量用one-hot编码,则只有0和1两个数字,此时就没有必要进行归一化,所以归一化并不总是有效的。

RBF核:k(x,y)=exp(−γ∣∣x−y∣∣2)k(x,y)=exp(-\gamma ||x-y||^2)k(x,y)=exp(−γ∣∣x−y∣∣2)

SVM调优中的参数γ\gammaγ表示超平面附近或远离超平面的点的影响。

当γ\gammaγ越小,模型建模时将考虑训练集中的所有点,无法捕捉真正的超平面形状;γ\gammaγ越大,模型建模时只考虑超平面附近的点,将能够捕捉到数据集的形状。

在后面会给大家介绍SVM中对偶性以及损失函数方面的问题。

本片文章主要分享一下我们进行面试时被遇到的接口测试一些问题,例:如何定位bug属于前端还是后端?平时你是怎么做接口测试的?接口自动化的具体步骤?cookie和session的区别?平时用什么工具测试接口的?如何验库?什么是unittest?什么是pytest?unittest和pytest的使用步骤是什么?测试用例的设计方法?列举一些最常用的HTTP方法?接口组成有哪些?为什么进行接口测试?你在接口测试中使用过哪些工具和框架?什么时候用fiddler抓包?接口测试的基本步骤?

一、Redis做什么的,在哪些场景下使用Redis是一个开源的内存数据存储系统,它被广泛用于缓存、消息队列、实时统计分析、任务队列等场景。以下是一些常见的使用场景:缓存:Redis的主要用途之一是作为缓存层。它可以将经常访问的数据存储在内存中,以提高读取速度。常见的应用场景包括页面缓存、对象缓存、查询结果缓存等。消息队列:Redis的发布/订阅功能使其成为一个简单而强大的消息队列系统。它可以用于处

本文主要总结了一些常见的C++面试题,主要是面试过程中遇到以及网上收集,全部是以自己理解进行了作答,如有不明确的地方,欢迎大家前来学习指正,会不定期去更新面试内容。1、回调函数的了解?回调函数和c++中多态类似,主要功能是,对同一个消息,做出不同的响应,使用的是函数指针实现,通过传递函数指针类型,相同的函数地址实现动态绑定,实现对消息体的不同响应。2、递归算法解释?递归的基本思想是某个函数直接或者

序号题目难度ABCDEF正确答案1关于 Logit 回归和 SVM 不正确的是简单Logit 回归目标函数是最小化后验概率Logit 回归可泛化能力Hinge 损失函数,作用是最小...

前端部分1、 colspan,rolspan,cellpadding,tableborder等css属性作用2、 a=(b>c)?d:e 逻辑表达式转换3、 如何提高页面响应速度,前端常用开发技术了解后台部分1、 知道几种安全验证机制?并简要说明其实现方式2、 设计部门表并设计方法实现部门下所有下级部门搜索功能3、 sql语句实现删除多条重复记录(根据关键字段)并只保留一条4、 Arra

常见数据结构与算法学习目录––大公司笔试面试有哪些经典算法题目?二叉树打印参考:链接–––剑指offer-数据结构与算法LeetCode刷题题解答案.pdfLeetCode刷题–––十大算法精讲:(面试题1)剑指offer之赋值运算符函数–––––––––算法高级实战:––漫画:什么是B+树,B+树层数计算(面试官直呼内行)

(1) 无监督和有监督算法的区别?

基础部分1.大数据的文件读取利用生成器generator迭代器进行迭代遍历:forlineinfile2.迭代器和生成器的区别1.迭代器是一个更抽象的概念,任何对象,如果它的类有next方法和iter方法返回自己本身。对于string、list、dict、tuple等这类容器对象,使用for循环遍历是很方便的。在后台for语句对容器对象调用iter()函数,iter()是python的内置函数。i

简单的面试题总结

概念什么是微服务?你是怎么理解微服务的?微服务架构是一种架构模式或者说是一种架构风格,它提倡将单一应用程序划分为一组小的服务,每个服务运行在其独立的自己的进程中,服务之间相互协调、互相配合,为用户提供最终价值。服务之间采用轻量级的通信机制互相沟通(通常是基于HTTP的RESTful API),每个服务都围绕着具体的业务进行构建,并且能够被独立的构建在生产环境、类生产环境等。另外,应避免统一的、集中

<>1、面向对象的特征有哪些方面   1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。2.继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可

“link.h”#ifndef __LINK_LIST_H__#define __LINK_LIST_H__#include <stdio.h>#include <assert.h>#include <stdlib.h>#include <malloc.h>typedef int DataType;typedef struct LinkNode{ D

21、谈谈你对镜像的理解 相当于容器的源代码,是一个只读层,镜像由dockerfile 编写生成,用于构建容器。镜像运行起来之后就是 容器。镜像相当于类,容器相当于对象。22、dockerfile 中 add 和 copy 的区别 ADD和COPY相同点:只复制目录中得内容而不包含目录自身 ADD和COPY不同点:当要读取URL远程资源的时候,并不推荐使用ADD指令,而是建议使用RUN指令,在RU

1、Js的原型和原型链怎么理解?原型链有什么应用? 答:js原型以及原型链是js面向对象编程的基础和重点,这个也是笔试和面试常问到的问题。 每一个构造函数都有一个属性prototype,这个属性他指向就是我们常说的构造函数的原型。每当我们通过构造函数要去new一个实例的时候,new操作符会做些事情,

一、Spring的AOP理解 OOP面向对象,允许开发者定义

前言随着移动互联网科技不断的发展和创新,如今无论是公司还是开发者或设计师个人而言,面试都是一项耗时耗钱的项目,而面对iOS开发者及设计师在面试时可能会遇到的问题进行了筛选与汇总。下面我们一起来一下看看吧。一、如何绘制UIView?绘制一个UIView最灵活的方法就是由它自己完成绘制。实际上你不是绘制一个UIView,而是子类化一个UIView并赋予绘制自己的能力。当一个UIView需要执行绘制操作

简要介绍外观模式,因为内容较为简单,没有太大的理解难度,所以课件内容居多

Part one :论文概述 论文标题: SAM3: Segment Anything with Concepts 作者团队: Anonymous authors 发布时间: ICLR2026 一键直达论文 Lab4AI大模型实验室论文阅读 01 摘要解析 SAM3(SegmentAnyth ...

给定一个字符串s,请你找出其中不含有重复字符的的长度。3因为无重复字符的最长子串是"abc",所以其长度为 3。注意 "bca" 和 "cab" 也是正确答案。1因为无重复字符的最长子串是"b",所以其长度为 1。3因为无重复字符的最长子串是"wke",所以其长度为 3。请注意,你的答案必须是的长度,"pwke"是一个子序列,不是子串。

本文介绍了有关C、C++中大小端机的问题,快来检测一下你的机器是大端机还是小端机!

编辑:llB5819WT 0.35A-ASEMI可直接替代安世PMEG4002EBASEMI首芯半导体可替代安氏半导体功率器件型号:B5819WT 0.35A品牌:ASEMI封装:SOD-523特性:肖特基二极管正向电流:0.35A反向耐压:40V恢复时间:35ns引脚数量:2芯片个数:1芯片尺寸: ...

THE END
0.二次电气原理接线图的画法缺点:不便于阅读和理解其工作原理。 2. 展开式画法 展开式画法是以电气回路为基础,将继电器整个元件的线圈、触点按保护动作的顺序,自左而右,自上而下绘制的接线展开图。其特点是分别绘制电源回路、主电路、控制电路、信号电路等回路。电气设计在线教学狄老师;各继电器的线圈和触点也分开,分别画在它们各自所属的回路中,并且属于同一jvzquC41yy}/onnrkct/ew45x4k6m8
1.光学设计基础(二)特点:由于彗差是轴外物点以宽光束成像时所产生的一种单色像差。 因此,它一方面随视场大小而变化;另一方面,对于同一视场,它又随孔径的 不同而变化。 慧差的展开式为 第一项为初级彗差 ,第二项为孔径二级彗差 、第三项为视场二级彗差 初级像差描述形式:初级子午彗差 jvzq<84yyy4pr}pv0eun1of132703
2.北京交通大学三段式电流保护二次原理图安装图设计.docx根据设计要求进行调研,设计归总式三段式电流保护原理接线图,分析各部分工作原理。要求:全部元件标号采用标准的文字符号。(2)展开式原理图设计。根据归总式原理接线图,按交流电流回路、控制回路、信号回路等分别画出展开式原理接线图。要求:展开式原理图所有元件标号和归总式原理接线图对应,展开式原理图要标出各连接线jvzquC41oc~/dxtm33>/exr1jvsm1;5421732=4833813>6572642<60ujzn
3.低压开关柜CAD电气图设计与实战详解在传统手绘时代,一张完整的低压开关柜一次系统图或二次原理图往往需要数小时甚至数天完成,且极易因人为疏忽导致接线错误、符号误用或参数遗漏。而采用CAD平台后,设计人员可通过预定义符号库快速插入断路器、接触器、继电器等常用元件,利用自动连线、触点关联、端子编号等功能大幅提升绘图速度。 jvzquC41dnuh0lxfp0tfv8|gkzooa<;373=878ftvkimg8igvcomu86747<629>
4.机器视觉:摄像机标定技术吴建明wujianming特点:仅依靠多幅图像之间的对应关系进行标定。 优点:仅需要建立图像之间的对应,灵活性强,潜在应用范围广。 不足:非线性标定,鲁棒性不高。 3.传统的摄像机标定方法 利用已知的景物结构信息。常用到标定块。 图3-1.平面透视畸变是非线性的:不能使用2D线性变换来描述 jvzquC41yy}/ewgnqiy/exr1ywpjcwrkpi32396391v03A54:793
5.数学分析论文通用12篇现代经济学的一个明显特点是越来越多地使用数学(包括统计学)作为分析工具,绝大多数的经济学前沿论文都包含数学或计量模型。从经济学的分析框架来看,这并不难理解,因为参照系的建立和分析工具的发展通常都要借助数学。但是,在部分经济学家的理论研究中,逐渐形成了一个基于唯数主义的数学化倾向,这种倾向偏离了经济学研jvzquC41zfy0zguj{/exr1jcuxgw4;59>/j}rn
6.数据通信论文范文二、数据通信的构成原理 数据终端(DTE)有分组型终端(PT)和非分组型终端(NPT)两大类。分组型终端有计算机、数字传真机、智能用户电报终端(TeLetex)、用户分组装拆设备(PAD)、用户分组交换机、专用电话交换机(PABX)、可视图文接入设备(VAP)、局域网(LAN)等各种专用终端设备;非分组型终端有个人计算机终端、可视图文终jvzquC41yy}/jjtskmgo0lto1jgpyns157>637mvon
7.小学数学1十进制化成二进制:①根据二进制满2进1的特点,用2连续去除这个数,直到商为0,然后把每次所得的余数按自下而上依次写出即可。②先找出不大于该数的2的n次方,再求它们的差,再找不大于这个差的2的n次方,依此方法一直找到差为0,按照二进制展开式特点即可写出。 jvzquC41yy}/5?5fqe4dp8ftvkimg8<32:<24h627495;A990jznn
8.经典控制理论自动控制原理知识点概要(下)自动控制原理里最常见的基本控制规律是PID控制规律。各控制规律在系统校正中的作用与固有特性有关, 应具体问题具体分析。 6.3 常用校正装置及其特性 按照校正装置G c ( j ω ) G_c(j \omega)Gc​(jω)的相位φ c \varphi_cφc​的不同,常用校正装置可以分为: 超前校正装置、滞后校正和滞后一一超前校正jvzquC41dnuh0lxfp0tfv8|gkzooa=75238328ftvkimg8igvcomu86492=19@5
9.图像的傅里叶变换数字图像处理小记比如南非世界杯时,南非人吹的呜呜主拉的声音太吵了,那么对现场的音频做傅立叶变化(当然是对声音的数据做),会得到一个展开式,然后找出呜呜主拉的特征频率,去掉展开式中的那个频率的sin函数,再还原数据,就得到了没有呜呜主拉的嗡嗡声的现场声音。而对图片的数据做傅立叶,然后增大高频信号的系数就可以提高图像的对比度。同样,相机自动对焦 jvzquC41dnuh0lxfp0tfv8|gkzooa<>9469948ftvkimg8igvcomu8632:<27>>
10.钱伟长——我国近代力学和国际奇异摄动理论的奠基人将它代入(2)式消去p,即得钱法的展开式(1)。 (4)我们也可以把(2)式看成是应用参数变形法的结果,不过,为了得到钱法的结果,还必须对(2)式反演出(3)式和(1)式。因此,钱老的摄动法应看作“参数变形法的反演”。 钱氏摄动法的上述特点(尤其是第⑴、⑵点)大大拓广了人们选择摄动参数的眼界和技巧,充分体现jvzquC41yy}/ejx0ep5{v8o|v1}yekv1|mlz‚~m4267pmjs1m~k1;5282>0v;5282>37h7889?557xjvor