推荐收藏!40 道数据挖掘面试真题大放送!

文章目录

    • 1、在 PCA 中为什么要做正交变换?
    • 2、给定一个数据集,这个数据集有缺失值,且这些缺失值分布在离中值有 1 个标准偏差的范围内。百分之多少的数据不会受到影响?为什么?
    • 3、给你一个癌症检测的数据集,你已经建好了分类模型,取得了96%的精度。如果不满意你的模型性能的话,你可以做些什么呢?
    • 4、对于不平衡数据集,有什么应对方案?
    • 5、什么是 K-fold 交叉验证?
    • 6、简述准确率(accuracy)、召回率(Recall)统计量的含义?
    • 7、简述 F 值(F-Measure)统计量的含义?
    • 8、简述 ROC 曲线统计量的含义?
    • 9、如何画出一个 ROC 曲线?
    • 10、简述 PR 曲线统计量的含义?
    • 11、什么是 SMOTE 算法?
    • 12、简述 G-mean 统计量的含义?
    • 13、简述 AUC 曲线统计量的含义?
    • 14、SMOTE 算法有什么缺点?如何改进?
    • 15、简述什么是调和平均数并指出其应用及性质?
    • 16、EasyEnsemble 算法?
    • 17、什么是凸包?
    • 18、BalanceCascad 算法和 EasyEnsemble 有什么异同?
    • 19、你会在时间序列数据集上使用什么交叉验证技术?是用 k 倍或LOOCV?
    • 20、常见的过采样方法有哪些以用来应对样本不平衡问题?
    • 21、给你一个缺失值多于 30%的数据集?比方说,在 50 个变量中,有 8 个变量的缺失值都多于 30%。你对此如何处理?
    • 22、什么是协同过滤算法?
    • 23、当在解决一个分类问题时,出于验证的目的,你已经将训练集随机抽样地分成训练集和验证集。你对你的模型能在未看见的数据上有好的表现非常有信心,因为你的验证精度高。但是,在得到很差的精度后,你大失所望。什么地方出了错?
    • 24、在 k-means 或 kNN,我们是用欧氏距离来计算最近的邻居之间的距离。为什么不用曼哈顿距离?
    • 25、考虑到机器学习有这么多算法,给定一个数据集,你如何决定使用哪一个算法?
    • 26、什么时候正则化在机器学习中是有必要的?
    • 27、考虑到机器学习有这么多算法,给定一个数据集,你如何决定使用哪一个算法?
    • 28、OLS 是用于线性回归,最大似然是用于逻辑回归。请解释以上描述。
    • 29、一个有 1000 列和 1 百万行的训练数据集。这个数据集是基于分类问题的。你来降低该数据集的维度以减少模型计算时间。你的机器内存有限,你会怎么做?(你可以自由做各种实际操作假设)
    • 30、KNN 中的 K 是如何选取的?
    • 31、防止过拟合的方法有哪些?
    • 32、机器学习中为何要经常对数据做归一化?
    • 33、什么是欠采样和过采样?
    • 34、不平衡数据集处理中基于数据集的应对方案有哪些?
    • 35、二分类问题如何转化为一分类问题?
    • 36、如何通过增加惩罚项来提高稀有数据的预测准确率?
    • 37、L1 和 L2 有什么区别?
    • 38、CNN 最成功的应用是在 CV,那为什么 NLP 和 Speech 的很多问题也可以用 CNN 解出来?为什么 AlphaGo 里也用了 CNN?这几个不相关的问题的相似性在哪里?CNN 通过什么手段抓住了这个共性?
    • 39、实现对比 LSTM 结构推导,为什么比 RNN 好?
    • 40、请简要说说 EM 算法?
    • 技术交流

在上一篇文章中,我们梳理了数据分析面试题:推荐收藏!48道数据分析师高频面试题汇总!

今天我给大家梳理数据挖掘工程师常考的面试题,找相关岗位的同学一定要码住认真看。

想了解最新的面试动态、最新高频考点、技术交流的同学,可以文末加入我们

1、在 PCA 中为什么要做正交变换?

