机器学习笔记——30种常见机器学习算法简要汇总

本笔记介绍机器学习中常见的30种机器学习算法。

在这里插入图片描述


文章目录

    • 监督学习算法(Supervised Learning)
      • 回归算法(Regression Algorithms)
      • 分类算法(Classification Algorithms)
    • 无监督学习算法(Unsupervised Learning)
      • 聚类算法(Clustering Algorithms)
      • 降维算法(Dimensionality Reduction Algorithms)
        • 线性降维算法(Linear Dimensionality Reduction Algorithms)
        • 非线性降维算法(Nonlinear Dimensionality Reduction Algorithms)
    • 强化学习算法(Reinforcement Learning)
    • 集成学习算法(Ensemble Learning)
    • 算法详细介绍
      • 1. 监督学习算法(Supervised Learning)
        • 1.1 回归算法(Regression Algorithms)
        • 1.2 分类算法(Classification Algorithms)
      • 2. 无监督学习算法(Unsupervised Learning)
        • 2.1 聚类算法(Clustering Algorithms)
        • 2.2 降维算法(Dimensionality Reduction Algorithms)
      • 3. 半监督学习算法(Semi-Supervised Learning)
      • 4. 强化学习算法(Reinforcement Learning)
      • 5. 集成学习算法(Ensemble Learning)
  • 历史文章


监督学习算法(Supervised Learning)

回归算法(Regression Algorithms)

  • 线性回归(Linear Regression)
  • 岭回归(Ridge Regression)
  • 套索回归(Lasso Regression)
  • 决策树(Decision Tree)
  • 随机森林(Random Forest)
  • 梯度提升树(Gradient Boosting, GB)
  • XGBoost 和 LightGBM

分类算法(Classification Algorithms)

  • 逻辑回归(Logistic Regression)
  • k近邻算法(K-Nearest Neighbors, KNN)
  • 支持向量机(Support Vector Machine, SVM)
  • 朴素贝叶斯(Naive Bayes)
  • 决策树(Decision Tree)
  • 随机森林(Random Forest)
  • 梯度提升树(Gradient Boosting, GB)
  • XGBoost 和 LightGBM

总结:

算法解释应用场景优点缺点
线性回归预测连续数值型变量的算法。它通过拟合一条直线,来表示自变量与因变量之间的线性关系,预测连续变量。房价预测、股票价格预测。简单易用,结果易解释,适合小规模数据。只能处理线性关系,对异常值敏感。
岭回归损失函数中加入L2正则化,防止过拟合。多重共线性问题的数据集。防止过拟合,处理多重共线性问题不能进行特征选择,所有特征系数减小。
套索回归损失函数中加入L1正则化,自动进行特征选择。高维数据的特征选择和回归预测。自动特征选择,产生稀疏解特征高度相关时,模型不稳定。
逻辑回归用于二分类任务的线性分类模型,是一种分类算法。通过sigmoid函数将线性组合转为概率,用于分类。垃圾邮件检测、疾病诊断等二分类任务简单高效,概率输出易理解,适合高维稀疏数据。只能处理线性可分问题,对离群点敏感。
KNN根据样本的K个邻居的类别决定待分类样本的类别。文本分类、图像识别等。实现简单、易于理解,无需训练,对异常值不敏感。计算复杂度高,容易受噪声和高维数据影响。
SVM寻找最大化类间间隔的超平面进行分类。图像分类、文本分类、生物信息学。高维空间表现良好,泛化能力强,可处理非线性问题训练时间长,对参数和核函数敏感
朴素贝叶斯基于贝叶斯定理,假设特征间相互独立,通过先验条件概率进行分类文本分类、垃圾邮件检测等。训练和预测速度快,对小规模数据表现良好。特征独立性假设不常成立,类别分布不均衡时效果差。
决策树通过递归分割特征空间构建决策树模型进行分类或回归客户分类、信用评分。直观易懂,能处理数值和类别型特征。容易过拟合,对数据变动敏感。
随机森林Bagging集成学习的一种,对数据集进行有放回的随机采样并且随机选择特征,通过两个随机组合多个决策树提高预测性能(数据集随机和特征随机)。分类和回归任务,适合大数据场景。稳定性高,能处理高维数据和噪声。计算复杂度高,预测速度慢。 用来解决过拟合(高方差(High Variance)),易欠拟合
梯度提升树通过逐步构建多个弱学习器,逐步降低误差广泛应用于广告预测、信用评分等。捕捉复杂特征关系,精度高训练速度慢,用来解决欠拟合(高偏差(High Bias)),易过拟合
XGBoost/LightGBM梯度提升的优化版本,采用高效的数据结构算法优化策略 ,支持 并行计算,并能够处理大规模数据。大规模分类和回归任务,如广告预测、推荐系统等。训练速度快,支持并行计算,防止过拟合。参数多,调参复杂,解释性较差。

