算法工程师,技术软件类求职机器学习必背八股文

更多算法/业务/HR面等笔试题面试题 —— > 个性签名自取!


1. 特征工程:

1.1 为什么要对特征做归一化处理:

Feature scaling,常见的提法有“特征归一化”、“标准化”,是数据预处理中的重要技术。特征间的单位(尺度)可能不同,比如身高和体重,比如摄氏度和华氏度,比如房屋面积和房间数,一个特征的变化范围可能是[ 1000 , 10000 ] [1000, 10000][1000,10000],另一个特征的变化范围可能是[ − 0.1 , 0.2 ] [-0.1, 0.2][−0.1,0.2],在进行距离有关的计算时,单位的不同会导致计算结果的不同,尺度大的特征会起决定性作用,而尺度小的特征其作用可能会被忽略,为了消除特征间单位和尺度差异的影响,以对每维特征同等看待,需要对特征进行归一化

1.2 什么是组合特征?如何处理高维组合特征?

为了提高复杂关系的拟合能力,在特征工程中经常会把一阶离散特征两两组 合,构成高阶组合特征。可以采取降维,矩阵分解或者特征筛选的方法得到具备绝大部分信息的几个特征进行训练。

1.3 比较欧氏距离和曼哈顿距离。

欧氏距离:欧几里得距离,就是平方和开根号。我们最常用的。欧氏距离越小,两个向量的相似度越大;欧氏距离越大,两个向量的相似度越小。

曼哈顿距离:|x1 - x2| + |y1 - y2|, 曼哈顿距离也称为城市街区距离。可以看出在曼哈顿距离中,考虑了更多的实际 因素。总之,在曼哈顿距离的世界中,规则是我们只能沿着线画出的格子行进。

切比雪夫距离:max(|x1 - x2|,|y1 - y2|)

1.4 什么是余弦相似度?为什么有些场景使用余弦相似度而不使用欧氏距离?

对于两个向量A和B,其余弦相似度定义为cos(A,B)= A*B / |A|*|B| 即两个向量夹角的余弦,关注的是向量之间的角度关系,并不关心它们的绝对大小,余弦相似度依然符合“相同为1,正交为0,相反为-1”的性质,其取值范围是[-1,1]。欧式距离衡量空间点的直线距离,余弦距离衡量点在空间的方向差异。欧式距离体现的数值上的绝对差异,而余弦距离体现方向上的相对差异。

1.5 one-hot的作用是什么?为什么不能直接用数字来表示?

One-Hot编码是分类变量作为二进制向量的表示。这首先要求将分类值映射到整数值。然后,每个整数值被表示为二进制向量,除了整数的索引之外,它都是零值,它被标记为1。https://cloud.tencent.com/developer/article/1688022,直接使用数字会给将人工误差而导致的假设引入到类别特征中,比如类别之间的大小关系,以及差异关系等等

2. 模型评估:

2.1 过拟合和欠拟合是啥?具体表现是啥?

训练集上表现很好,测试集上表现很差。欠拟合:训练集上表现很差。欠拟合会导致高 Bias ,过拟合会导致高 Variance ,所以模型需要在 Bias 与 Variance 之间做出一个权衡。

2.2 降低过拟合和欠拟合的方法

(1)解决欠拟合的方法:

1、增加新特征,可以考虑加入进特征组合、高次特征,来增大假设空间;

2、尝试非线性模型,比如核SVM 、决策树、DNN等模型;

3、如果有正则项可以较小正则项参数 $\lambda$;

4、Boosting ,Boosting 往往会有较小的 Bias,比如 Gradient Boosting 等.

(2)解决过拟合的方法:

1、交叉检验,通过交叉检验得到较优的模型参数;

2.X 什么是正则化?用来干什么的?

正则化就是为了防止过拟合的。

我们从【过拟合】的图形可以看出f(x)的涉及到的特征项一定很多吧,即等等很多吧?显而易见,N很大的时候,是等数量增长的吧?显而易见,w系数都是学习来的吧?