PCA 的思想是将 n 维特征映射到 k 维上(k

2、给定一个数据集,这个数据集有缺失值,且这些缺失值分布在离中值有 1 个标准偏差的范围内。百分之多少的数据不会受到影响?为什么?

由于数据分布在中位数附近,先假设这是一个正态分布。在一个正态分布中,约有 68%的数据位于跟平均数(或众数、中位数)1 个标准差范围内的,那样剩下的约 32%的数据是不受影响的。因此,约有 32%的数据将不受到缺失值的影响。

3、给你一个癌症检测的数据集,你已经建好了分类模型,取得了96%的精度。如果不满意你的模型性能的话,你可以做些什么呢?

推荐收藏!40 道数据挖掘面试真题大放送!_第1张图片

癌症检测结果是不平衡数据,在不平衡数据集中,精度不应该被用来作为衡量模型的标准,因为 96%(按给定的)可能只有正确预测多数分类,但我们感兴趣是那些少数分类(4%),是那些被诊断出癌症的人。

因此,为了评价模型的性能,应该用灵敏度(真阳性率),特异性(真阴性率),F 值用来确定这个分类器的“聪明”程度。如果在那 4%的数据上表现不好,我们可以采取以下步骤:

1.使用欠采样、过采样或 SMOTE 让数据平衡。

2.通过概率验证和利用 AUC-ROC 曲线找到最佳阀值来调整预测阀值。

3.给分类分配权重,那样较少的分类获得较大的权重。

4.使用异常检测。

4、对于不平衡数据集,有什么应对方案?

即数据集中,每个类别下的样本数目相差很大。例如,在一个二分类问题中,共有 100 个样本(100 行数据,每一行数据为一个样本的表征),其中 80 个样本属于 class 1,其余的 20 个样本属于 class 2,class 1:class2=80:20=4:1,这便属于类别不均衡。当然,类别不均衡问题同样会发生在多分类任务中。

解决不平衡分类问题的策略可以分为两大类:一类是从训练集入手 , 通过改变训练集样本分布,降低不平衡程度;另一类是从学习算法入手 , 根据算法在解决不平衡问题时的缺陷 , 适当地修改算法使之适应不平衡分类问题。平衡训练集的方法主要有训练集重采样 (re-sampling)方法和训练集划分方法。学习算法层面的策略包括分类器集成 、代价敏感学习和特征选择方法等。

推荐收藏!40 道数据挖掘面试真题大放送!_第2张图片

5、什么是 K-fold 交叉验证?

K-fold 交叉验证就是把原始数据随机分成 K 个部分,在这 K 个部分中选择一个作为测试数据,剩余的 K-1 个作为训练数据。交叉验证的过程实际上是将实验重复做 K 次,每次实验都从 K 个部分中选择一个不同的部分作为测试数据,剩余的数据作为训练数据进行实验,最后把得到的 K 个实验结果平均,用于评价模型的泛化能力,从而进行模型选择。

6、简述准确率(accuracy)、召回率(Recall)统计量的含义?

图片

召回率(Recall)是覆盖面的度量,度量有多个正例被分为正例的比例(查全率):

图片

准确率(accuracy)有时候准确率高并不能代表一个算法就好:

图片

精确率(precision)表示被分为正例的示例中实际为正例的比例(查准率)。

7、简述 F 值(F-Measure)统计量的含义?

F-Measure 是 Precision 和 Recall 加权调和平均:

图片

若参数 a=1 时即 F1-Measure,是综合这二者指标的评估指标,用于综合反映整体的指标。当然希望检索结果 Precision 越高越好,同时 Recall 也越高越好,但事实上这两者在某些情况下有矛盾的。比如极端情况下,我们只搜索出了一个结果,且是准确的,那么 Precision 就是 100%,但是 Recall 就很低;而如果我们把所有结果都返回,那么比如 Recall 是 100%,但是 Precision 就会很低。因此在不同的场合中需要自己判断希望 Precision 比较高或是 Recall 比较高。如果是做实验研究,可以绘制 Precision-Recall 曲线来帮助分析。

例如有一个池塘里面共有 1000 条鱼,含 100 条鲫鱼。机器学习分类系统将这 1000 条鱼全部分类为“不是鲫鱼”,那么准确率也有 90%(显然这样的分类系统是失败的),然而查全率为 0%,因为没有鲫鱼样本被分对。这个例子显示出一个成功的分类系统必须同时考虑 Precision 和 Recall,尤其是面对一个不平衡分类问题。

8、简述 ROC 曲线统计量的含义?

ROC 曲线 X 轴为 false positive rate(FPR),Y 轴为 true positive rate(TPR):

推荐收藏!40 道数据挖掘面试真题大放送!_第3张图片

考虑 ROC 曲线图中的四个点和一条线。第一个点(0,1),即 FPR=0, TPR=1,这意味着 FN(false negative)=0,并且 FP(false positive)=0。Wow,这是一个完美的分类器,它将所有的样本都正确分类。第二个点,(1,0),即 FPR=1,TPR=0,类似地分析可以发现这是一个最糟糕的分类器,因为它成功避开了所有的正确答案。第三个点,(0,0),即 FPR=TPR=0,即 FP(false positive)=TP( true positive ) =0 ,可以发现该分类器预测所有的样本都为负样本(negative)。类似的,第四个点(1,1),分类器实际上预测所有的样本都为正样本。经过以上的分析,我们可以断言,ROC 曲线越接近左上角,该分类器的性能越好。

考虑 ROC 曲线图中的虚线 y=x 上的点。这条对角线上的点其实表示的是一个采用随机猜测策略的分类器的结果,例如(0.5,0.5),表示该分类器随机对于一半的样本猜测其为正样本,另外一半的样本为负样本。

当测试集中的正负样本的分布变化的时候,ROC 曲线能够保持不变。在实际的数据集中经常会出现类不平衡(class imbalance)现象,即负样本比正样本多很多(或者相反),而且测试数据中的正负样本的分布也可能随着时间变化。下图是 ROC 曲线和 Precision-Recall 曲线的对比:

推荐收藏!40 道数据挖掘面试真题大放送!_第4张图片

(a)和©为 ROC 曲线,(b)和(d)为 Precision-Recall 曲线。(a)和(b)展示的是分类其在原始测试集(正负样本分布平衡)的结果,©和(d)是将测试集中负样本的数量增加到原来的 10 倍后,分类器的结果。可以明显的看出,ROC 曲线基本保持原貌,而 Precision-Recall 曲线则变化较大。

9、如何画出一个 ROC 曲线?

In signal detection theory, a receiver operating characteristic (ROC), or simply ROC curve, is a graphical plot which illustrates the performance of a binary classifier system as its discrimination threshold is varied。20 个测试样本,“Class”一栏表示每个测试样本真正的标签,p 表示正样本,n表示负样本),“Score”表示每个测试样本属于正样本的概率。

