每个学习数据科学的人都应该知道的 6 种机器学习算法

2025年1月7日 | 阅读10分钟

机器学习(ML)已成为数据科学的基石,它使计算机能够从数据中学习并做出决策或预测。对于那些涉足数据科学领域的人来说,理解关键的机器学习算法至关重要。在此,我们将探讨六种重要的机器学习算法,并讨论它们的原理、应用、优点和局限性。

1. K-近邻算法 (KNN)

原则

K-近邻算法 (KNN) 是一种简单但强大的机器学习算法,可用于分类和回归任务。它是一种基于实例的学习算法,这意味着它不显式地学习模型。相反,它存储所有训练实例,并根据新实例与内存中存储的实例的相似性进行预测。该算法根据训练数据集中 k 个最近邻的多数投票或平均值,为新的数据点分配类别或值。

实现 KNN 的步骤

  1. 选择邻居数量 (k): k 的值是一个关键参数,需要仔细选择。较小的 k 值可能很嘈杂并导致过拟合,而较大的 k 值可以平滑预测,但可能引入偏差。
  2. 计算距离: 使用合适的距离度量(如欧几里得距离、曼哈顿距离或闵可夫斯基距离)计算新数据点与所有训练数据点之间的距离。
  3. 识别最近邻: 选择与新数据点最接近的 k 个训练数据点。
  4. 投票或平均: 对于分类,分配 k 个邻居中最常见的类别。对于回归,计算 k 个邻居值的平均值。

应用

  • 推荐系统: KNN 广泛用于基于协同过滤的推荐系统中。它有助于根据相似用户的偏好向用户推荐物品。
  • 医疗保健: KNN 通过将患者的症状与其他患者的症状进行比较,用于疾病分类。
  • 模式识别: 它通过将模式与已知示例进行比较,用于手写识别、图像分类和语音识别。

优点

  • 简单性:KNN 易于理解和实现。它不需要复杂的训练阶段。
  • 无训练阶段:由于 KNN 是一种懒惰学习算法,因此不需要单独的训练阶段。所有计算都推迟到预测时。
  • 灵活性:KNN 可以处理分类和回归任务。它对不同的距离度量也具有灵活性。

局限性

  • 计算复杂度:KNN 在预测期间可能计算成本高昂,尤其是在大型数据集上,因为它需要计算新数据点与所有训练数据点之间的距离。
  • 存储要求:由于它存储了所有训练实例,因此需要大量内存。
  • 对噪声数据的敏感性:KNN 对噪声数据和异常值敏感,这会影响其性能。
  • 维度灾难:随着特征数量的增加,点之间的距离变得不那么有意义,导致性能下降。

2. 随机森林

原则

随机森林是一种集成学习算法,它结合了多个决策树来创建更健壮、更准确的模型。它在训练期间通过构建大量决策树来工作,并输出个体树的类别模式(分类)或平均预测(回归)。

它的工作原理

  • 自助采样:随机森林使用一种称为自助采样(bootstrapping)的技术,其中通过有放回抽样来创建原始数据集的多个子集。
  • 构建树:对于每个子集,构建一个决策树。在构建每棵树的过程中,在每个分裂点选择一个随机的特征子集来确定最佳分裂。这会引入随机性并有助于使树去相关。
  • 聚合:对于分类,最终预测是通过所有树的多数投票来确定的。对于回归,最终预测是所有树预测的平均值。

应用

  • 金融:随机森林用于风险评估、欺诈检测和股票市场预测。
  • 医疗保健:它有助于诊断疾病、预测患者结局和识别重要的生物标志物。
  • 电子商务:它用于产品推荐、客户细分和预测客户行为。
  • 环境:随机森林应用于遥感领域,用于土地覆盖分类、物种分布建模和气候变化预测。

优点

  • 准确性:随机森林通常提供高准确性,因为它通过平均多棵树来减少过拟合。
  • 鲁棒性:由于其集成特性,它对噪声和异常值具有鲁棒性。
  • 多功能性:可以处理分类和回归任务。
  • 特征重要性:随机森林提供了特征重要性的估计,这有助于理解数据。
  • 处理缺失值:它可以处理数据集中的缺失值。

