服务热线

0530-583766618653002903
网站导航
技术文章
当前位置:首页>>技术文章

高中科教设备机器学习高频面试真题整理

时间:2022-07-12 17:03:30 点击次数:315
 

明天要找助理教授面试了,紧张的一批~为避免自己堕入时间黑洞,记录下自己的学习轨迹呜呜呜┭┮﹏┭┮

参考资料:https://www.dataapplab.com/machine-learning-interview-questions/https://blog.csdn.net/v_july_v/article/details/78121924

1: 什么是偏差(bias)、方差(variable)之间的均衡?

Bias反映的是模型在样本上的输出与真实值之间的误差,即算法本身的拟合能力。Bias 可能会导致模型欠拟合,使其难以具有较高的预测准确性。

Bias-Variance 的分解,本质上是通过在基础数据集中添加偏差、方差和一点由噪声引起的不可约误差,来分解算法上的学习误差。从本质上讲,如果你使模型更复杂并添加更多变量,你将会失去一些 Bias 但获得一些 Variance,这就是我们所说的权衡(tradeoff)。

2:监督学习和非监督学习有什么不同?

监督学习需要train有label的数据,无监督学习不需要明确标记数据。

3: KNN和 k-means 聚类由什么不同?

KNN需要标记点,因此是有监督的学习,而k-means不是,因此是无监督学习。 K均值聚类仅需要一组未标记的点和阈值:算法将采用未标记的点并逐渐学习如何通过计算不同点之间的距离的平均值将它们聚类成组。