推荐收藏!40 道数据挖掘面试真题大放送!_第5张图片

我们从高到低,依次将“Score”值作为阈值 threshold,当测试样本属于正样本的概率大于或等于这个 threshold 时,我们认为它为正样本,否则为负样本。举例来说,对于图中的第 4 个样本,其“Score”值为 0.6,那么样本 1,2,3, 4 都被认为是正样本,因为它们的“Score”值都大于等于 0.6,而其他样本则都认为是负样本。每次选取一个不同的 threshold,我们就可以得到一组 FPR 和 TPR,即 ROC 曲线上的一点。这样一来,我们一共得到了 20 组 FPR 和 TPR 的值,将它们画在 ROC 曲线的结果如下图:

推荐收藏!40 道数据挖掘面试真题大放送!_第6张图片

当我们将 threshold 设置为 1 和 0 时,分别可以得到 ROC 曲线上的(0,0)和(1,1)两个点。将这些(FPR,TPR)对连接起来,就得到了 ROC 曲线。当 threshold 取值越多, ROC 曲线越平滑。

其实,我们并不一定要得到每个测试样本是正样本的概率值,只要得到这个分类器对该测试样本的“评分值”即可(评分值并不一定在(0,1)区间)。评分越高,表示分类器越肯定地认为这个测试样本是正样本,而且同时使用各个评分值作为threshold。

