前言
这篇文章是《机器学习与数据挖掘》课程的复习题,题目由老师期末复习课时给出,基本涵盖了这门课程的所有内容,因此将题目整理如下。
1.深度学习和机器学习的区别是什么?
机器学习是从数据模式中学习算法,然后将其应用于决策中。深度学习则是通过自己处理数据进行学习,就像人脑一样,识别、分析、做出决策。主要的区别如下:
- 它们向系统提供数据的方法不同。
- 机器学习通常需要结构化数据而深度学习网络依赖于人工神经网络的层次。
实际上,深度学习也是机器学习的一种,只是由于其发展迅猛,并且有很多特有的学习手段被提出,因此视为一种比较独立的学习方法。
2.监督学习与无监督学习最主要的区别是什么?
监督学习技术需要带标签的数据来训练模型,也即我们事先分好了类别,通过带有类别标签的训练集训练模型,再用其去预测未分类的数据,将其分类到我们已有的标签类别中。而无监督学习则不需要任何带标签的数据集,机器根据样本间的相似性寻找规律,进行分类等任务。
3.在处理数据集时如何选择重要变量?
有很多种在一个数据集中选择重要变量的方法,包括以下几点
- 在确定重要变量之前不考虑无关变量。
- Lasso 回归(L1 回归)。
- 随机森林。
- 基于可用特征集的信息增益选择特征。
4.现在有很多的机器学习算法。如果给定一个数据集,我们如何决定使用的算法?
机器学习算法只决定于给定数据集的数据类型。如果数据是线性的,则我们选择线性回归算法;如果数据是非线性的,则我们选择袋装算法(Bagging)或者核算法(Kernel)会更优;如果是出于商业目的分析或解释数据,则我们可以使用决策树或者是支持向量机;如果数据集由图片、视频、音频组成,则使用神经网络算法更优。
5.正则化在机器学习中什么时候起作用?
当模型开始出现过拟合时,正则化变得很有必要。它将系数估计向 0 转移或者正则化,是一种回归。它降低了模型的适应性,避免模型学习陷入过拟合的风险,模型预测的结果更优。
6.数据方差大是好是坏?
方差越大,意味着数据范围越广,数据特征更多样,通常来说,方差大意味着结果不好,离散程度过大,可能存在过拟合现象。
7.数据集方差过大如何解决?
如果数据方差过大,我们可以采用 Bagging 算法解决。Bagging 算法对数据进行重复随机采样,将数据分为多个子训练集,对于每个子训练集采用学习算法得到各自的弱学习器。如果是分类任务则各个分类器分别对测试数据投票,得票最多的类别作为输出的最终类别,如果是回归任务则各个弱学习器的回归结果进行算术平均得到最终的输出结果。我们对多个弱学习器求平均,可以减少模型的方差,提升模型的稳定性。
8.随机梯度下降(SGD)和梯度下降(GD)的区别是什么?
梯度下降和随机梯度下降都是用于找到使得损失函数最小的参数集的方法。不同点在于梯度下降对于每一组参数都对所有的训练样本进行评估,在权值更新前汇总所有样例得到标准梯度;而随机梯度下降则仅仅对某个随机训练样本进行评估。
因此通常来说,标准梯度下降的时间复杂度更高;由于得到的梯度是来自所有训练样本的标准梯度,则它的步长一般更长;对于某些含有多个局部最小值,标准梯度下降更可能陷入局部最小值中。
9.决策树的优点和缺点是什么?
优点:
- 分类准确率高,易于解释
- 计算量相对较小
- 不需要任何的参数假设
- 对异常值不敏感,鲁棒性较强
- 需要调整的参数较少
缺点:
- 容易陷入过拟合
- 对于各类别样本数量不一致的数据, 信息增益偏向于那些更多数值的特征
- 容易忽略属性之间的相关性
10.什么是混淆矩阵?为什么要用到混淆矩阵?
混淆矩阵常用于说明分类模型的性能,呈现出可视化的结果,通常用于监督学习。混淆矩阵每一行代表实际类别,每一列代表预测结果。正确和错误的分类结果数量都统计在对应的表格中。我们可以根据这些结果对分类器的性能做出总结。
11.解释“维数灾难”的概念。
维数灾难是指数据拥有过多的特征。如果我们的特征数多于观察值,可能有过拟合的风险。而且过多的维数会导致数据集中的每个观察值与其他所有观察值的距离相等,无法形成有意义的聚类。
降维技术可以用来解决维数灾难的问题,比如 PCA 技术。
12.正则化和归一化的区别是什么?
归一化调整的是数据,而正则化调整的是预测函数。如果数据的规模过大,则需要进行归一化,把数据转化为 [0, 1] 之间的小数,消除不同数据间的量纲,方便数据进行比较和处理。而正则化则是利用先验知识,在预测函数中加入正则因子,可以有效降低模型复杂度,防止出现过拟合现象,提高模型稳定性。
13.归一化和标准化的区别是什么?
归一化是将数据重新缩放到 [0, 1] 的范围,方便与其他数据进行比较或处理。而标准化是将数据缩放到均值为 0 方差为 1 的状态,为了方便数据的下一步处理。
14.回归和分类的区别是什么?
分类和回归都是监督机器学习的一种类别。回归的输出是连续的(实数),而分类的输出是离散的(类别)。
15.哪种机器学习算法被称为“惰性学习”?为什么?
KNN 算法是典型的惰性学习算法,也叫消极学习方法。积极学习方法是指在利用算法进行判断之前,先用训练集训练得到一个目标函数,在需要进行决策时可以利用已经训练好的目标函数进行预测。而消极学习算法则是单纯对训练集进行存储,不会进行主动学习或者拟合出一个函数,在需要进行预测的时候再根据已有的样本做出判断。如 KNN 算法,在需要预测的时候再从训练集样本寻找与待预测样本最相似的样本进行预测(也即 K 个近邻)。
16.K-Means 和 KNN 算法的区别是什么?
KNN 是监督学习算法而 K-Means 是无监督学习算法。KNN 是通过样本的最近邻预测样本的标签,解决分类或者回归任务。K-Means 则应用于聚类任务,所给的数据集是不带有标签的,最终是要通过数据的特征将其分为 K 个类别。
17.什么是 SVM 算法的核技术?
核方法是应用于数据点的数学函数,可以找到两个不同类别之间的分类边界。基于不同的核函数选择,如线性的或者是放射状的,根据数据的分布,一个核函数就可以建立一个分类器。
18.什么是集成模型?解释为何集成技术与传统的分类机器学习算法相比拥有更好的学习效果?
集成技术是一组用于分类或者回归任务的预测模型。集成学习可以提升机器学习的效果,因为它结合了多个模型,比起单个模型拥有更好的预测效果。可以降低模型的方差、偏差,也不容易导致过拟合。
19.什么是过拟合和欠拟合?为什么决策树算法经常会发生过拟合问题?
过拟合是指一个统计模型或者机器学习算法捕获了数据过多的噪声,导致过度拟合训练集属性而泛化性能较差。欠拟合则是指一个模型或者机器学习算法拟合数据的程度较差,因此导致模型的偏差较大,不能很好地拟合数据。
在决策树里,树会被设计去拟合所有的训练数据集样本,产生具有严格规则的分支,或者是稀疏数据的分支,最终就会导致过度拟合训练集的样本,而不能够很好地预测不属于训练集的样本。
20.解释 Lasso 和 Ridge 的区别。
Lasso(L1)和 Ridge(L2)都是回归技术中为了找到最佳解的惩罚系数。Ridge 中惩罚函数被定义为系数的平方和,而 Lasso 则定义为系数的绝对值之和。另一种回归方法则是弹性网络回归,它结合了 Lasso 回归和 Ridge 回归。
21.概率和似然的区别是什么?
概率是对一个事件发生的可能性的度量。比如抛一枚硬币 20 次,正面向上 15 次的可能性有多大?这就是一个概率的问题。而似然函数则是描述在参数空间中获得观测数据概率参数的函数。比如抛一枚硬币 20 次,其中 15 次正面向上,问这个硬币均匀(正反面朝上概率为 50%)的可能性有多少?这就是个似然问题。
所以概率依附于可能的结果,而似然依附于结果的假设。
22.为什么要进行剪枝操作?
决策树进行剪枝可以减少树的大小,降低复杂度并降低发生过拟合的可能性。剪枝的操作是将决策树的某个分支转化为叶子结点并移除原始分支中的叶子节点。可以在划分结点前执行,称为预剪枝;或者是构建好再进行剪枝,称为后剪枝。
23.应该选择模型准确度还是模型性能?
如果模型性能指的是模型的运行速度的话,则模型的性能要求取决于未来的应用要求,对于任何实时应用场景都需要较高的运行速度,是模型一个重要的指标。
模型性能也可能意味着模型的准确性不是最重要的属性。实际上,对于不平衡数据集中,模型的 F1 值是比模型准确度更受商业案例青睐的评判标准。
24.对于不平衡数据集如何处理?
抽样技术可以用于解决数据集不平衡的问题。有两种采样技术,分别为欠采样和过采样。
欠采样中,我们减少了大规模数据类型的采样,使得模型对小规模的数据较敏感。但是欠采样也可能导致大规模数据中的一些重要信息被忽视。如果是进行多次欠采样,分别训练出模型再进行集成,可以提高大规模数据中各个数据被采样的几率,但是同时带来一个新的问题,小规模数据在多次采样中反复使用,可能造成过拟合。
过采样中,我们是对小规模的数据类型进行多次采样,这样不会导致大规模数据类型中的重要信息丢失,但是很明显的,我们有陷入过拟合的风险。
25.说说为什么特征工程在模型构建中很重要?
初始数据是未经过加工的。特征工程提取了数据特征并将其应用到算法中。如果拥有了关键特征,算法的复杂度就可以降低,能够让一个不太理想的算法也能够拥有不错的准确性。
特征工程有两个目标:
- 准备合适的输入数据集,使之与机器学习算法的约束条件相兼容。
- 提升机器学习模型的效果。
26.Boosting 和 Bagging 的区别是什么?
Boosting 和 Bagging 都是集成技术的变体。
- Bagging 是一种用来减少方差的算法,在高方差的算法中发挥作用。如果分类器稳定,则集成分类器的误差主要由基分类器的偏差引起。如决策树就是分类器中一种容易产生高偏差的分类器。
- Boosting 对样本进行操作获得多个样本子集并通过训练得到多个弱分类器,这些弱分类器加权融合共同构成一个强分类器(权重来自它们分类的准确率),每个弱分类器都可以补偿其分类器的缺点。Boosting 算法可以减少监督学习中的模型偏差。
27.生成式模型和判别式模型的区别是什么?
两种模型都是应用于监督学习的模型。
生成式模型学习联合概率分布,通过贝叶斯理论预测条件概率,显式地对每个类的分布进行建模。例如对于猫狗分类问题,通过学习建模猫和狗的模样,再进行分类。
判别式模型学习条件概率的分布,寻找模型中各类别的边界。例如对于猫狗分类问题,只需要学习两者之间的差异,比如狗的体型通常比猫更大。
28.什么是超参数?和普通参数有什么区别?
参数是模型内部的变量,通过训练数据进行估值,并作为模型的一个部分保存。典型的参数有权重参数等等。
超参数则是模型外部给定的变量,不通过数据学习得到。超参数可以用于模型参数的评估,超参数的选择对模型的完成效果很重要。典型的超参数有模型的学习率,隐藏层的数量等等。
29.聚类算法中如何确定聚类的数量?
聚类的数量可以通过寻找轮廓系数确定。若 $a$ 表示样本点与同一簇中所有其他点的平均距离,即样本点与同一簇中其他点的相似度,也即聚类的凝聚度;$b$ 表示样本点与下一个最近簇中所有点的平均距离,即样本点与下一个最近簇中其他点的相似度,也即不同聚类的分离度。则轮廓系数 $s$ 的定义如下:
则我们可以知道轮廓系数的取值为 $[-1,1]$,越接近 1 表示组内差异小而组间差异大,聚类效果越好。相反越接近 -1 则聚类效果越差。我们可以通过比较不同聚类数量分类后的轮廓系数确定聚类数量。
30.交叉验证的作用是什么?
交叉验证是用于提升机器学习算法性能的技术。将训练样本随机划分为大小相同的几个部分,每次将一个部分作为测试集而其他部分作为训练集进行训练。如此多次训练模型并进行验证。通过交叉验证可以获得模型更好的性能评估,得到更加稳定可靠的模型。
31.KNN 的距离度量有哪些?
以下的几种距离度量都可以用于 KNN 算法:
- 曼哈顿距离
- 闵可夫斯基距离
- 杰卡德距离
- 余弦距离
32.随机森林使用的集成技术是什么?
随机森林中用到的集成技术是 Bagging。随机森林是对原始数据集样本进行处理的树的集合,最终的预测是所有树的投票的算术平均值。
33.信息熵和信息增益的区别是什么?
信息熵指信息的混乱程度 $H(X)=-\sum_{x\in\chi}p(x)\log p(x)$,而信息增益是指数据集在某项属性上被分割后信息熵的减少。在决策树算法中,我们会选择信息增益最大的属性作为分割的属性。
34.列举一些使用 SVM 而不是随机森林的情况。
如果问题是线性不可分的,则需要使用非线性核的 SVM,比如 RBF 核。另外一种情况是在更高维的空间里也需要使用 SVM 算法,例如在文本分类任务中使用 SVM 算法更优。
35.SVM 作为一种最大间隔分类器,是否会被异常值影响?
当 C 很大的时候会受到影响。
36.我们能否在逻辑回归中使用核函数?
逻辑回归在计算上比 SVM 复杂得多($O(N^3)$ 的复杂度对比 $O(N^2k)$ 的复杂度,其中 $k$ 是支持向量的个数)。SVM 方法只考虑与分类相关的少数点,也即支持向量,而逻辑回归考虑的是所有的点,但是通过非线性映射减少离平面较远的点的权重。这使得 SVM 可以使用一些高效的代码编写模块加速,而逻辑回归却很难这样做。
37.SVM 是否有概率性的输出?
SVM 不会直接提供概率性的评估。概率性的输出是通过一个昂贵的五折交叉验证得到的。
38.区分贝叶斯风险和经验风险。
贝叶斯决策函数 $f^*:x\rightarrow A$ 是对所有可能函数的风险最小化,贝叶斯决策函数的风险就是贝叶斯风险。贝叶斯决策函数通常称为目标函数,因为它是我们能够得到的最好的决策函数。
而经验风险函数 $f:x\rightarrow A$ 的定义如下
它是所有训练样本的损失函数的平均值,反映了模型对样本的预测能力。经验风险最小化也即对训练集中的所有样本点损失函数平均最小化。
39.什么是拉格朗日乘数?
在数学最优问题中,拉格朗日乘数法是一个在同等约束条件下计算局部最大值和最小值的方法。主要的思想是将一个约束问题转化为一个可以求导的无约束问题。拉格朗日对偶函数给定了最优解的下界。
40.随机森林的随机性如何体现?
当随机森林中的任一棵树建立时,我们为了确保树独立,用了以下两种随机性质:
- 通过 Bagging 算法随机选择数据进行替换。
- 随机选择 $m$ 个特征。
41.为什么随机森林不容易导致过拟合?
随机森林是决策树的集成模型。单棵决策树对数据异常非常敏感,非常容易拟合了数据中的噪声,所以只有一棵树的随机森林同样容易导致过拟合。而当我们添加多棵树到随机森林中,整片森林对于异常值就不会那么敏感,过拟合的可能性就会降低。然而泛化误差不会趋向 0,因为泛化误差中的方差会随着树的增加会逐渐趋于 0,偏差却不会。
42.说说深度学习模型和集成模型之间的联系。
深度学习模型中诸如 CNN 和 Transformers 在集成策略中也有广泛应用。
43.集成分类器可能不会比它的任何一个单模型更精确,这句话是对的吗?为什么?
这句话是对的。通常来说,集成模型确实可以提高模型的性能,但并不是绝对的。