现在知道这些信息之后,如何去防止过拟合,我们首先想到的就是控制N的数量吧,即让N最小化吧,而让N最小化,其实就是让W向量中项的个数最小化吧?其中,W=(W1+W2+W3+......+Wn)

0范数,向量中非零元素的个数。(向量中0元素,对应的x样本中的0Xi项我们是不需要考虑的,可以砍掉。)

1范数,为绝对值之和。2范数,就是通常意义上的模。

什么时候用?------ 损失函数中用:J0是原来损失函数,后面一项使我们的正则化损失,alpha使我们的正则化系数(自己定义的)

2.3 L1 和 L2 正则先验分别服从什么分布?

L1是拉普拉斯分布,L2是高斯分布。范数是一个函数,是矢量空间内的所有矢量赋予非零的正长度大小

L1范数:当p=1时,是L1范数,其表示某个向量中所有元素绝对值的和

L2范数:当p=2时,是L2范数, 表示某个向量中所有元素平方和再开根, 也就是欧几里得距离公式。

2.4 对于树形结构为什么不用归一化?

因为数值缩放不影响分裂点位置,对树模型的结构不造成影响。按照特征值进行排序的,排序的顺序不变,那么所属的分支以及分裂点就不会有不同。而且,树模型是不能进行梯度下降的,因为构建树模型(回归树)寻找最优点时是通过寻找最优分裂点完成的,因此树模型是阶跃的,阶跃点是不可导的,并且求导没意义,也就不需要归一化。树型结构不关心变量的值,只关心变量分布以及变量之间的条件概率

2.5 什么是数据不平衡?如何解决?

在机器学习中我们经常会遇到数据不平衡问题。数据不平衡主要存在于有监督机器学习任务中。当遇到数据不平衡时,以总体分类准确率为学习目标的传统分类算法会过多地关注多数类,从而使得少数样本的分类性能下降。绝大多数常见的机器学习算法对于不平衡数据集都不能很好地工作。

2.6 bias,variance,error

Error = Bias + Variance + Noise,Error反映的是整个模型的准确度,Bias反映的是模型在样本上的输出与真实值之间的误差,即模型本身的精准度,Variance反映的是模型每一次输出结果与模型输出期望之间的误差,即模型的稳定性。

3. 线性回归与逻辑回归

3.1 logistic回归公式是什么?

普通线性分类器,WT+b就是一条直线,上方是一类,下方是一类,二分类问题。Logistic 回归要找到分类概率 P(Y=1) 与输入向量 x 的直接关系,然后通过比较概率值来判断类别。因此逻辑回归是找类别的概率连续来判断类别。

逻辑回归虽然名字里面有回归,但是主要用来解决分类问题。logistic-regression就是一个线性回归经过阶跃函数的处理,变成一个二项分类器,输出结果只能是0,1的条件概率的大小,其实是一种概率模型。

回归模型就是预测一个连续变量(如降水量,价格等)。在分类问题中,预测属于某类的概率,可以看成回归问题(分类是离散的,但是类别的概率是连续的,因此回归模型用于分类,变成逻辑回归)。这可以说是使用回归算法的分类方法。

用已知的数据集和训练样本Xi来训练这个模型,从而做到对未知的测试样本进行准确的估计和预测。所以需要对上述公式进行参数估计,求出的W值

对于逻辑回归而言,其实际就是一个sigmoid函数套上一个回归模型,对于输入X有输出Y属于(0,1),所以只需要对其中的参数进行估计即可,对于参数估计问题,涉及到代价函数,而逻辑回归的代价函数可以用最大似然估计得到。

也就是说,输出 Y=1 的对数几率是由输入 x 的线性函数表示的模型,这就是逻辑回归模型。当 WT+b 的值越接近正无穷, P(Y=1|x) 概率值也就越接近 1。因此逻辑回归的思路是,先拟合决策边界(不局限于线性,还可以是多项式),再建立这个边界与分类的概率联系,从而得到了二分类情况下的概率。