10、简述 PR 曲线统计量的含义?

推荐收藏!40 道数据挖掘面试真题大放送!_第7张图片

注:ROC 与 PR 类似,只是横坐标与纵坐标换成成了 FPR 与 TPR。

11、什么是 SMOTE 算法?

Synthetic Minority Oversampling Technique 即合成少数类过采样技术:

1,对于少数类中每一个样本 x,以欧氏距离为标准计算它到少数类样本集 Smin 中所有样本的距离,得到其 k 近邻。

2,根据样本不平衡比例设置一个采样比例以确定采样倍率 N,对于每一个少数类样本 x,从其 k 近邻中随机选择若干个样本,假设选择的近邻为 Xn。

3,对于每一个随机选出的近邻 Xn,分别与原样本按照如下的公式构建新的样本:

推荐收藏!40 道数据挖掘面试真题大放送!_第8张图片

推荐收藏!40 道数据挖掘面试真题大放送!_第9张图片

对于新产生的青色数据点与其他非青色样本点距离最近的点,构成一对 Tomek link,如图框。

定义规则:

以新产生点为中心,Tomek link 的距离为范围半径,去框定一个空间,空间内的少数类的个数/多数类的个数<最低阀值,认为新产生点为“垃圾点”,应该剔除或者再次进行 smote 训练;空间内的少数类的个数/多数类的个数>=最低阀值的时候,在进行保留并纳入 smote 训练的初始少类样本集合中去抽样所以,剔除左侧的青色新增点,只保留右边的新增数据如下:

推荐收藏!40 道数据挖掘面试真题大放送!_第10张图片

12、简述 G-mean 统计量的含义?

推荐收藏!40 道数据挖掘面试真题大放送!_第11张图片

13、简述 AUC 曲线统计量的含义?

AUC(Area Under Curve)被定义为 ROC 曲线下的面积,显然这个面积的数值不会大于 1。又由于 ROC 曲线一般都处于 y=x 这条直线的上方,所以 AUC 的取值范围在 0.5 和 1 之间。使用 AUC 值作为评价标准是因为很多时候 ROC 曲线并不能清晰的说明哪个分类器的效果更好,而作为一个数值,对应 AUC 更大的分类器效果更好。

首先 AUC 值是一个概率值,当你随机挑选一个正样本以及一个负样本,当前的分 类算法根据计算得到的 Score 值将这个正样本排在负样本前面的概率就是 AUC 值。当然,AUC 值越大,当前的分类算法越有可能将正样本排在负样本前面,即 能够更好的分类。

显然 A 点为最优点,ROC 曲线越靠近 A 点代表模型表现越好,曲线下面积(Area Under Curve, AUC)越大,AUC 是衡量模型表现好坏的一个重要指标。

推荐收藏!40 道数据挖掘面试真题大放送!_第12张图片

14、SMOTE 算法有什么缺点?如何改进?

由于对每个少数类样本都生成新样本,因此容易发生生成样本重叠(Overlapping)的问题,为了解决 SMOTE 算法的这一缺点提出一些改进算法,其中的一种是 Borderline-SMOTE 算法,该方法把少数类样本分为安全样本、边界样本和噪声样本 3类,并对边界样本进行近邻插值,考虑到了少数类内部的分布不均的现象,但对边界样本之间的差异未做考虑。

15、简述什么是调和平均数并指出其应用及性质?

调和平均的哲学意义是在一个过程中有多少条平行的路径,经过这些平行的路径后,等效的结果就是调和平均。

电子散射:电子在导体里流动并不是一帆风顺的,他会被杂质散射,晶格散射,缺陷散射,这就是一个电子上路后的三种平行的路径,最后电子迁移率可以用调和平均等效,即 Matthiessen’s Rule。

电子空穴复合:当材料被光照射后,电子吸收光子能量,从价带激发到导带,这电子空穴也有两条路径复合,辐射复合和非辐射复合:

推荐收藏!40 道数据挖掘面试真题大放送!_第13张图片

①调和平均数易受极端值的影响,且受极小值的影响比受极大值的影响更大。