无监督学习算法(Unsupervised Learning)

聚类算法(Clustering Algorithms)

  • K-Means 聚类
  • K-Medoids
  • Mini-Batch K-Means
  • K-Means++
  • 层次聚类(Hierarchical Clustering)
  • 高斯混合模型(Gaussian Mixture Model, GMM)
  • DBSCAN(Density-Based Spatial Clustering of Applications with Noise)
算法解释应用场景优点缺点
K-Means 聚类基于质心,将数据分为K个簇,通过最小化样本到质心的距离进行聚类。市场细分、图像分割、社交网络社区发现。算法简单、计算速度快,适合均匀分布数据。对噪声和初始质心敏感,需要指定簇的数量K。
K-Means++通过优化初始质心选择(从数据集中随机选择一个样本点以及选择距离现有质心最远的点作为下一个质心),减少随机初始化的影响,提高聚类效果。K-Means 的优化版本,适合初始质心选择较难的场景。提高了初始质心选择的合理性,减少收敛到局部最优解的可能性。仍然需要指定K值,且对噪声数据敏感。
K-Medoids基于样本的代表点而非质心进行聚类,使用最靠近簇中心的样本作为代表点减少异常值的影响偏好用样本代表而非质心的场景,适用于异常值多的数据。更鲁棒于异常值和噪声,避免极端值影响聚类结果。计算复杂度高,比K-Means慢,不适合大规模数据。
Mini-Batch K-MeansK-Means 的扩展版本,每次只使用数据子集进行更新,适合大规模数据集的聚类。大规模数据聚类,如在线广告分类、图像分类等。计算速度快,适合大数据场景,能够处理流式数据。可能不如标准K-Means精确,结果依赖于批次的选择。
层次聚类基于相似性构建层次结构,通过合并或拆分样本形成树状结构进行聚类。基因表达数据分析、图像处理、文本分类。无需提前指定K值,层次结构便于理解。计算复杂度高,对噪声数据敏感,难以处理大规模数据。
高斯混合模型(GMM)假设数据由多个高斯分布混合而成,使用EM算法估计参数,通过概率分配进行软聚类。聚类、密度估计、异常检测。处理复杂簇形状,提供软聚类结果。对初始参数敏感,计算复杂度高,不适合大规模数据。
DBSCAN基于密度的聚类算法,通过定义核心点和边界点发现簇,能够识别噪声数据。空间数据挖掘、图像处理、地理信息系统。能发现任意形状的簇,对噪声和异常值鲁棒。对参数(ε和MinPts)敏感,数据密度差异大时效果差。

降维算法(Dimensionality Reduction Algorithms)

线性降维算法(Linear Dimensionality Reduction Algorithms)
  • 主成分分析(PCA, Principal Component Analysis)
  • 线性判别分析(LDA, Linear Discriminant Analysis)
  • 奇异值分解(SVD)

总结:

算法解释应用场景优点缺点
主成分分析(PCA)通过线性变换高维数据投影到低维空间,保持投影方向上的方差最大化,进行无监督的降维方法数据可视化、噪声消除、特征提取,如图像处理、金融数据分析。算法简单,计算高效,保留主要信息。仅能捕捉线性关系,无法处理非线性数据。
线性判别分析(LDA)通过最大化类间方差最小化类内方差,找到有助于分类的投影方向,进行有监督的降维有标签数据的降维和分类任务,如人脸识别、文本分类。结合分类信息进行降维,有助于分类。仅适用于线性可分的数据,对多类别不平衡问题效果不佳。
奇异值分解(SVD)将原始数据矩阵分解为特征向量和特征值的矩阵形式,能够保留数据的主要特征,常用于矩阵降维文本分析、协同过滤推荐系统、图像压缩。能有效处理稀疏数据、维度较高的数据,适合矩阵数据。对大规模数据计算复杂度较高,不适合处理非线性数据。
非线性降维算法(Nonlinear Dimensionality Reduction Algorithms)
  • 核主成分分析(K-PCA)
  • 核判别分析(NDA)
  • T-SNE

总结:

