本笔记介绍机器学习中常见的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-Means | K-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散度
机器学习笔记——特征工程、正则化、强化学习