②只要有一个标志值为 0,就不能计算调和平均数。

16、EasyEnsemble 算法?

记多数类的样本集合为 L,少数类的样本集合为 S,用 r=|S|/|L|表示少数类与多数类的比例。集成方法(Ensemble)是一个最简单的集成方法,即不断从多数类中抽取样本,使得每个模型的多数类样本数量和少数类样本数量都相同,最后将这些模型集成起来。

推荐收藏!40 道数据挖掘面试真题大放送!_第14张图片

推荐收藏!40 道数据挖掘面试真题大放送!_第15张图片

17、什么是凸包?

在多维空間中有一群散布各处的点,「凸包」是包覆这群点的所有外壳当中,表面积容积最小的一个外壳,而最小的外壳一定是凸的。

推荐收藏!40 道数据挖掘面试真题大放送!_第16张图片

「凸」的定义是:圆形內任意亮点的连线不会经过圆形外部。「凸」並不是指表面呈弧状隆起,事实上凸包是由许多平坦表面组成的。

推荐收藏!40 道数据挖掘面试真题大放送!_第17张图片

当数据是线性可分的,凸包就表示两个组数据点的外边界。一旦凸包建立,我们得到的最大间隔超平面(MMH)作为两个凸包之间的垂直平分线。MMH 是能够最大限度地分开两个组的线。

18、BalanceCascad 算法和 EasyEnsemble 有什么异同?

这个方法跟 EasyEnsemble 有点像,但不同的是,每次训练 adaboost 后都会扔掉已被正确分类的样本,经过不断地扔掉样本后,数据就会逐渐平衡。

19、你会在时间序列数据集上使用什么交叉验证技术?是用 k 倍或LOOCV?

都不是。对于时间序列问题,k 倍可能会很麻烦,因为第 4 年或第 5 年的一些模式有可能跟第 3 年的不同,而对数据集的重复采样会将分离这些趋势,我们可能最终是对过去几年的验证,这就不对了。相反,我们可以采用如下所示的 5 倍正向链接策略(1,2,3,4,5,6 代表年份):

fold 1 : training [1], test [2]

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

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

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

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

20、常见的过采样方法有哪些以用来应对样本不平衡问题?

我们可以通过欠抽样来减少多数类样本的数量从而达到平衡的目的,同样我们也可以通过,过抽样来增加少数类样本的数量,从而达到平衡的目的。

Random oversampling of minority class:通过有放回的抽样,不断的从少数类的抽取样本,不过要注意的是这个方法很容易会导致过拟合。我们通过调整抽样的数量可以控制使得 r=0.5。

21、给你一个缺失值多于 30%的数据集?比方说,在 50 个变量中,有 8 个变量的缺失值都多于 30%。你对此如何处理?

1.把缺失值分成单独的一类,这些缺失值说不定会包含一些趋势信息。

2.我们可以毫无顾忌地删除它们。

3.或者,我们可以用目标变量来检查它们的分布,如果发现任何模式,我们将保留那些缺失值并给它们一个新的分类,同时删除其他缺失值。

22、什么是协同过滤算法?

协同过滤 (Collaborative Filtering, 简称 CF)协同过滤一般是在海量的用户中发掘出一小部分和你品位比较类似的,在协同过滤中,这些用户成为邻居,然后根据他们喜欢的其他东西组织成一个排序的目录作为推荐给你,分 User CF 和 Item CF 两种。

23、当在解决一个分类问题时,出于验证的目的,你已经将训练集随机抽样地分成训练集和验证集。你对你的模型能在未看见的数据上有好的表现非常有信心,因为你的验证精度高。但是,在得到很差的精度后,你大失所望。什么地方出了错?

在做分类问题时,应该使用分层抽样而不是随机抽样。随机抽样不考虑目标类别的比例。相反,分层抽样有助于保持目标变量在所得分布样本中的分布。

24、在 k-means 或 kNN,我们是用欧氏距离来计算最近的邻居之间的距离。为什么不用曼哈顿距离?