算法解释应用场景优点缺点
T-SNE通过在高维低维空间中分别计算点对之间的相似度,然后最小化两个分布之间的差异 ,使相似数据点在低维空间中靠近。高维数据的可视化和降维,如图像数据、文本数据。保持数据的局部结构,适合数据可视化。计算复杂度高,对参数敏感,结果不稳定。
核主成分分析(K-PCA)在PCA的基础上引入核技巧,通过核函数将数据映射到高维空间,然后使用PCA在高维空间进行线性降维。非线性数据的降维,如图像分类、非线性回归。能处理非线性数据,适用于高维复杂数据集。核函数的选择对结果影响较大,计算开销较高。
核判别分析(NDA)核函数扩展的线性判别分析,利用非线性映射将数据投影到高维空间,再使用NDA,进行分类任务的降维。非线性分类问题,如复杂图像分类、模式识别。能处理非线性分类任务,保持类间和类内方差的平衡。需要选择合适的核函数,计算复杂度高。

强化学习算法(Reinforcement Learning)

  • Q 学习(Q-Learning)
  • 深度 Q 网络(DQN, Deep Q Network)

总结:

算法解释应用场景优点缺点
Q 学习基于值函数的强化学习算法,通过状态-动作对的评分指导行为,逼近最优策略离散状态和动作空间的任务,如迷宫导航、棋类游戏。无需模型信息,通过与环境交互学习最优策略。高维状态空间需要大量内存,收敛慢。
深度 Q 网络(DQN)结合深度学习和强化学习,通过神经网络逼近 Q 值,处理高维状态空间高维状态空间任务,如视频游戏、无人驾驶。能处理高维状态空间,学习复杂策略。训练不稳定,依赖于经验回放和目标网络,超参数敏感。

集成学习算法(Ensemble Learning)

  • 袋装法(Bagging)
  • 提升法(Boosting)
  • 堆叠法(Stacking)

总结:

算法解释应用场景优点缺点
袋装法(Bagging)通过对进行多次数据集有放回的随机采样 ,训练多个模型。**随机森林就是其中一种,**不稳定模型(如决策树、神经网络)的分类和回归任务。有效降低方差,提高模型稳定性,对噪声鲁棒。训练多个模型,计算复杂度高。
提升法(Boosting)串行,通过逐步训练一系列弱模型,每个模型都试图纠正前一个模型的错误预测分类和回归任务,如广告点击率预测、信用评分。有效降低偏差,提升模型精度,适合处理复杂的非线性关系。训练时间长,易过拟合,对异常值敏感。
堆叠法(Stacking)通过训练多个基模型,将其预测结果作为新特征,进一步训练一个元模型,提升整体预测性能。适合传统单模型效果不佳的分类和回归任务。综合多个模型的优势,提升模型表现,灵活性强。计算复杂度高,易过拟合,调参难度大。

算法详细介绍

1. 监督学习算法(Supervised Learning)

1.1 回归算法(Regression Algorithms)

1. 线性回归(Linear Regression)

  • 解释
    线性回归是一种用于预测连续数值型变量的算法。它通过拟合一条直线(在多维空间中是一个超平面),来表示自变量(特征)与因变量(目标值)之间的线性关系。模型的目标是最小化预测值与真实值之间的均方误差(MSE)。

  • 应用场景

    • 房价预测、股票价格预测等连续数值型变量的预测任务。
    • 分析两个或多个变量之间的线性关系。
  • 优点

    • 简单易用,结果易于解释。
    • 计算速度快,适合小规模数据集和初步数据分析。
  • 缺点

    • 只能处理线性关系,无法处理非线性数据。
    • 对异常值敏感,容易受噪声影响。

2. 岭回归(Ridge Regression)

  • 解释
    岭回归是线性回归的扩展版本,通过在损失函数中加入 L2 正则化项来限制模型的复杂度,防止过拟合问题。它对模型的系数进行约束,使得所有特征的权重都较小。

  • 应用场景

    • 数据量大、特征数量多的回归问题。
    • 存在多重共线性(特征间高度相关)的问题。
  • 优点

    • 通过 L2 正则化减少模型复杂度,防止过拟合。
    • 能有效处理特征之间的多重共线性问题。
  • 缺点

    • 可能导致所有特征系数减小,但不会进行特征选择。

3. 套索回归(Lasso Regression)

  • 解释
    套索回归也是线性回归的一种变体,它在损失函数中加入 L1 正则化项,可以通过惩罚不重要的特征使其权重变为零,从而自动进行特征选择。

  • 应用场景

    • 高维数据场景中进行特征选择和回归预测。
    • 需要识别重要特征的场景,如基因数据分析。
  • 优点

    • 通过 L1 正则化自动选择特征,产生稀疏解。
    • 能够将不重要的特征权重缩减为 0,有助于模型解释性。
  • 缺点

    • 当特征高度相关时,模型会随机选择其中一个特征,导致不稳定。

