机器学习错题整理(一)

1使用以下模型解决分类问题时,一般情况下对输入数据内的噪音、离群点(outlier)最敏感的是?

Adaboost
软间隔SVM
Lasso
随机森林

答案A

说明:随机森林受异常点影响较小,这是有决策树性质决定的。异常点对SVM和Lasso都会有一定的影响,但是影响最大的还是Adaboost,因为Adaboost每一轮都会放大异常点数据的权重,最后将导致为异常点产生一个单独的基分类器来拟合数据。

 

2对于神经元q = x + y,f = q * z,当输入x=-2, y=5, z=-4时进行后向传播,则f对(x, y, z)的梯度分别为

(-3, 4, 4)
(-4, 4, 3)
(-4, -4, 3)
(3, -4, -4)
 
答案C
 
3.dropout是的神经网络随机变化,是随机变化网络内部结构。bagging,是随机抽取样本。机制类似
 
4在K近邻(KNN)模型中,超参数K的选择对模型的表现有较大的影响。一般而言,对比1近邻模型和3近邻模型,以下说法正确的是?
1近邻模型更容易过拟合
1近邻模型的Bias和Variance都更大
1近邻模型的Bias更大,Variance更小
1近邻模型的,Variance更大
 
答案AD
偏差是模型对训练集的拟合程度,方差是数据扰动对模型的影响
当k为1时,模型会将噪声也学进来,就是把细枝末节的特征也学进行,造成过拟合。
当k过大时,意味着离待分类样本点较远的点也会被包含进来对其判别产生影响,此时就会欠拟合 Bias更大
 
5假设我们有所有用户在一个月内的商品点击和购买行为的数据,我们想利用该数据基于有监督学习方法预测特定用户点击商品后产生购买行为的概率,即将购买率预估问题看做是一个二分类问题。假设用户的购买行为十分稀疏,即购买量远小于点击量。则以下说法正确的是?
这是一个正负类极度不平衡的数据集,因此AUC比较适合用于评估模型的效果
如果我们将模型在所有样本上的预估值都乘以2,则该模型模型的AUC有可能会下降(假设模型在所有样本上的预估值都小于0.5)
如果我们将模型在所有样本上的预估值都减去0.01,则该模型模型的AUC有可能会下降(假设模型在所有样本上的预估值都大于0.01)
我们可以将数据随机切分成10份,选择其中9份作为训练集,1份作为测试集,如此实现10重交叉检验可以较好地对模型的效果进行评估
 
答案A
A:  AUC对样本类别是否均衡并不敏感,这也是不均衡样本通常用AUC评价分类器性能的一个原因
B,C:   AUC值等于随机选择的正样本值高于随机选择的反面例子的概率。这两个操作并不会让AUC下降
D:  D应该是从正例中随机分成十份,分别与负例进行训练 感觉是 类别不平衡问题,不能随机切分,不然测试集一个正样本都没有怎么评估
 
6关于集成学习以下说法正确的是?
Adaboost相对于单个弱分类器而言通过Boosting增大了模型的Bias
随机森林相对于单个决策树而言通过Bagging增大了模型的Variance
我们可以借鉴类似Bagging的思想对GBDT模型进行一定的改进,例如每个分裂节点只考虑某个随机的特征子集或者每棵树只考虑某个随机的样本子集这两个方案都是可行的
GBDT模型无法在树维度通过并行提速,因为基于残差的训练方式导致第i棵树的训练依赖于前i-1棵树的结果,故树与树之间只能串行
 
答案CD
Bagging会降低variance
 
7在深度神经网络的训练过程中发现损失函数值的变化非常缓慢,以下方案中很可能有助于解决该问题的是?
调小learning rate
调大batch size
使用ReLU
使用batch normaliztion
 
答案CD
 
8堆排序的最坏时间复杂度为O(nlog(n))
 
9假设有一份数据量较大的数据,假设总共1亿行,现在要根据它的某个字段a进行全局降序排序,如果使用Map-Reduce来实现,程序大致应该怎么设计?要求:只要写出伪代码即可,注意避免控制数据多次分发和并行效率
 