我们不用曼哈顿距离,因为它只计算水平或垂直距离,有维度的限制。另一方面,欧式距离可用于任何空间的距离计算问题。因为,数据点可以存在于任何空间,欧氏距离是更可行的选择。例如:想象一下国际象棋棋盘,象或车所做的移动是由曼哈顿距离计算的,因为它们是在各自的水平和垂直方向的运动。

25、考虑到机器学习有这么多算法,给定一个数据集,你如何决定使用哪一个算法?

机器学习算法的选择完全取决于数据的类型。如果给定的一个数据集是线性的,线性回归是最好的选择。如果数据是图像或者音频,那么神经网络可以构建一个稳健的模型。如果该数据是非线性互相作用的的,可以用 boosting 或 bagging 算法。

如果业务需求是要构建一个可以部署的模型,我们可以用回归或决策树模型(容易解释和说明),而不是黑盒算法如 SVM,GBM 等。

26、什么时候正则化在机器学习中是有必要的?

当模型过度拟合或者欠拟合的时候,正则化是有必要的。这个技术引入了一个成本项,用于带来目标函数的更多特征。因此,正则化是将许多变量的系数推向零,由此而降低成本项。这有助于降低模型的复杂度,使该模型可以在预测上(泛化)变得更好。

27、考虑到机器学习有这么多算法,给定一个数据集,你如何决定使用哪一个算法?

从数学的角度来看,任何模型出现的误差可以分为三个部分。以下是这三个部分:

推荐收藏!40 道数据挖掘面试真题大放送!_第18张图片

偏差误差在量化平均水平之上预测值跟实际值相差多远时有用。高偏差误差意味着我们的模型表现不太好,因为没有抓到重要的趋势。

另一方面,方差量化了在同一个观察上进行的预测是如何彼此不同的。高方差模型会过度拟合你的训练集,而在训练集以外的数据上表现很差。

28、OLS 是用于线性回归,最大似然是用于逻辑回归。请解释以上描述。

OLS 和最大似然是使用各自的回归方法来逼近未知参数(系数)值的方法。简单地说,普通最小二乘法(OLS)是线性回归中使用的方法,它是在实际值和预测值相差最小的情况下而得到这个参数的估计。最大似然性有助于选择使参数最可能产生观测数据的可能性最大化的参数值。

29、一个有 1000 列和 1 百万行的训练数据集。这个数据集是基于分类问题的。你来降低该数据集的维度以减少模型计算时间。你的机器内存有限,你会怎么做?(你可以自由做各种实际操作假设)

1.由于我们的 RAM 很小,首先要关闭机器上正在运行的其他程序,包括网页浏览器,以确保大部分内存可以使用。

2.我们可以随机采样数据集。这意味着,我们可以创建一个较小的数据集,比如有 1000 个变量和 30 万行,然后做计算。

3.为了降低维度,我们可以把数值变量和分类变量分开,同时删掉相关联的变量。对于数值变量,我们将使用相关性分析。对于分类变量,我们可以用卡方检验。

4.另外我们还可以使用 PCA(主成分分析),并挑选可以解释在数据集中有最大偏差的成分。

5.利用在线学习算法,如 VowpalWabbit(在 Python 中可用)是一个可能的选择。

6.利用 Stochastic GradientDescent(随机梯度下降)法建立线性模型也很有帮助。

7.我们也可以用我们对业务的理解来估计各预测变量对响应变量的影响大小。但是,这是一个主观的方法,如果没有找出有用的预测变量可能会导致信息的显著丢失。

注意:对于第 4 点和第 5 点,请务必阅读有关在线学习算法和随机梯度下降法的内容。这些是高阶方法。

30、KNN 中的 K 是如何选取的?

如李航博士的一书「统计学习方法」上所说:

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

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

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

在实际应用中,K 值一般取一个比较小的数值,例如采用交叉验证法(简单来说,就是一部分样本做训练集,一部分做测试集)来选择最优的 K 值。

31、防止过拟合的方法有哪些?

过拟合的原因是算法的学习能力过强;一些假设条件(如样本独立同分布)可能是不成立的;训练样本过少不能对整个空间进行分布估计。处理方法有:

a. 早停止,如在训练中多次迭代后发现模型性能没有显著提高就停止训练 ;