4. 逻辑回归(Logistic Regression)

  • 解释
    逻辑回归是一种用于二分类任务的线性分类模型,尽管名称中包含“回归”,但它实际上是一种分类算法。它通过 sigmoid 函数将线性组合转换为概率,并根据概率值来决定样本的类别。

  • 应用场景

    • 二分类任务,如垃圾邮件检测、疾病诊断、信用评分等。
    • 多分类任务可以使用 Softmax 回归扩展。
  • 优点

    • 简单、高效,概率输出便于理解和解释。
    • 适合高维稀疏数据,且可以通过正则化防止过拟合。
  • 缺点

    • 只能处理线性可分问题,无法处理复杂的非线性关系。
    • 对离群点敏感,模型效果依赖于特征工程。
1.2 分类算法(Classification Algorithms)

5. k近邻算法(K-Nearest Neighbors, KNN)

  • 解释
    KNN 是一种基于实例的学习方法,通过测量待分类样本与训练集中样本的距离,将最近的 K 个样本的类别作为参考,以简单投票或加权投票的方式决定待分类样本的类别。

  • 应用场景

    • 文本分类、图像识别、推荐系统等。
    • 数据分布较为简单、类别之间有明显距离的分类任务。
  • 优点

    • 实现简单、易于理解,无需训练过程。
    • 对异常值不敏感,适合小规模数据。
  • 缺点

    • 计算复杂度高,随着数据量增加,预测速度变慢。
    • 对噪声和高维数据敏感,容易受距离度量方式影响。

6. 支持向量机(Support Vector Machine, SVM)

  • 解释
    SVM 是一种强大的二分类算法,它通过寻找最大化类间间隔的超平面来进行分类。SVM 可以通过引入核函数将数据从低维空间映射到高维空间,从而能够处理非线性分类问题。

  • 应用场景

    • 图像分类、文本分类、生物信息学等二分类问题。
    • 特征维度高、样本数量较小的场景,如人脸识别、基因表达数据分类。
  • 优点

    • 在高维空间中表现良好,泛化能力强。
    • 可以通过核函数处理非线性问题。
  • 缺点

    • 训练时间长,计算复杂度高,尤其是在大规模数据上。
    • 对参数和核函数选择敏感,调优复杂。

7. 朴素贝叶斯(Naive Bayes)

  • 解释
    朴素贝叶斯是一种基于贝叶斯定理的概率分类算法,假设特征之间相互独立。它通过计算每个类别的先验概率和特征条件概率,得出样本属于每个类别的后验概率,从而进行分类。

  • 应用场景

    • 文本分类、垃圾邮件检测、情感分析等 NLP 任务。
    • 数据量小且特征间独立性较强的分类问题。
  • 优点

    • 训练和预测速度快,对小规模数据表现良好。
    • 对特征间相互独立假设的场景有很好的表现。
  • 缺点

    • 假设特征相互独立,实际应用中常不成立。
    • 对数据量较少、类别分布不均衡的数据效果较差。

8. 决策树(Decision Tree)

  • 解释
    决策树是一种树状的模型,它将样本的特征空间递归地分割为互斥的子空间,每个分割对应一个决策节点。最终形成的树形结构用于预测新样本的类别或数值。

  • 应用场景

    • 客户分类、信用评分、风险评估等。
    • 对数据分布不均衡、特征与目标变量关系复杂的场景。
  • 优点

    • 直观易懂,结果解释性强。
    • 既能处理数值型特征,也能处理类别型特征。
  • 缺点

    • 容易过拟合,泛化能力差。
    • 对数据中的微小变动敏感,模型不稳定。

9. 随机森林(Random Forest)

  • 解释
    随机森林是集成学习中的一种,它通过组合多个决策树模型来提高预测性能。每棵树使用从样本数据中随机抽样的数据和随机选择的特征进行训练,最终通过所有树的投票结果进行预测。

  • 应用场景

    • 分类和回归任务,广泛应用于金融、医疗、营销等领域。
    • 数据量大、特征多样且存在噪声的场景。
  • 优点

    • 通过集成多棵决策树,模型稳定性高,防止过拟合。
    • 能处理缺失数据和高维数据。
  • 缺点

    • 计算复杂度高,预测速度慢。
    • 不容易解释,对特征重要性计算较难。

10. 梯度提升树(Gradient Boosting, GB)

  • 解释
    梯度提升树是一种提升(Boosting)算法,通过逐步构建多个弱学习器(决策树),每个学习器在前一个学习器的基础上进行改进,逐步降低训练误差。它的目标是最小化损失函数。

  • 应用场景

    • 各种分类和回归任务,如广告点击率预测、信用评分、风险控制等。
    • 需要高准确率的任务,如 Kaggle 比赛。
  • 优点

    • 能够捕捉复杂的特征关系,精度高。
    • 提供灵活的损失函数,适应不同的任务需求。
  • 缺点

    • 训练速度慢,对参数设置敏感。
    • 易过拟合,尤其在数据量少时。

