BAT机器学习面试1000题(416~420题)


416、给你一个有1000列和1百万行的训练数据集。这个数据集是基于分类问题的。

经理要求你来降低该数据集的维度以减少模型计算时间。你的机器内存有限。你会怎么做?(你可以自由做各种实际操作假设)

解析:

答:你的面试官应该非常了解很难在有限的内存上处理高维的数据。以下是你可以使用的处理方法:

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

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

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

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

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

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

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

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

417、问2:在PCA中有必要做旋转变换吗?

如果有必要,为什么?如果你没有旋转变换那些成分,会发生什么情况?

解析:

答:是的,旋转(正交)是必要的,因为它把由主成分捕获的方差之间的差异最大化。这使得主成分更容易解释。但是不要忘记我们做PCA的目的是选择更少的主成分(与特征变量个数相较而言),那些选上的主成分能够解释数据集中最大方差。

通过做旋转,各主成分的相对位置不发生变化,它只能改变点的实际坐标。如果我们没有旋转主成分,PCA的效果会减弱,那样我们会不得不选择更多个主成分来解释数据集里的方差。

注意:对PCA(主成分分析)需要了解更多。

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

解析:

答:这个问题给了你足够的提示来开始思考!由于数据分布在中位数附近,让我们先假设这是一个正态分布。

我们知道,在一个正态分布中,约有68%的数据位于跟平均数(或众数、中位数)1个标准差范围内的,那样剩下的约32%的数据是不受影响的。

因此,约有32%的数据将不受到缺失值的影响。

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

解析:

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

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

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

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

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

4.我们还可以使用异常检测。

注意:要更多地了解不平衡分类

420、为什么朴素贝叶斯如此“朴素”?

解析:

答:朴素贝叶斯太‘朴素’了,因为它假定所有的特征在数据集中的作用是同样重要和独立的。正如我们所知,这个假设在现实世界中是很不真实的。
已邀请:

要回复问题请先登录注册

返回顶部