b. 数据集扩增,原有数据增加、原有数据加随机噪声、重采样;

c. 正则化 d.交叉验证 e.特征选择/特征降维。

32、机器学习中为何要经常对数据做归一化?

维基百科给出的解释:1)归一化后加快了梯度下降求最优解的速度;2)归一化有可能提高精度。

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

如下图所示,蓝色的圈圈图代表的是两个特征的等高线。其中左图两个特征 X1 和 X2 的区间相差非常大,X1 区间是[0,2000],X2 区间是[1,5],其所形成的等高线非常尖。当使用梯度下降法寻求最优解时,很有可能走“之字型”路线(垂直等高线走),从而导致需要迭代很多次才能收敛;而右图对两个原始特征进行了归一化,其对应的等高线显得很圆,在梯度下降进行求解时能较快的收敛。因此如果机器学习模型使用梯度下降法求最优解时,归一化往往非常有必要,否则很难收敛甚至不能收敛。

推荐收藏!40 道数据挖掘面试真题大放送!_第19张图片

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

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

33、什么是欠采样和过采样?

使用不同的数据集。有两种方法使不平衡的数据集来建立一个平衡的数据集:欠采样和过采样。欠采样是通过减少丰富类的大小来平衡数据集,当数据量足够时就该使用此方法。通过保存所有稀有类样本,并在丰富类别中随机选择与稀有类别样本相等数量的样本,可以检索平衡的新数据集以进一步建模。当数据量不足时就应该使用过采样,它尝试通过增加稀有样本的数量来平衡数据集,而不是去除丰富类别的样本的数量。通过使用重复、自举或合成少数类过采样等方法(SMOTE)来生成新的稀有样品。

欠采样和过采样这两种方法相比而言,都没有绝对的优势。这两种方法的应用取决于它适用的用例和数据集本身。另外将过采样和欠采样结合起来使用也是成功的。

34、不平衡数据集处理中基于数据集的应对方案有哪些?

Edited Nearest Neighbor (ENN):将那些 L 类的样本,如果他的大部分 k 近邻样本都跟他自己本身的类别不一样,我们就将它删除。

推荐收藏!40 道数据挖掘面试真题大放送!_第20张图片

Repeated Edited Nearest Neighbor:这个方法就是不断的重复上述的删除过程,直到无法再删除为止。

推荐收藏!40 道数据挖掘面试真题大放送!_第21张图片

Tomek Link Removal:如果有两个不同类别的样本,它们的最近邻都是对方,也就是 A 的最近邻是 B,B 的最近邻是 A,那么 A,B 就是 Tomek link。我们要做的就是讲所有 Tomek link 都删除掉。那么一个删除 Tomek link 的方法就是,将组成 Tomek link 的两个样本,如果有一个属于多数类样本,就将该多数类样本删除掉。

推荐收藏!40 道数据挖掘面试真题大放送!_第22张图片

35、二分类问题如何转化为一分类问题?

对于二分类问题,如果正负样本分布比例极不平衡,我们可以换一个完全不同的角度来看待问题:把它看做一分类(One Class Learning)或异常检测(Novelty Detection)问题。这类方法的重点不在于捕捉类间的差别,而是为其中一类进行建模,经典的工作包括 One-class SVM 等,如下图所示:

推荐收藏!40 道数据挖掘面试真题大放送!_第23张图片

One Class SVM 是指你的训练数据只有一类正(或者负)样本的数据, 而没有另外的一类。在这时,你需要学习的实际上你训练数据的边界。而这时不能使用最大化软边缘了,因为你没有两类的数据。所以呢,文章“Estimating the support of a high-dimensional distribution”中,Schölkopf 假设最好的边缘要远离特征空间中的原点。左边是在原始空间中的边界,可以看到有很多的边界都符合要求,但是比较靠谱的是找一个比较紧的边界(红色的)。这个目标转换到特征空间就是找一个离原点比较远的边界,同样是红色的直线。当然这些约束条件都是人为加上去的,你可以按照你自己的需要采取相应的约束条件。比如让你 data 的中心离原点最远。说明:对于正负样本极不均匀的问题,使用异常检测,或者一分类问题,也是一个思路。