11. XGBoost 和 LightGBM

  • 解释
    XGBoost 和 LightGBM 是基于梯度提升的优化版本,旨在提高训练速度和模型性能。它们采用高效的数据结构和算法优化策略,支持并行计算,并能够处理大规模数据。

  • 应用场景

    • 大规模数据的分类和回归问题,如信用风险评估、客户流失预测。
    • 高维数据场景,如广告预测、推荐系统等。
  • 优点

    • 计算速度快,适合大数据集,支持并行计算。
    • 提供了多种正则化和剪枝策略,防止过拟合。
  • 缺点

    • 参数较多,调参复杂。
    • 解释性相对较差,模型黑箱性强。

2. 无监督学习算法(Unsupervised Learning)

2.1 聚类算法(Clustering Algorithms)

12. K-Means 聚类

  • 解释
    K-Means 聚类是一种基于质心的无监督学习算法,它通过将数据分成 K 个簇,每个簇由一个质心表示。算法通过反复迭代,最小化样本到其最近质心的距离平方和,从而将样本分配到相应的簇。

  • 应用场景

    • 市场细分、图像分割、社交网络社区发现等。
    • 数据量大且簇分布均匀的场景。
  • 优点

    • 算法简单、计算速度快,易于理解和实现。
    • 对球形簇和均匀分布数据效果较好。
  • 缺点

    • 需要提前指定簇的数量 K。
    • 对噪声和异常值敏感,容易受初始中心影响。

13. 层次聚类(Hierarchical Clustering)

  • 解释
    层次聚类是一种基于数据之间的相似性逐步构建层次结构的算法。它通过将样本逐步合并(自底向上)或逐步拆分(自顶向下),形成一个聚类的树状结构(树状图)。

  • 应用场景

    • 基因表达数据分析、图像处理、文本分类等。
    • 数据量小且不确定 K 值时使用。
  • 优点

    • 无需提前指定簇的数量,层次结构便于理解。
    • 可以生成聚类的树状结构,观察不同层次的聚类结果。
  • 缺点

    • 计算复杂度高,数据量大时效率低。
    • 对噪声数据敏感,且难以处理大规模数据。

14. 高斯混合模型(Gaussian Mixture Model, GMM)

  • 解释
    高斯混合模型是一种基于概率密度估计的聚类算法,它假设数据是由多个高斯分布混合而成的。每个高斯分布表示一个簇,算法通过期望最大化(EM)算法来估计模型参数,从而将数据点分配到不同的簇。

  • 应用场景

    • 聚类、密度估计、异常检测、图像分割等。
    • 数据分布复杂、有重叠的场景。
  • 优点

    • 能处理复杂的簇形状和大小差异较大的簇。
    • 提供软聚类结果,每个数据点属于各个簇的概率。
  • 缺点

    • 对初始参数敏感,可能收敛到局部最优解。
    • 计算复杂度高,不适合大数据场景。

15. DBSCAN(Density-Based Spatial Clustering of Applications with Noise)

  • 解释
    DBSCAN 是一种基于密度的聚类算法,通过将密度相连的样本归为同一个簇,并能够识别噪声数据。它定义了核心点、边界点和噪声点,通过 ε 邻域和最小点数来确定簇的结构。

  • 应用场景

    • 空间数据挖掘、图像处理、地理信息系统等。
    • 数据分布不规则、噪声数据较多的场景。
  • 优点

    • 能发现任意形状的簇,能够自动确定簇的数量。
    • 对噪声数据和异常值鲁棒性强。
  • 缺点

    • 对参数(如 ε 和 MinPts)敏感,不同数据集需手动调参。
    • 在数据密度差异较大时,效果较差。
2.2 降维算法(Dimensionality Reduction Algorithms)

16. 主成分分析(PCA, Principal Component Analysis)

  • 解释
    PCA 是一种降维算法,通过将高维数据线性变换到低维空间中,同时保持数据在投影方向上的方差最大化。它找到新的正交基,将数据投影到主成分上,从而减少特征维度。

  • 应用场景

    • 数据可视化、噪声消除、特征提取等。
    • 高维数据降维,如图像处理、金融数据分析。
  • 优点

    • 计算简单,易于实现和解释。
    • 能有效减少特征维度,保留数据主要信息。
  • 缺点

    • 仅能捕捉线性关系,无法处理非线性数据。
    • 对数据中心化要求严格,离群点会影响效果。