(插播:

4:解释一下ROC曲线的原理

ROC曲线是真阳率与各种阈值下的假阳率之间的对比度的图形表示。 它通常用作代表模型灵敏度(真阳性)与跌落之间的平衡或它将触发误报(假阳性)的概率。

5:机器学习项目实战流程

参考资料:

https://github.com/apachecn/hands-on-ml-zh/blob/master/docs/B.%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E9%A1%B9%E7%9B%AE%E6%B8%85%E5%8D%95.mdgithub.com/apachecn/hands-on-ml-zh/blob/master/docs/B.%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E9%A1%B9%E7%9B%AE%E6%B8%85%E5%8D%95.md

6:什么是贝叶斯定理?它在机器学习环境中如何有用?

贝叶斯定理的历时诠释: 根据一种数据D(Data)的内容变化更新概率H(Hypothsis)的方法

我们需要做两件事情:1. 算出各种不同猜测的可能性大小。2. 算出最靠谱的猜测是什么。第一个就是计算特定猜测的后验概率,对于连续的猜测空间则是计算猜测的概率密度函数。第二个则是所谓的模型比较,模型比较如果不考虑先验概率的话就是最大似然方法。

朴素贝叶斯是一种机器学习的思想,而不是一个简单的直接套用的公式。而且在用朴素贝叶斯方式进行分类机器学习时还经常需要使用其他一些辅助的建模手段。朴素贝叶斯在生产生活中作为机器学习手段的场景确实非常多,是一种使用很广泛的方式。

7:为什么我们要称朴素贝叶斯?

尽管 Naive Bayes 具有实际应用,特别是在文本挖掘中,但它被认为是天真的,因为它假设特征的绝对独立性 – 这种情况在现实生活中可能永远不会遇到。

8:L1、L2正则之间有什么不同?

L2正则保留显著减小损失函数方向上的权重,而对于那些对函数值影响不大的权重使其衰减接近于0。相当于加入一个gaussian prior。

L1正则会产生更稀疏的解,即会使得部分权重变为0,达到特征选择的效果。相当于加入了一个laplacean prior。

L2 Norm对大数的惩罚比小数大。实际应用过程中,L1 nrom几乎没有比L2 norm表现好的时候,优先使用L2 norm是比较好的选择。

9:你最喜欢的算法是什么?把它解释一下。

10:第一类误差和第二类误差有什么区别?

第一类误差指的是假正率,第二类指的是假负率。举个例子:第一类误差,你误判一个男的他怀孕了。第二类误差,你误判了一位其实已经怀孕的女子没怀孕。

11:什么是傅立叶变换?

傅立叶变换是将一般函数分解成对称函数叠加的一般方法。傅立叶变换找到一组循环速度、振幅和相位,以匹配任何时间信号。傅立叶变换将信号从时间域转换为频率域-这是从音频信号或其他时间序列(如传感器数据)中提取特征的一种非常常见的方法。

12:概率和似然有什么区别?

概率描述了已知参数时的随机变量的输出结果;似然则用来描述已知随机变量输出结果时,未知参数的可能取值。例如,对于一枚正反对称的硬币上抛十次这种事件,我们可以问硬币落地时十次都是正面向上的概率是多少;而对于一枚硬币上抛十次,我们则可以问,这枚硬币正反面对称的似然程度是多少。

概率(密度)表达给定θ下样本随机向量X=x的可能性,而似然表达了给定样本X=x下参数θ1(相对于另外的参数θ2)为真实值的可能性。我们总是对随机变量的取值谈概率,而在非贝叶斯统计的角度下,参数是一个实数而非随机变量,所以我们一般不谈一个参数的概率,而说似然。

13:什么是深度学习,它与机器学习算法之间有什么联系?

深度学习是与神经网络有关的机器学习的一个子集:如何使用反向传播和神经科学中的某些原理来更精确地建模大量未标记或半结构化数据。从这个意义上说,深度学习是一种无监督的学习算法,它通过使用神经网络来学习数据的表示。

14:生成模型与判别模型有什么区别?

15:交叉检验如何用在时间序列数据上?

与标准的k-folds 交叉检验不同,数据不是随机分布的,而是具有时序性的。如果模式出现在后期,模型仍然需要选择先前时间的数据,尽管前期对模式无影响。我们可以如下这么做:

fold1:training[1], test[2]

fold2:training[1 2], test[3]

fold3:training[1 2 3], test[4]

fold4:training[1 2 3 4], test[5]

fold5:training[1 2 3 4 5], test[6]

16:如何对决策树进行剪枝?

剪枝是在决策树中,为了降低模型的复杂度,提高决策树模型的预测精度,去除预测能力较弱的分支后所发生的现象,可以自下而上和自上而下进行,方法包括减少错误修剪和成本复杂度修剪。

减少错误修剪可以:替换每个节点。如果不降低预测精度,则保持修剪。虽然很简单,但这种启发式方法实际上非常接近于一种可以最大限度地优化准确性的方法。

17:模型的精度和模型的性能哪个对你更重要?

这一切都与模型的准确性仅仅是模型性能的一个子集有关(因为还有召回率等等),在这一点上,有时是一个误导。例如,如果你想在一个拥有数百万样本的海量数据集中检测欺诈行为,那么一个更准确的模型很可能会预测,如果只有极少数的案例是欺诈行为,那么根本就不会有欺诈行为。然而,对于预测模型来说,这是无用的——一个旨在发现声称根本没有欺诈的欺诈的模型!这样的问题可以帮助您证明您理解模型的准确性并不是模型性能的全部。

18:什么是F1数,怎么使用它?

F1分数是衡量模型性能的指标。它是模型精度和召回的加权平均值,结果趋向于1是最好的,结果趋向于0是最差的。你可以在分类测试中使用它,而真正的否定并不重要。

19:如何处理一个不平衡的数据集?

① 从数据的角度出发,主要方法为采样,分为欠采样和过采样以及对应的一些改进方法。

② 从算法的角度出发,考虑不同误分类情况代价的差异性对算法进行优化,主要是基于代价敏感学习算法(Cost-Sensitive Learning),代表的算法有adacost。

另外可以将不平衡数据集的问题考虑为一分类(One Class Learning)或者异常检测(Novelty Detection)问题,代表的算法有One-class SVM。

从数据角度出发的不平衡数据集的处理方法对应的python库(imblearn)

不平衡数据的学习即需要在分布不均匀的数据集中学习到有用的信息。

原文链接:https://blog.csdn.net/asialee_bird/article/details/83714612

20:激活函数的作用。常用激活函数的优缺点比较?

激活函数是用来加入非线性因素的,提高神经网络对模型的表达能力,解决线性模型所不能解决的问题。(深层神经网络表达能力就更加强大(不再是输入的线性组合,而是几乎可以逼近任意函数)。)

常用激活函数的优缺点:https://blog.csdn.net/tyhj_sf/article/details/79932893

21:举个例子,说明使用集成学习会很有用。

集成学习通过组合一些基学习算法来优化得到更好的预测性能,通常可以防止模型的过拟合使模型更具有鲁棒性。

(一些集成学习的例子,如bagging、boosting、stacking等,了解他们是如何增加模型预测能力的。)

22:避免过拟合

1. 保持模型尽可能地简单:通过考量较少的变量和参数来减少方差,达到数据中消除部分噪音的效果。

2. 使用交叉检验的手段如:k-folds cross-validation。

3. 使用正则化的技术如:LASSO方法来惩罚模型中可能导致过拟合的参数。

23:如何评估你的机器学习模型的有效性?

首先你需要将数据分成训练集和测试集,或者使用给交叉验证方法分割。然后你需要选择度量模型表现的metrics,如F1数、准确率、混淆矩阵等。更重要的是,根据实际情况你需要理解模型度量的轻微差别,以便于选择正确的度量标准。

24:如何评估一个LR model?

1.混淆矩阵 Confusion Matrix

1.1 准确率vs 错误率: accuracy = (TP+TN)/total error tate = (FP+FN)/total1.2 召回率(覆盖率,正确预测的正样本/实际正样本) recall (sensitivity) = TP/AP1.3 负例覆盖率 specificity = TN/AN

2.ROC 和 AUC(AUC, Area Under the ROC Curve)横轴 (1- specificity) = 1 - TN/AN = FP/AP纵轴 recall (sensitivity) = TP/AP最佳筛查界值(cut-off值)的确定,一般选择似然比最大的阈值

3.Lift(提升)和Gain(增益) K-S图基尼系数

25:什么是核技巧,有什么用处?

核技巧使用核函数,确保在高维空间不需要明确计算点的坐标,而是计算数据特征空间中的内积。这使其具有一个很有用的属性:更容易的计算高维空间中点的坐标。许多算法都可以表示称这样的内积形式,使用核技巧可以保证低维数据在高维空间中运用算法进行计算。

26:如何处理数据集中丢失或损坏的数据?

您可以在数据集中找到丢失/损坏的数据,然后删除这些行或列,或者决定用另一个值替换它们。在pandas中,有两种非常有用的方法:isNull()和dropna(),这两种方法将帮助您查找缺少或损坏数据的数据列,并删除这些值。如果要用占位符值(例如0)填充无效值,可以使用fillna()方法。

27:简述反向传播的过程?

做一个前馈运算;将模型输出与期望输出进行比较;计算误差;向后运行前馈运算(反向传播),将误差分散到每个权重;以此来更新权重,得到一个更好的模型;持续这些步骤知道得到一个满意的模型。

28:选择一个算法。为并行实现编写psuedo代码。

这类问题展示了您并行思考的能力,以及如何在处理大数据的编程实现中处理并发性。请看一下伪代码框架(如peril-L)和可视化工具(如Web序列图),以帮助您展示编写反映并行性的代码的能力。

29:链表和数组之间有什么区别?

数组是有序的对象集合。 链表是一系列带有指针的对象,指示如何按顺序处理它们。 与链表不同,数组假定每个元素具有相同的大小。 链表可以更容易地有机增长:必须预先定义或重新定义阵列以进行有机增长。 改组链接列表涉及改变哪些点指向哪里 – 同时,改组数组更复杂并占用更多内存。

30:描述哈希表。

哈希表是一种产生关联数组的数据结构。 通过使用散列函数将键映射到某些值。 它们通常用于数据库索引等任务。

31:你使用哪些数据可视化库? 你对最佳数据可视化工具有何看法?

这里重要的是定义您对如何在工具方面正确可视化数据和个人偏好的看法。 流行的工具包括R的ggplot,Python的seaborn和matplotlib,以及http://Plot.ly和Tableau等工具。

32、33、34、35、36、37:略

39:您通常在哪里寻找数据集?

像这样的机器学习面试问题试图让你了解机器学习兴趣的核心。 真正热衷于机器学习的人将会独自完成侧面项目,并且很清楚那些伟大的数据集是什么。 如果您遗失任何内容,请查看 Quandl 获取的经济和财务数据,以及 Kaggle 的数据集集合,以获取其他优秀列表。

40:你认为谷歌是如何为自动驾驶汽车提供培训数据的?

像这样的机器学习面试问题确实测试了你对不同机器学习方法的知识,如果你不知道答案,你的创造力。谷歌目前正在使用 recaptcha 来获取店面和交通标志上的标签数据。他们还建立在由Sebastian Thrun在谷歌(Googlex)收集的培训数据的基础上 — 其中一些数据是由他在沙漠沙丘上驾驶马车的研究生获得的!

41:你将如何模拟阿尔法戈在围棋中击败李世乭的方法?

在五个系列赛中,阿尔法戈击败了围棋中最优秀的人类选手之一李世石,这是机器学习和深度学习史上一个真正具有开创性的事件。上面的 Nature 论文描述了这是如何通过蒙特卡洛树搜索(Monte Carlo Tree Search)和深度神经网络(Deep Neural Networks)来实现的,这些神经网络经过有监督的学习、人类专家游戏和加强自玩游戏的学习。

42.请简要介绍下SVM

支持向量机SVM是一个面向数据的分类算法,它的目标是为确定一个分类超平面,从而将不同的数据分隔开。支持向量机通俗导论

43.说说你知道的核函数

线性核

这实际上就是原始空间中的内积。这个核存在的主要目的是使得映射后空间中的问题和映射前空间中的问题两者在形式上统一起来了(意思是说,咱们有的时候,写代码,或写公式的时候,只要写个模板或通用表达式,然后再代入不同的核,便可以了,于此,便在形式上统一了起来,不用再分别写一个线性的,和一个非线性的)。

44.KNN中的K如何选取的?

如果选择较小的K值,就相当于用较小的领域中的训练实例进行预测,学习近似误差会减小,只有与输入实例较近或相似的训练实例才会对预测结果起作用,与此同时带来的问题是学习的估计误差会增大,换句话说,K值的减小就意味着整体模型变得复杂,容易发生过拟合;

如果选择较大的K值,就相当于用较大领域中的训练实例进行预测,其优点是可以减少学习的估计误差,但缺点是学习的近似误差会增大。这时候,与输入实例较远(不相似的)训练实例也会对预测器作用,使预测发生错误,且K值的增大就意味着整体的模型变得简单。

K=N,则完全不足取,因为此时无论输入实例是什么,都只是简单的预测它属于在训练实例中最多的累,模型过于简单,忽略了训练实例中大量有用信息。

在实际应用中,K值一般取一个比较小的数值,例如采用交叉验证法来选择最优的K值。

45.机器学习中,为何要经常对数据做归一化。

1)归一化后加快了梯度下降求最优解的速度;

2)归一化有可能提高精度。

一些分类器需要计算样本之间的距离(如欧氏距离),例如KNN。如果一个特征值域范围非常大,那么距离计算就主要取决于这个特征,从而与实际情况相悖(比如这时实际情况是值域范围小的特征更重要)。

46.归一化的类型

1)线性归一化

这种归一化方法比较适用在数值比较集中的情况。这种方法有个缺陷,如果max和min不稳定,很容易使得归一化结果不稳定,使得后续使用效果也不稳定。实际使用中可以用经验常量值来替代max和min。

2)标准差标准化

3)非线性归一化

经常用在数据分化比较大的场景,有些数值很大,有些很小。通过一些数学函数,将原始值进行映射。该方法包括 log、指数,正切等。需要根据数据分布的情况,决定非线性函数的曲线,比如log(V, 2)还是log(V, 10)等。

Copyright © 2020-2023 山东行知科教仪器设备有限公司 版权所有  备案号:鲁ICP备16020776号-2

地址:高新区万福办事处吴拐行政村 电话:0530-5837666 邮箱:2586826320@qq.com

关注我们

服务热线

0530-5837666

扫一扫,关注我们