局限性

  • 复杂性:与单个决策树相比,随机森林可能更复杂且计算量更大。
  • 可解释性:虽然决策树易于解释,但大量树的集成使得随机森林的可解释性较差。
  • 模型大小大:模型可能体积大,占用更多内存,导致预测速度变慢。

3. 决策树

原则

决策树是一种流行的机器学习算法,用于分类和回归任务。它们是决策及其可能后果(包括结果、资源成本和效用)的树状模型。树结构由节点组成,每个节点代表一个特征(或属性),分支代表决策规则,叶节点代表结果。

它的工作原理

根节点:根节点是最顶层的节点,代表整个数据集,然后根据导致最佳分裂的特征将其分裂成两个或多个同质集合。

分裂:此过程是递归进行的。在每个节点,算法根据诸如基尼不纯度、信息增益(熵)或方差减少之类的标准,选择最佳特征来分裂数据。

叶节点:递归分裂持续进行,直到满足停止条件,例如树的最大深度、节点中的最小样本数,或者不再有进一步的分裂改进。最终节点(叶节点)代表预测结果或类别标签。

分裂标准

基尼不纯度:衡量误分类的频率。

信息增益(熵):衡量不确定性或随机性的减少。

方差减少:用于回归树,以最小化子集内的方差。

示例

考虑一个包含学习时数和先前成绩等特征的学生数据集,我们想预测他们是否会通过考试。决策树可能会首先根据学习时数分裂数据,然后根据先前的成绩递归分裂,直到能够将学生分类为通过或失败。

应用

  • 金融:信用评分和风险评估。
  • 医疗保健:根据症状诊断疾病。
  • 零售:客户细分以进行目标营销。
  • 制造业:质量控制和故障检测。

优点

  • 易于理解:决策树易于可视化和解释。非专业人士也能理解。
  • 需要很少的数据预处理:它们不需要对数据进行归一化或缩放。
  • 处理数值和分类数据:决策树无需任何特定调整即可处理不同类型的数据。

局限性

  • 过拟合:决策树容易过拟合,尤其是在深度较大的情况下。这可以通过修剪树来缓解。
  • 不稳定性:数据的微小变化可能导致树结构完全不同。
  • 偏差:如果未正确调整,决策树可能会偏向占主导地位的类别。

4. 支持向量机 (SVM)

原则

支持向量机 (SVM) 是用于分类和回归任务的监督学习模型。它们在高维空间中特别有效,并以其通过使用核函数处理非线性边界的能力而闻名。

它的工作原理

  • 超平面:SVM 找到最好地将数据分离成类别的超平面。在二维空间中,这是线,而在三维空间中,这是平面。对于更高维度,这是超平面。
  • 支持向量:这些是离超平面最近并直接影响其位置的数据点。这些点与超平面之间的距离被最大化。
  • 间隔:选择超平面是为了最大化间隔,即超平面与任一类最近数据点之间的距离。

应用

  • 图像识别:将图像分类到类别中(例如,在图像中检测对象)。
  • 文本分类:电子邮件中的垃圾邮件检测或情感分析。
  • 生物信息学:蛋白质分类和基因表达数据分析。
  • 金融:信用评分和股票市场预测。

优点

  • 在高维空间中有效:当特征数量大于样本数量时,SVM 效果很好。
  • 内存效率高:只有一部分训练数据用于决策函数(支持向量)。
  • 多功能:可以为决策函数指定不同的核函数。

局限性

  • 计算复杂度:SVM 可能计算成本高昂,尤其是在大型数据集上。
  • 核的选择:选择正确的核及其参数至关重要,且可能具有挑战性。
  • 非概率性:SVM 不直接提供概率估计,尽管可以使用 Platt 缩放等方法来获得它们。

5. 学习向量量化 (LVQ)

学习向量量化 (LVQ) 是一种基于原型的监督学习算法,用于分类任务。它结合了竞争学习和监督学习的原理,创建了一组代表特征空间中不同类别的原型。LVQ 在处理复杂的多类分类问题时尤其有效。

原则

基于原型的学习