36、如何通过增加惩罚项来提高稀有数据的预测准确率?

通过设计一个代价函数来惩罚稀有类别的错误分类而不是分类丰富类别,可以设计出许多自然泛化为稀有类别的模型。例如,调整 SVM 以惩罚稀有类别的错误分类。

推荐收藏!40 道数据挖掘面试真题大放送!_第24张图片

37、L1 和 L2 有什么区别?

L1 范数(L1 norm)是指向量中各个元素绝对值之和,也有个美称叫“稀疏规则算子”(Lasso regularization)。

比如 向量 A=[1,-1,3], 那么 A 的 L1 范数为 |1|+|-1|+|3|。

简单总结一下就是:

L1 范数: 为 x 向量各个元素绝对值之和。

L2 范数: 为 x 向量各个元素平方和的 1/2 次方,L2 范数又称 Euclidean 范数或 Frobenius范数。

Lp 范数: 为 x 向量各个元素绝对值 p 次方和的 1/p 次方。

在支持向量机学习过程中,L1 范数实际是一种对于成本函数求解最优的过程,因此, L1 范数正则化通过向成本函数中添加 L1 范数,使得学习得到的结果满足稀疏化,从而方便人类提取特征。

L1 范数可以使权值稀疏,方便特征提取。L2 范数可以防止过拟合,提升模型的泛化能力。

38、CNN 最成功的应用是在 CV,那为什么 NLP 和 Speech 的很多问题也可以用 CNN 解出来?为什么 AlphaGo 里也用了 CNN?这几个不相关的问题的相似性在哪里?CNN 通过什么手段抓住了这个共性?

以上几个不相关问题的相关性在于,都存在局部与整体的关系,由低层次的特征经过组合,组成高层次的特征,并且得到不同特征之间的空间相关性。如下图:低层次的直线/曲线等特征,组合成为不同的形状,最后得到汽车的表示。

推荐收藏!40 道数据挖掘面试真题大放送!_第25张图片

CNN 抓住此共性的手段主要有四个:局部连接/权值共享/池化操作/多层次结构。局部连接使网络可以提取数据的局部特征;权值共享大大降低了网络的训练难度,一个 Filter 只提取一个特征,在整个图片(或者语音/文本) 中进行卷积;池化操作与多层次结构一起,实现了数据的降维,将低层次的局部特征组合成为较高层次的特征,从而对整个图片进行表示。

39、实现对比 LSTM 结构推导,为什么比 RNN 好?

推导 forget gate,input gate,cell state, hidden information 等的变化;因为 LSTM 有进有出且当前的 cell informaton 是通过 input gate 控制之后叠加的,RNN 是叠乘,因此 LSTM 可以防止梯度消失或者爆炸。

40、请简要说说 EM 算法?

有时候因为样本的产生和隐含变量有关(隐含变量是不能观察的),而求模型的参数时一般采用最大似然估计,由于含有了隐含变量,所以对似然函数参数求导是求不出来的,这时可以采用 EM 算法来求模型的参数的(对应模型参数个数可能有多个),EM 算法一般分为 2 步:

E 步:选取一组参数,求出在该参数下隐含变量的条件概率值;

M 步:结合 E 步求出的隐含变量条件概率,求出似然函数下界函数(本质上是某个期望函数)的最大值,重复上面 2 步直至收敛。

技术交流

独学而无优则孤陋而寡闻,技术要学会交流、分享,不建议闭门造车。

搭建了数据分析实战与面试技术交流群,面试交流、技术答疑、源码获取,均可加交流群获取,群友已超过2000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友。

方式①、微信搜索公众号:Python学习与数据挖掘,后台回复:交流
方式②、添加微信号:dkl88194,备注:交流

资料1
在这里插入图片描述
资料2
我们打造了《数据分析实战案例宝典》,特点:从0到1轻松学习,方法论及原理、代码、案例应有尽有,所有案例都是按照这样的节奏进行表述。

你可能感兴趣的:(机器学习,数据分析及可视化,python,数据挖掘,面试,人工智能,数据分析,算法,面试题)