17. 线性判别分析(LDA, Linear Discriminant Analysis)

  • 解释
    LDA 是一种同时考虑降维和分类的线性模型。它通过最大化类间方差和最小化类内方差的比值,找到最有利于分类的低维子空间投影方向。它适用于有标签数据的降维和分类。

  • 应用场景

    • 降维和分类结合的场景,如人脸识别、文本分类等。
    • 需要最大化类别间差异、最小化类别内差异的降维任务。
  • 优点

    • 在降维的同时考虑类别标签信息,有助于分类任务。
    • 适合类别数较少、类别间线性可分的场景。
  • 缺点

    • 对数据的线性可分性有较高要求。
    • 不适合多类别不平衡或类别分布复杂的场景。

18. t-SNE(t-Distributed Stochastic Neighbor Embedding)

  • 解释
    t-SNE 是一种非线性降维算法,适用于高维数据的可视化。它通过最小化高维空间和低维空间的相似度分布之间的 KL 散度,将高维数据映射到低维空间中,以保持数据的局部结构。

  • 应用场景

    • 高维数据的降维和可视化,如图像数据、文本数据等。
    • 需要展示数据局部结构的场景,如聚类结果可视化。
  • 优点

    • 能有效保持高维数据在低维空间的局部结构。
    • 降维效果好,适合用于数据可视化。
  • 缺点

    • 计算复杂度高,处理大规模数据时速度慢。
    • 对参数敏感,结果不稳定,难以调参。

3. 半监督学习算法(Semi-Supervised Learning)

19. 半监督 SVM(Semi-Supervised SVM)

  • 解释
    半监督 SVM 是一种结合有标签数据和无标签数据进行分类的模型。它在传统 SVM 的基础上,通过加入无标签数据的损失项,最大化无标签数据的决策边界间隔,从而提升模型的分类性能。

  • 应用场景

    • 有大量无标签数据和少量有标签数据的场景,如医学图像标注、文本分类。
    • 标签数据获取成本高或样本不平衡的场景。
  • 优点

    • 结合有标签数据和无标签数据进行学习,能够提升模型效果。
    • 能利用大量无标签数据进行训练,节省标注成本。
  • 缺点

    • 对无标签数据的分布假设敏感,如果假设不成立,可能会降低模型效果。
    • 训练复杂度高,调参较为复杂。

4. 强化学习算法(Reinforcement Learning)

20. Q 学习(Q-Learning)

  • 解释
    Q 学习是一种基于值函数的强化学习算法,通过对状态-动作对进行评分来指导代理的行为策略。算法通过更新 Q 值表来逼近最优策略,从而在每个状态下选择使累计奖励最大的动作。

  • 应用场景

    • 离散状态和动作空间

的任务,如迷宫导航、棋类游戏等。

  • 需要学习最优策略的场景,如机器人控制、资源分配。

  • 优点

    • 能有效处理部分可观测环境中的最优策略学习。
    • 无需模型信息,通过与环境的交互即可学习策略。
  • 缺点

    • 在高维状态空间下,表格形式的 Q 值难以表示,需要大量内存。
    • 需要大量的探索和训练才能收敛到最优解。

21. 深度 Q 网络(DQN, Deep Q Network)

  • 解释
    DQN 是结合深度学习和强化学习的一种算法,通过神经网络逼近 Q 值,解决了传统 Q 学习在高维状态空间下的局限性。它使用经验回放和目标网络来稳定训练过程。

  • 应用场景

    • 高维状态空间的任务,如 Atari 游戏、无人驾驶等。
    • 需要学习复杂策略的场景,如机器人控制、视频游戏。
  • 优点

    • 能处理高维状态空间,通过神经网络逼近 Q 值。
    • 结合深度学习和强化学习,能在复杂环境中学习有效策略。
  • 缺点

    • 训练不稳定,依赖于经验回放和目标网络。
    • 对超参数敏感,训练时间长,易陷入局部最优。

5. 集成学习算法(Ensemble Learning)

22. 袋装法(Bagging)

  • 解释
    袋装法是一种集成学习方法,通过对原始数据进行多次随机采样(有放回)生成多个子数据集,并分别训练多个基模型。最终通过这些基模型的投票或平均结果来提高模型的泛化能力。

  • 应用场景

    • 适用于不稳定的模型,如决策树、神经网络等。
    • 分类和回归任务,如随机森林、保险风险预测等。
  • 优点

    • 能有效降低模型的方差,提高模型稳定性。
    • 能处理高维数据,对噪声数据鲁棒性强。
  • 缺点

    • 训练多个模型,计算复杂度高。
    • 对偏差大的模型效果有限。