LVQ 通过用一个或多个原型来表示每个类别来工作,这些原型是特征空间中的向量。在训练过程中,调整这些原型以更好地表示它们所属的类别,并竞争对新的输入向量进行分类。

训练过程

  • 初始化:随机初始化一组原型,或使用 K-Means 等聚类算法。
  • 竞争学习:对于每个训练样本,找到在特征空间中最接近它的原型(即获胜者)。
  • 原型调整:调整获胜原型
  • 如果获胜原型正确分类了训练样本,则将原型移近样本。
  • 如果获胜原型错误地分类了训练样本,则将原型移离样本。

应用

  • 模式识别:手写数字识别、字符识别和面部识别。
  • 医学诊断:根据患者数据对医疗状况进行分类。
  • 金融:信用风险评估和欺诈检测。
  • 语音和音频处理:语音识别和音频分类。

优点

  • 直观且简单:易于理解和实现。
  • 可解释性:原型可以很容易地解释为每个类别的代表性样本。
  • 对多类问题有效:有效处理多类分类问题。

局限性

  • 对初始化敏感:原型的初始位置会显著影响算法的性能。
  • 需要参数调整:学习率和原型数量需要仔细选择。
  • 不适用于大型数据集:可能无法很好地扩展到非常大的数据集。

6. 分类与回归

分类

分类是一种监督学习任务,目标是预测给定输入数据点的分类标签。分类算法的输出是一个离散值,表示数据点所属的类别。常见示例包括电子邮件中的垃圾邮件检测、手写识别和医学诊断。

原则

  • 训练数据:算法在标记的数据集上进行训练,其中每个数据点都与一个类别标签相关联。
  • 模型:算法学习一个决策边界或一组规则,可用于将新的、未见过的数据点分类到一个预定义的类别中。
  • 评估:模型的性能通常使用准确性、精确率、召回率、F1 分数和 ROC-AUC 等指标进行评估。

常用算法

  • 逻辑回归:尽管名称如此,它用于二元分类。它对给定输入属于某个类别的概率进行建模。
  • K-近邻 (k-NN):根据特征空间中其 k 个最近邻的多数类别对数据点进行分类。
  • 决策树:使用决策及其可能后果的树状模型来对数据点进行分类。
  • 支持向量机 (SVM):找到最好地将特征空间中的类别分开的超平面。
  • 随机森林:一种集成方法,它构建多个决策树并合并它们的结果以提高准确性并防止过拟合。
  • 神经网络:对于图像和语音识别等复杂任务特别有效。

回归

回归是一种监督学习任务,目标是为给定的输入数据点预测一个连续的数值。常见示例包括预测房价、股票价格和降雨量。

原则

  • 训练数据:算法在标记的数据集上进行训练,其中每个数据点都与一个连续值相关联。
  • 模型:算法学习一个将输入特征映射到连续输出值的函数。
  • 评估:模型的性能通常使用均方误差 (MSE)、均方根误差 (RMSE)、平均绝对误差 (MAE) 和 R 平方 (R²) 等指标进行评估。

常用算法

  • 线性回归:通过将线性方程拟合到观测数据来模拟因变量与一个或多个自变量之间的关系。
  • 多项式回归:通过考虑自变量与因变量之间的多项式关系来扩展线性回归。
  • 岭回归和 Lasso 回归:线性回归的正则化版本,在损失函数中添加惩罚项以防止过拟合。
  • 决策树:与其在分类中的用途类似,决策树也可以通过预测连续值来进行回归。
  • 随机森林:一种集成方法,它构建多个决策树并平均它们的结果以进行回归任务。
  • 支持向量回归 (SVR):SVM 在回归中的扩展,它试图在阈值内找到最佳拟合线。

结论

对于任何学习数据科学的人来说,理解这六种机器学习算法——K-近邻算法、随机森林、决策树、支持向量机、学习向量量化以及分类和回归的基本概念——都是至关重要的。每种算法都有其独特的优势和应用,使其成为数据科学家工具箱中宝贵的工具。掌握这些算法将为解决各种数据驱动的问题和根据数据分析做出明智的决策提供坚实的基础。