在这我们思考个问题,我们使用对数几率的意义在哪?通过上述推导我们可以看到 Logistic 回归实际上是使用线性回归模型的预测值逼近分类任务真实标记的对数几率

3.2 逻辑回归相比线性回归,有何异同?

逻辑回归与线性回归都属于广义线性回归模型, 逻辑回归处理的是分类问题,线性回归处理的是回归问题,这是两者最本质的区别。线性回归中使用的是最小化平方误差损失函数(线性回归就是y=WT+b,损失函数用MSE)

3.3 逻辑回归的损失函数

极大似然估计法: 就是利用已知的样本结果信息,反推最具有可能(最大概率)导致这些样本结果出现的模型参数值!那么既然事情已经发生了,为什么不让这个出现的结果的可能性最大呢?这也就是最大似然估计的核心。白球黑球不知道有多少,取100次有放回,70是白,30黑,那么采取的方法是让这个样本结果出现的可能性最大,也就是使得p^70(1-p)^30值最大,那么我们就可以看成是p的方程,求导即可!50,50。20,80等无数种组合都可以,为什么要70和30呢?因为是已经发生的事情了,就让他作为可能性最大的结果。

3.4 逻辑回归处理多分类标签问题时,一般怎么做?

如果一个样本只对应于一个标签,我们可以假设每个样本属于不同标签的概率服从于几何分布,使用多项逻辑回归( Softmax Regression ) 来进行分类。当存在样本可能居于多个标签的情况时,我们可以训练 k个二分类的逻辑回归分类器。第l个分类器用以区分每个样本是否可以归为第i类,训练该分类器时,需要把标签重新整理为“第 i 类标签” 与“非第i类标签”两类。 遇过这样的办法,我们就解决了每个样本可能拥有多个标签的情况。

4. 朴素贝叶斯模型

4.1 写出全概率公式 & 贝叶斯公式

条件概率:P(A|B)= P(A,B)/ P(B)

P(B|A)= P(A,B)/ P(A)

P(A,B)= P(A|B)*P(B) = P(B|A)*P(A)

贝叶斯公式:P(A|B) = P(B|A)*P(A)/P(B)

全概率公式:

4.2 朴素贝叶斯为什么“朴素naive”?

因为分母对于所有类别为常数,我们只要将分子最大化即可。又因为各特征属性是条件独立的(朴素贝叶斯为什么“朴素”的原因),

4.3 朴素贝叶斯有没有超参可以调?

4.4 朴素贝叶斯的工作流程是怎样的?

对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率,哪个最大,就认为此待分类项属于哪个类别。通俗来说,就好比这么个道理,你在街上看到一个黑人,我问你你猜这哥们哪里来的,你十有八九猜非洲。为什么呢?因为黑人中非洲人的比率最高,当然人家也可能是美洲人或亚洲人,但在没有其它可用信息下,我们会选择条件概率最大的类别,这就是朴素贝叶斯的思想基础。

4.5 朴素贝叶斯对异常值敏感不敏感?

