参考博客:http://redstonewill.com/1207/
机器学习笔试题精选试题六
1. 对于大量的训练数据以及特征的维数比较大时,怎么进行训练模型呢?可以采用的方法有:
1) 对训练集随机采样,在随机采样的数据上建立模型;
2)尝试使用在线机器学习算法;
3)使用 PCA 算法减少特征维度。
对于2)而言,离线学习是我们最为常见的一种机器学习算法模式,使用全部数据参与训练。训练完成,整个模型就确定了;而在线学习一般每次使用一个数据或是小批量数据进行训练,每次训练都会优化模型,模型处于不断优化更改状态。
对于3),PCA(principal Component Analysis),是一种使用最广泛的数据压缩算法。在PCA中,数据从原来的坐标系转换到新的坐标系,由数据本身决定。转换坐标系时,以方差最大的方向作为坐标轴方向,因为数据的最大方差给出了数据的最重要的信息。第一个新坐标轴选择的是原始数据中方差最大的方法,第二个新坐标轴选择的是与第一个新坐标轴正交且方差次大的方向。重复该过程,重复次数为原始数据的特征维数。
2. 减少数据集中特征数量的方法:
正向选择法;反向消除法;逐步选择消除法;去除多重线性特征。
3. 随机森林(RF)和梯度提升决策树(Gradient Boosting Decision Tree, GBDT)的区别
Random Forest 是基于 Bagging 的,而 Gradient Boosting Trees 是基于 Boosting 的。Bagging 和 Boosting 的区别在于:
1)样本选择上:
Bagging:训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的。
Boosting:每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整。
2)样例权重:
Bagging:使用均匀取样,每个样例的权重相等。
Boosting:根据错误率不断调整样例的权值,错误率越大则权重越大。
3)预测函数:
Bagging:所有预测函数的权重相等。
Boosting:每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重。
4)并行计算:
Bagging:各个预测函数可以并行生成。
Boosting:各个预测函数只能顺序生成,因为后一个模型参数需要前一轮模型的结果。
因此,Gradient Boosting Trees 的中间树不是相互独立的,因为前一棵树的结果影响下一棵树。Random Forest 的中间树相互独立,因此可以并行生成这些树。
在这两种算法中,我们使用随机特征集来生成中间树。
Gradient Boosting Trees 并不总比 Random Forest 好,依赖于数据。
4. 问题:对于 PCA 处理后的特征,其朴素贝叶斯特征相互独立的假设一定成立,因为所有主成分都是正交的,所以不相关”。这种说法是错误的。下面是解释。
PCA 和 朴素贝叶斯的基本概念和区别:
1)PCA 转换之后的特征不一定不相关;
2)不相关并不等价于相互独立。
正交和不相关没有必然关系,只有当一个随机变量的统计平均等于零时,正交和不相关等价。独立则必定不相关,而不相关却不一定互相独立,只有是高斯时独立和不相关才等价。
5和6:PCA中选择方差最大的主成分,在使用PCA之前要标准化数据;PCA可以实现在低维可视化数据。
7. 集成学习
四种方法:1)validation (在给定的模型中,选择犯错最小的模型);
2)uniformly(一人一票);
3)non-uniformly(投票权重不同,效果好的投票权重大些,不好的投票权重小些) ;
4)类似于3),但是权重不是固定的,根据不同的情况进行调整。
基本模型之间的相关性越低越好,因为每个模型有各自的特长,集成起来才更加强大。
8. 在监督式学习中使用聚类算法的方法:
1)我们可以为不同的集群构建独立的监督式学习模型,并且可以提高预测精度;
2)将每个类别的 ID 作为特征空间中的一个额外的特征,可能会提高的精度结果。
9. 准确度,召回率。
10. GBDT(梯度提升决策树):
1)增加用于分割的最小样本数量,有助于避免过拟合,过高的值会导致欠拟合,因此应该使用交叉验证法进行处理。
每个基本树选择的样本比例是通过随机抽样来完成的。小于1的值能够减小方差使模型具有鲁棒性。典型值 0.8 通常工作良好,但可以进一步精细调整。
2)GBDT 通过多轮迭代,每轮迭代产生一个弱分类器,每个分类器在上一轮分类器的残差基础上进行训练。对弱分类器的要求一般是足够简单,并且是低方差和高偏差的,因为训练的过程是通过降低偏差来不断提高最终分类器的精度。