23. 提升法(Boosting)

  • 解释
    提升法是一种集成学习方法,通过训练多个弱学习器来逐步降低训练误差。每个学习器会在前一个学习器错误分类的样本上赋予更高权重,从而在后续训练中更加关注这些难以分类的样本。

  • 应用场景

    • 各种回归和分类任务,如广告点击率预测、信用评分。
    • 需要高精度模型的任务,如 Kaggle 竞赛。
  • 优点

    • 能有效降低偏差,提高模型精度。
    • 适合处理复杂的非线性关系。
  • 缺点

    • 训练时间长,对异常值敏感,易过拟合。
    • 模型解释性差,调参复杂。

24. 堆叠法(Stacking)

  • 解释
    堆叠法是一种集成学习方法,通过训练多个基模型,将它们的预测结果作为新的输入特征,进一步训练一个元模型。元模型综合基模型的预测结果,生成最终的预测值。【类似模型蒸馏】

  • 应用场景

    • 需要集成多种不同模型的任务,如信用评分、客户流失预测。
    • 在传统单模型效果不佳的场景。
  • 优点

    • 能综合不同模型的优势,提升整体模型的表现。
    • 灵活性强,可以使用多种不同的模型和组合方式。
  • 缺点

    • 计算复杂度高,容易过拟合。
    • 需要对基模型和元模型进行仔细调优,难度大。

在实际应用中,选择合适的算法取决于数据特点、任务需求以及模型的可解释性和性能要求。通过结合多种算法和策略,可以更好地解决实际问题。

历史文章

机器学习笔记——损失函数、代价函数和KL散度
机器学习笔记——特征工程、正则化、强化学习

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/920106.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Vue3、Vite5、Primevue、Oxlint、Husky9 简单快速搭建最新的Web项目模板

Vue3、Vite5、Oxlint、Husky9 简单搭建最新的Web项目模板 特色进入正题创建基础模板配置API自动化导入配置组件自动化导入配置UnoCss接入Primevue接入VueRouter4配置项目全局环境变量 封装Axios接入Pinia状态管理接入Prerttier OXLint ESLint接入 husky lint-staged&#xf…

利用RAGflow和LM Studio建立食品法规问答系统

前言 食品企业在管理标准、法规,特别是食品原料、特殊食品法规时,难以通过速查法规得到准确的结果。随着AI技术的发展,互联网上出现很多AI知识库的解决方案。 经过一轮测试,找到问题抓手、打通业务底层逻辑、对齐行业颗粒度、沉…

百度智能云千帆大模型平台引领企业创新增长

本文整理自百度世界大会 2024——「智能跃迁 产业加速」论坛的同名演讲。 更多大会演讲内容,请访问: https://baiduworld.baidu.com 首先,跟大家分享一张图,这个是我们目前大模型应用落地的场景分布。可以看到,大模型…

人形机器人开发、XR仿真训练、影视动画制作,一副手套支持多种应用

近日,动作捕捉数据手套供应商Manus 推出了其最新产品Metagloves Pro。其最大特点是佩戴更加方便简洁且精度更高。Metagloves Pro功能强大且适用于多种应用场景,包括:人形机器人研究、XR仿真训练以及影视动画制作等。 一、人形机器人研究 Man…

sql server怎样用sql profiler捕获带变量值的慢sql

一 新建跟踪 点击工具-SQL Server Profiler: 点击文件-新建跟踪的按钮: 在‘事件选择’选项卡只选择如下两项内容(RPC:Completed,SQL:BatchCompleted),把多余的取消勾选: 然后勾选上面截图中右下方的‘显示…

Linux中虚拟内存详解

一、虚拟内存的概念 虚拟内存是现代操作系统为了有效管理内存资源、提高内存利用率以及实现多任务处理等目的而引入的一种重要的内存管理机制。它为每个程序(通常对应一个进程)提供了一个看似连续且容量较大的地址空间,而这个地址空间并不一…

Qt、C++实现五子棋人机对战与本地双人对战(高难度AI,极少代码)

介绍 本项目基于 Qt C 实现了一个完整的五子棋游戏,支持 人机对战 和 人人对战 模式,并提供了三种难度选择(简单、中等、困难)。界面美观,逻辑清晰,是一个综合性很强的 Qt 小项目 标题项目核心功能 棋盘…

Vue非单文件组件

目录 Vue非单文件组件 几个注意点 组件的嵌套 关于VueComponent 重要的内置关系 Vue非单文件组件 Vue中使用组件的三大步骤: 一、定义组件(创建组件) 二、注册组件 三、使用组件(写组件标签) 一、…

关于C++地址交换的实现