10请实现str2int函数,不限语言,但请不要用使用语言自带的类型转换。例如对于输入"123",输出应为123
//这种题目怕的就是溢出,搞个long long 保险
long long str2int(string str) {
    long long result = 0;
    int flag = 1;
    for (int i = 0; i<str.size(); i++) {
        if (str[i] == '-') {
            flag = -1;
            continue;
        }
        if (str[i] == '+') {
            continue;
        }
        result *= 10;
        result += (str[i]-'0');
    }
    return result*flag;

}

 11假设使用结构为(parent varchar(6), child varchar(6))的表来存储一颗树内所有子节点-父节点的关系。请使用SQL统计出该树内每个节点的儿子节点和孙子节点(即儿子的儿子)的数量之和。没有儿子且没有孙子的节点不应该出现在结果中。样例输入parent, childA BA CA DB EB FE G 样例输出node, cntA 5B 3

SQL集合运算参考及案例(二):树形节点数量逐级累计汇总

如何根据树的某个节点查询所有子节点包括孙子节点

T-SQL查询进阶--详解公用表表达式(CTE)

 

3、影响聚类算法效果的主要原因有:
特征选取、模式相似性测度、分类准则,与已知样本质量无关(使用的是无标注数据)

 

4、以下说法正确的有:
(1)SVM对噪声(如来自其他分布的噪声样本)鲁棒 F
SVM本身对噪声具有一定的鲁棒性,但实验证明,是当噪声率低于一定水平的噪声对SVM没有太大影响,但随着噪声率的不断增加,分类器的识别率会降低。

(2)在AdaBoost算法中所有被分错的样本的权重更新比例相同 T
AdaBoost算法中不同的训练集是通过调整每个样本对应的权重来实现的。开始时,每个样本对应的权重是相同的,即其中n为样本个数,在此样本分布下训练出一弱分类器。对于分类错误的样本,加大其对应的权重;而对于分类正确的样本,降低其权重,这样分错的样本就被凸显出来,从而得到一个新的样本分布。在新的样本分布下,再次对样本进行训练,得到弱分类器。以此类推,将所有的弱分类器重叠加起来,得到强分类器。

(3)Boost和Bagging都是组合多个分类器投票的方法,二者均是根据单个分类器的正确率决定其权重。 F
Bagging与Boosting的区别:取样方式不同。Bagging采用均匀取样,而Boosting根据错误率取样。Bagging的各个预测函数没有权重,而Boosting是有权重的,Bagging的各个预测函数可以并行生成,而Boosing的各个预测函数只能顺序生成。

 

 

关于 logit 回归和 SVM 不正确的是()

A. Logit回归目标函数是最小化后验概率. 

B. Logit回归可以用于预测事件发生概率的大小

C. SVM目标是结构风险最小化

D. SVM可以有效避免模型过拟合

 

答案:A

A. Logit回归本质上是一种根据样本对权值进行极大似然估计的方法,而后验概率正比于先验概率和似然函数的乘积。logit仅仅是最大化似然函数,并没有最大化后验概率,更谈不上最小化后验概率。A错误

B. Logit回归的输出就是样本属于正类别的几率,可以计算出概率,正确

C. SVM的目标是找到使得训练数据尽可能分开且分类间隔最大的超平面,应该属于结构风险最小化.

 D. SVM可以通过正则化系数控制模型的复杂度,避免过拟合。

 

315、假定目标变量的类别非常不平衡,即主要类别占据了训练数据的 99%。现在你的模型在测试集上表现为 99% 的准确度。那么下面哪一项表述是正确的?
A. 准确度并不适合于衡量不平衡类别问题
B. 准确度适合于衡量不平衡类别问题
C. 精确率和召回率适合于衡量不平衡类别问题
D. 精确率和召回率不适合于衡量不平衡类别问题
答案为(A)和(C)

BAT机器学习面试题1000题(311~315题)

313、鉴别了多元共线特征。那么下一步可能的操作是什么?
A. 移除两个共线变量

B. 不移除两个变量,而是移除一个
C. 移除相关变量可能会导致信息损失,可以使用带罚项的回归模型(如 ridge 或 lasso regression)。
答案为(B)和(C):因为移除两个变量会损失一切信息,所以我们只能移除一个特征,或者也可以使用正则化算法(如 L1 和 L2)。

 

对于给定1000个训练样本的二分类问题,关于支持向量机的说法,正确的有_____
正确答案: A 你的答案: B (错误)

需要构造1000个辅助变量,计算它们的非零值对应着支撑向量。
如果使用高斯核函数,不需要构造1000个辅助变量,只需要100个。
如果使用多项式核函数,不需要构造1000个辅助变量,只需要100个。
在当前普通计算机上需要约1小时才能得到训练模型。

辅助变量是a

posted @ 2018-04-05 15:21  喵喵帕斯  阅读(1879)  评论(0编辑  收藏  举报