机器学习面试笔试求职必背!八股文(1/5)相关推荐

  1. 2021年九月最新Java面试必背八股文,338道最新大厂架构面试题

    为了帮助每一个想顺利通过架构面试的朋友,我们研究了各个大厂常考的面试题型,涵盖各个大厂高频常考点,整理出这篇「 338道最新大厂常考架构技术面试题 + 详细解答」,带你斩获大厂架构师 Offer! 面 ...

  2. Java面试必背八股文[6]:Redis

    使用 Redis 有哪些好处? 1.速度快,因为数据存在内存中,类似于 HashMap,HashMap 的优势就是查找和操作的时间复杂度都是 O(1) 2.支持丰富数据类型,支持 string,lis ...

  3. Java面试必背八股文[11]:计算机网络

    OSI与TCP/IP各层的结构? 答:OSI分层 (7层):物理层.数据链路层.网络层.传输层.会话层.表示层.应用层. TCP/IP分层(4层):网络接口层. 网际层.运输层. 应用层. 五层协议 ...

  4. Java面试必背八股文[5]:MySQL

    Drop.Delete.TRUNCATE的区别 drop drop直接删掉表: drop语句将表所占用的空间全释放掉. drop语句将删除表的结构被依赖的约束(constrain),触发器(trigg ...

  5. 机器学习面试笔试超详细总结(一)(转载)

    目录 1.判别模型和生成模型 2.最大概率分词 3.中文分词的基本方法 4.CRF(条件随机场)的特点 5.隐马尔可夫模型(HMM)时间复杂度及可以使用的数据集 6.在二分类问题中的评价方案 7.决策 ...

  6. 机器学习面试笔试超详细总结(二)(转载)

    目录 51.概率和信息量的关系 52.数据清理中,缺失值的处理方法 53.统计模式分类问题 54.语言模型0概率问题 55.逻辑回归和多元回归分析的不同 56.关于Word2Vec 57.词向量 58 ...

  7. [面试笔试整理1]:深度学习机器学习面试问题准备(必会)

    此系列三篇文章的原文链接 面试笔试整理1:深度学习机器学习面试问题准备(必会) 1.神经网络基础问题 (1)Backpropagation(要能推倒) 后向传播是在求解损失函数L对参数w求导时候用到的 ...

  8. 程序员求职攻略(《程序员面试笔试宝典》)之面试心得交流?

    "前车之鉴,后事之师",每一个成功的经验都能成为后来师弟师妹.学弟学妹学习的榜样,而每一次失败的经历也能给予后来者血的教训.本章以各大名牌高校.研究所的应届毕业生的亲身求职经历与体 ...

  9. 除了背八股文,Java面试更该这样准备

    我可以这样说,哪怕你背了再多java八股文的答案,过面试也能靠运气,因为很多java面试的答案只限于技术理论说辞.但用我本文给出的方法去准备面试,能在不提升技术的前提下,大大提升你java面试的通过率 ...

  10. [PHP面试题]跳槽面试必背-自己最近5年的整理(三)

    看完这些还怕进不了大厂? [PHP面试题]跳槽面试必背-自己最近5年的整理(一) [PHP面试题]跳槽面试必背-自己最近5年的整理(二) PHP经典面试题集(含答案) 面试12家公司,收获9个offe ...

最新文章

  1. 菜鸟requireJS教程---1、初识requirejs
  2. 谷歌chrome浏览器的源码分析(四)
  3. usg2130 虚拟服务器,usg2130防火墙怎么样设置
  4. 云计算比本地计算机可靠,1-云计算复习题
  5. D3js(六):支持css的tooltips
  6. 用于PC的骁龙1000近似实锤了,高通员工LinkedIn泄露天机
  7. Oracle Share Pool工作原理
  8. 数据库出错提示Duplicate entry * for key *的解决方法
  9. 从零开始学习oracle(2) oracle11g的远程链接和数据库调试
  10. 什么是monitor
  11. vba 冻结窗格_在VBA中进行调试-2A)代码窗格(F7)
  12. 斐讯c 语言面试题,斐讯面试记录—三线程交替打印ABC
  13. 3.Navicat Premium:导入excel文件
  14. 苹果审核2.1解决方案
  15. ubuntu-安装Wine
  16. cad批量打印_CAD批量打印
  17. Codeforces Round #815 (Div. 2)
  18. 金山翻译很方便离线翻译
  19. TPAMI 2022|金字塔池化的骨干网络!南开达摩院联合推出P2T
  20. C练题笔记之:Leetcode-12. 整数转罗马数字

热门文章

  1. 产品人的归宿 · 之 · 创业维艰
  2. 【C++ Builder 11】选择文件夹的三种方式
  3. JAVA基础,输入/输出(I/O)流
  4. 21. 合并两个有序链表 C语言
  5. java wmic_wmic
  6. 常见操作系统体系结构
  7. 微信如何自动搜索精准号码添加好友?导入软件完成自动加人
  8. java tfidf_Hanlp分词实例:Java实现TFIDF算法
  9. 最新版MySQL 8.0.22(Windows 64位)下载安装详细方法
  10. 选择题高分通过系统集成项目管理工程师