关于地址的交换实现&#xff0c;我们要使用指针引用的方式进行&#xff0c;例如&#xff1a; #include <iostream>// 定义函数交换两个整型指针的地址 void swapIntPtrAddresses(int* &ptr1, int* &ptr2) {int *temp ptr1;ptr1 ptr2;ptr2 temp; }int main() …

Windows 软件之 FFmpeg

文章目录 前言1 FFmpeg 视频处理1.1 编解码1.2 其它视频编辑命令1.3 视频抽帧 2 FFmpeg 音频处理3 FFmpeg 图片处理3.1 编解码3.2 拼接图片3.3 图片合成视频 附录1&#xff1a;mediainfo.ps1 前言 FFmpeg 是一套可以用来记录、转换数字音频、视频&#xff0c;并能将其转化为流的…

Android okhttp 网络链接各阶段监控

步骤 1: 添加依赖 在项目的 build.gradle 文件中&#xff0c;添加 OkHttp 依赖&#xff1a; implementation com.squareup.okhttp3:okhttp:4.11.0 步骤 2: 创建自定义的 EventListener 创建一个自定义的 EventListener 类&#xff1a; import android.util.Log import okht…

【Java】字节码文件

字节码文件组成部分 1、基本信息 1.1 Magic 魔数 文件是无法通过文件扩展名来确定文件类型的&#xff0c;文件扩展名可以随意修改&#xff0c;不影响文件的内容。软件使用文件的头几个字节&#xff08;文件头&#xff09;去校验文件的类型&#xff0c;如果软件不支持该种类型就…

Easyexcel(3-文件导出)

相关文章链接 Easyexcel&#xff08;1-注解使用&#xff09;Easyexcel&#xff08;2-文件读取&#xff09;Easyexcel&#xff08;3-文件导出&#xff09; 响应头设置 通过设置文件导出的响应头&#xff0c;可以自定义文件导出的名字信息等 //编码格式为UTF-8 response.setC…

【机器学习】朴素贝叶斯算法

目录 什么是朴素贝叶斯算法&#xff1f; 算法引入 贝叶斯定理 朴素贝叶斯分类器 工作原理 优缺点 应用场景 实现示例 基本步骤&#xff1a; 在机器学习的世界里&#xff0c;朴素贝叶斯算法以其简单性和高效性而著称。尽管它的名字听起来有点复杂&#xff0c;但实际上…

机器翻译基础与模型 之二: 基于CNN的模型

一、CNN网络 相比于全连接网络&#xff0c;卷积神经网络最大的特点在于具有局部连接&#xff08;Locally Connected&#xff09;和权值共享&#xff08;Weight Sharing&#xff09;的特性。 1.1 卷积核与卷积操作 1.2 步长与填充 1.3 池化 以上关于CNN的基础概念和技术就不…

IntelliJ+SpringBoot项目实战(四)--快速上手数据库开发

对于新手学习SpringBoot开发&#xff0c;可能最急迫的事情就是尽快掌握数据库的开发。目前数据库开发主要流行使用Mybatis和Mybatis Plus,不过这2个框架对于新手而言需要一定的时间掌握&#xff0c;如果快速上手数据库开发&#xff0c;可以先按照本文介绍的方式使用JdbcTemplat…

C总结测评

测评代码&#xff1a;month_11/test_19/main.c Hera_Yc/bit_C_学习 - 码云 - 开源中国 第一题&#xff1a;该程序输出的是多少&#xff1f; #include <stdio.h> int main() {unsigned char i 7;//0~255int j 0;for (; i > 0; i - 3){j;}printf("%d\n",…

神经网络中常用的激活函数(公式 + 函数图像)

激活函数是人工神经网络中的一个关键组件&#xff0c;负责引入非线性&#xff0c;从而使神经网络能够学习和表示复杂的非线性关系。没有激活函数&#xff0c;神经网络中的所有计算都是线性变换&#xff0c;而线性模型的表达能力有限&#xff0c;无法处理复杂的任务。 激活函数…

在CentOS中,通过nginx访问php

其实是nginx反向代理到php-fpm&#xff0c;就像nginx反向代理到tomcat。 1、安装PHP-FPM 1.1 安装 yum install php yum install php-fpm php-common 这里只安装了php-fpm&#xff0c;根据需要安装php模块&#xff0c;比如需要访问mysql则添加安装 php-mysqlnd。 1.2 启动…

前端—Cursor编辑器

在当今快速发展的软件开发领域&#xff0c;效率和质量是衡量一个工具是否优秀的两个关键指标。今天&#xff0c;我要向大家推荐一款革命性的代码编辑器——Cursor&#xff0c;它集成了强大的AI功能&#xff0c;旨在提高开发者的编程效率。以下是Cursor编辑器的详细介绍和推荐理…