算法金 | 决策树、随机森林、bagging、boosting、Adaboost、GBDT、XGBoost 算法大全


大侠幸会,在下全网同名「算法金」 0 基础转 AI 上岸,多个算法赛 Top 「日更万日,让更多人享受智能乐趣」

决策树是一种简单直观的机器学习算法,它广泛应用于分类和回归问题中。它的核心思想是将复杂的决策过程分解成一系列简单的决策,通过不断地将数据集分割成更小的子集来进行预测。本文将带你详细了解决策树系列算法的定义、原理、构建方法、剪枝与优化技术,以及它的优缺点。

一、决策树

1.1 决策树的定义与原理

决策树的定义:决策树是一种树形结构,其中每个节点表示一个特征的测试,每个分支表示一个测试结果,每个叶子节点表示一个类别或回归值。决策树的目标是通过一系列的特征测试,将数据分成尽可能纯的子集。

决策树的原理:决策树通过递归地选择最优特征进行分割来构建。最优特征的选择通常基于某种度量标准,如信息增益、基尼指数或方差减少。每次分割都会将数据集分成更小的子集,直到满足停止条件(如达到最大深度或子集纯度)为止。

1.2 决策树的构建方法

构建方法:

  1. 选择最优特征:使用信息增益、基尼指数或方差减少等标准来选择最优特征进行分割
  2. 分割数据集:根据最优特征的不同取值将数据集分割成若干子集
  3. 递归构建子树:对每个子集递归地选择最优特征进行分割,直到满足停止条件
  4. 生成叶子节点:当满足停止条件时,生成叶子节点并标记类别或回归值

1.3 决策树的剪枝与优化

剪枝技术:

  1. 预剪枝:在构建过程中提前停止树的生长,如限制树的最大深度、最小样本数或最小增益
  2. 后剪枝:在构建完成后,通过剪去不重要的子树来简化模型,如通过交叉验证选择最优剪枝点

优化方法:

  1. 特征选择:使用基于统计显著性的特征选择方法来减少特征数量
  2. 参数调整:通过网格搜索或随机搜索优化超参数,如最大深度、最小样本数等
  3. 集成方法:结合多个决策树(如随机森林、梯度提升树)来提高模型性能

1.4 决策树的优缺点

优点:

  1. 直观简单,易于理解和解释
  2. 适用于数值型和类别型数据
  3. 可以处理多输出问题

缺点:

  1. 容易过拟合,尤其是深树
  2. 对噪声和小变动敏感
  3. 计算复杂度高,尤其是在特征数多时

更多内容,见微*公号往期文章: 突破最强算法模型,决策树算法!!

防失联,进免费知识星球交流。算法知识直达星球:t.zsxq.com/ckSu3https://t.zsxq.com/ckSu3

更多内容,见免费知识星球

二、集成学习概述

集成学习是通过结合多个学习器的预测结果来提高模型性能的一种方法。它的核心思想是集成多个模型,通过投票、加权等方式获得更稳定、更准确的预测结果。集成学习在处理高维数据、降低过拟合和提高模型泛化能力方面具有显著优势。

2.1 集成学习的基本概念

集成学习的定义:集成学习(Ensemble Learning)是一种将多个基模型组合在一起的方法,其目标是通过结合多个模型的优点来提高整体性能。集成学习通常分为两类:同质集成(基模型相同,如随机森林)和异质集成(基模型不同,如堆叠模型)。

集成学习的原理:集成学习的基本原理是通过组合多个弱模型(即性能不佳的单个模型)来构建一个强模型(即性能优异的集成模型)。这种组合可以通过多种方式实现,常见的方法包括:Bagging、Boosting和Stacking。

以下是集成学习的一些常用方法:

  1. Bagging(Bootstrap Aggregating):通过对数据集进行有放回的随机抽样,生成多个子数据集,并在每个子数据集上训练基模型。最终的预测结果通过对所有基模型的预测结果进行平均或投票来确定
  2. Boosting:通过迭代地训练基模型,每个基模型在前一个基模型的基础上进行改进。每次迭代时,增加错误分类样本的权重,使得新模型能够更好地处理这些样本
  3. Stacking:通过训练多个基模型,并使用这些基模型的预测结果作为输入,训练一个次级模型来进行最终预测

2.2 Bagging 和 Boosting 的区别

Bagging(Bootstrap Aggregating):

  1. 通过对数据集进行有放回的随机抽样,生成多个子数据集
  2. 在每个子数据集上训练基模型
  3. 通过对所有基模型的预测结果进行平均或投票来确定最终结果
  4. 主要用于减少方差,防止过拟合

Boosting:

  1. 通过迭代地训练基模型,每个基模型在前一个基模型的基础上进行改进
  2. 每次迭代时,增加错误分类样本的权重,使得新模型能够更好地处理这些样本
  3. 通过加权平均或加权投票来确定最终结果
  4. 主要用于减少偏差,提高模型的准确性

主要区别:

  • 训练方式:Bagging 是并行训练多个基模型,Boosting 是串行训练多个基模型
  • 数据处理:Bagging 使用有放回的随机抽样,Boosting 根据错误率调整样本权重
  • 目标:Bagging 主要减少方差,Boosting 主要减少偏差

2.3 集成学习在机器学习中的重要性

提高模型性能:集成学习通过结合多个基模型的预测结果,可以显著提高模型的准确性和稳定性。这在处理复杂问题和高维数据时尤为重要

降低过拟合风险:集成学习通过对多个模型的预测结果进行综合,减少了单个模型的过拟合风险,使得模型具有更好的泛化能力

增强模型鲁棒性:集成学习可以通过结合不同的模型,提高模型对噪声和异常值的鲁棒性,增强模型在实际应用中的可靠性

三、Bagging

Bagging 是集成学习中的一种方法,通过并行训练多个基模型来提高整体性能。它通过对数据集进行有放回的随机抽样,生成多个子数据集,并在每个子数据集上训练基模型。最终的预测结果通过对所有基模型的预测结果进行平均或投票来确定。Bagging 主要用于减少模型的方差,防止过拟合。

3.1 Bagging 的定义与原理

Bagging 的定义:Bagging(Bootstrap Aggregating)是一种通过并行训练多个基模型来提高模型性能的集成学习方法。它通过对原始数据集进行有放回的随机抽样,生成多个子数据集,并在每个子数据集上训练基模型。

Bagging 的原理:Bagging 的核心思想是通过减少模型的方差来提高模型的泛化能力。具体步骤如下:

  1. 从原始数据集中有放回地随机抽样生成多个子数据集
  2. 在每个子数据集上训练一个基模型
  3. 对每个基模型的预测结果进行平均(回归任务)或投票(分类任务)以得到最终预测结果

3.2 Bagging 的具体算法与流程

Bagging 的具体流程:

  1. 数据集生成:对原始数据集进行有放回的随机抽样,生成多个子数据集
  2. 模型训练:在每个子数据集上训练一个基模型(如决策树)
  3. 结果综合:对每个基模型的预测结果进行平均或投票,得到最终的预测结果

3.3 Bagging 的优缺点

优点:

  1. 减少方差:通过对多个基模型的预测结果进行综合,Bagging 能有效减少模型的方差,提升模型的泛化能力
  2. 防止过拟合:由于每个基模型是在不同的子数据集上训练的,Bagging 能有效防止单个模型过拟合
  3. 简单易用:Bagging 方法实现简单,适用于多种基模型

缺点:

  1. 计算复杂度高:由于需要训练多个基模型,Bagging 的计算复杂度较高,训练时间较长
  2. 模型解释性差:由于 Bagging 是对多个基模型的结果进行综合,单个基模型的解释性较差,难以解释最终模型的预测结果

Bagging 方法在处理高维数据和防止过拟合方面具有显著优势,适用于多种机器学习任务。

抱个拳,送个礼

四、随机森林

随机森林是 Bagging 的一种改进版本,通过构建多个决策树并结合它们的预测结果来提高模型的准确性和稳定性。与 Bagging 不同的是,随机森林在每次分割节点时还会随机选择部分特征进行考虑,从而进一步增加模型的多样性。

4.1 随机森林的定义与原理

随机森林的定义:随机森林(Random Forest)是一种基于决策树的集成学习方法,通过构建多个决策树并结合它们的预测结果来提高模型的性能。每棵树在训练时都使用了不同的样本和特征,从而增加了模型的多样性和鲁棒性。

随机森林的原理:随机森林的核心思想是通过引入随机性来减少模型的方差和过拟合风险。具体步骤如下:

  1. 对原始数据集进行有放回的随机抽样,生成多个子数据集
  2. 在每个子数据集上训练一棵决策树。在每个节点分割时,随机选择部分特征进行考虑
  3. 对所有决策树的预测结果进行平均(回归任务)或投票(分类任务)以得到最终预测结果

4.2 随机森林的构建方法

构建方法:

  1. 数据集生成:对原始数据集进行有放回的随机抽样,生成多个子数据集
  2. 决策树训练:在每个子数据集上训练一棵决策树,在每个节点分割时随机选择部分特征进行考虑
  3. 结果综合:对所有决策树的预测结果进行平均或投票,得到最终的预测结果

4.3 随机森林的优化技术

优化方法:

  1. 特征选择:通过分析特征重要性,选择最有价值的特征进行训练
  2. 参数调整:使用网格搜索或随机搜索优化超参数,如树的数量(n_estimators)、最大深度(max_depth)、最小样本数(min_samples_split)等
  3. 样本加权:在训练时对样本进行加权处理,使得模型对不同样本的重要性有所区别
  4. 交叉验证:通过交叉验证评估模型性能,选择最优参数配置

4.4 随机森林的优缺点

优点:

  1. 高准确率:通过集成多个决策树,随机森林具有较高的预测准确率
  2. 抗过拟合:通过引入随机性,随机森林能有效减少过拟合风险
  3. 特征重要性评估:随机森林可以评估各个特征的重要性,帮助理解数据

缺点:

  1. 计算复杂度高:由于需要训练多个决策树,随机森林的计算复杂度较高,训练时间较长
  2. 内存占用大:随机森林需要存储多个决策树模型,占用较多内存
  3. 模型解释性差:由于随机森林是对多个决策树的结果进行综合,单个决策树的解释性较差,难以解释最终模型的预测结果

随机森林在处理高维数据和防止过拟合方面具有显著优势,适用于多种机器学习任务。

更多内容,见微*公号往期文章:突破最强算法模型!!学会随机森林,你也能发表高水平SCI

防失联,进免费知识星球交流。算法知识直达星球:t.zsxq.com/ckSu3

免费知识星球,欢迎加入交流

五、Boosting

Boosting 是另一种强大的集成学习方法,通过逐步改进弱模型的性能来构建一个强模型。与 Bagging 不同,Boosting 是一种串行过程,每个基模型在训练时都会关注前一个模型中被错误分类的样本,从而不断提高整体模型的准确性。

5.1 Boosting 的定义与原理

Boosting 的定义:Boosting 是一种集成学习方法,通过逐步训练多个弱模型,每个模型在前一个模型的基础上进行改进,最终将这些弱模型组合成一个强模型。常见的 Boosting 算法包括 AdaBoost、GBDT 和 XGBoost。

Boosting 的原理:Boosting 的核心思想是通过逐步减小模型的偏差来提高整体性能。具体步骤如下:

  1. 初始化模型,将所有样本的权重设为相等
  2. 训练第一个基模型,计算每个样本的误差
  3. 根据误差调整样本的权重,使得错误分类的样本权重增加
  4. 训练下一个基模型,并继续调整样本权重,直至达到指定的模型数量或误差阈值
  5. 最终将所有基模型的预测结果进行加权平均或加权投票,得到最终预测结果

5.2 Boosting 的具体算法与流程

Boosting 的具体流程:

  1. 初始化权重:将所有样本的权重设为相等
  2. 训练基模型:在当前样本权重下训练基模型,计算每个样本的误差
  3. 调整权重:根据误差调整样本的权重,错误分类的样本权重增加
  4. 重复步骤 2 和 3:直至达到指定的基模型数量或误差阈值
  5. 加权综合:将所有基模型的预测结果进行加权平均或加权投票,得到最终预测结果

5.3 Boosting 的优缺点

优点:

  1. 高准确率:通过逐步改进模型性能,Boosting 能显著提高模型的预测准确率
  2. 减少偏差:通过关注前一个模型的错误分类样本,Boosting 能有效减少模型的偏差
  3. 灵活性强:Boosting 可以与多种基模型结合,具有较高的灵活性

缺点:

  1. 计算复杂度高:由于需要逐步训练多个基模型,Boosting 的计算复杂度较高,训练时间较长
  2. 易过拟合:如果基模型过于复杂或迭代次数过多,Boosting 可能会导致过拟合
  3. 对噪声敏感:由于 Boosting 会增加错误分类样本的权重,可能会对噪声样本过度拟合

Boosting 方法在处理复杂数据和提高模型准确性方面具有显著优势,适用于多种机器学习任务

六、Adaboost

Adaboost 是 Boosting 家族中最早提出的一种算法,通过逐步调整样本权重来训练一系列弱分类器,从而组合成一个强分类器。它的核心思想是让后续的分类器重点关注前面被错误分类的样本,从而提高模型的准确性。

6.1 Adaboost 的定义与原理

Adaboost 的定义:Adaboost(Adaptive Boosting)是一种自适应 Boosting 算法,通过调整样本权重来逐步提高模型性能。每个弱分类器的权重根据其错误率进行调整,错误率低的分类器权重较高,错误率高的分类器权重较低。

Adaboost 的原理:Adaboost 的核心思想是通过逐步调整样本权重,使得每个弱分类器能够更好地处理前一个分类器错误分类的样本。具体步骤如下:

  1. 初始化样本权重,使得每个样本的权重相等
  2. 训练弱分类器,并计算其错误率
  3. 根据错误率调整分类器权重,错误率越低的分类器权重越高
  4. 根据错误分类情况调整样本权重,错误分类的样本权重增加
  5. 迭代上述步骤,直到达到指定的弱分类器数量或误差阈值
  6. 最终将所有弱分类器的预测结果进行加权综合,得到最终预测结果

6.2 Adaboost 的构建方法

构建方法:

  1. 初始化权重:将所有样本的权重设为相等
  2. 训练弱分类器:在当前样本权重下训练弱分类器,计算每个样本的误差
  3. 调整分类器权重:根据弱分类器的错误率调整其权重,错误率越低的分类器权重越高
  4. 调整样本权重:根据错误分类情况调整样本权重,错误分类的样本权重增加
  5. 重复步骤 2-4:直到达到指定的弱分类器数量或误差阈值
  6. 加权综合:将所有弱分类器的预测结果进行加权综合,得到最终预测结果

6.3 Adaboost 的优化技术

优化方法:

  1. 参数调整:通过网格搜索或随机搜索优化超参数,如弱分类器数量(n_estimators)、学习率(learning_rate)等
  2. 弱分类器选择:选择合适的弱分类器,如决策树、线性模型等,根据具体问题选择最优模型
  3. 样本加权:在训练时对样本进行加权处理,使得模型对不同样本的重要性有所区别
  4. 交叉验证:通过交叉验证评估模型性能,选择最优参数配置

6.4 Adaboost 的优缺点

优点:

  1. 高准确率:通过逐步改进模型性能,Adaboost 能显著提高模型的预测准确率
  2. 减少偏差:通过关注前一个模型的错误分类样本,Adaboost 能有效减少模型的偏差
  3. 适用于多种基模型:Adaboost 可以与多种基模型结合,具有较高的灵活性

缺点:

  1. 计算复杂度高:由于需要逐步训练多个弱分类器,Adaboost 的计算复杂度较高,训练时间较长
  2. 易过拟合:如果弱分类器过于复杂或迭代次数过多,Adaboost 可能会导致过拟合
  3. 对噪声敏感:由于 Adaboost 会增加错误分类样本的权重,可能会对噪声样本过度拟合

Adaboost 方法在处理复杂数据和提高模型准确性方面具有显著优势,适用于多种机器学习任务

抱个拳,送个礼

七、GBDT

GBDT(Gradient Boosting Decision Tree,梯度提升决策树)是一种基于决策树的 Boosting 方法,通过逐步构建一系列决策树来提升模型的预测性能。每棵树都在前面所有树的残差上进行拟合,从而不断减小整体模型的误差。

7.1 GBDT 的定义与原理

GBDT 的定义:GBDT 是一种通过逐步构建一系列决策树来提升模型性能的集成学习方法。每棵树都在前面所有树的残差上进行拟合,以减小整体模型的误差。GBDT 适用于回归和分类任务,在许多实际应用中表现出色。

GBDT 的原理:GBDT 的核心思想是通过逐步减小残差来提高模型的准确性。具体步骤如下:

  1. 初始化模型,将所有样本的预测值设为目标值的均值(回归)或初始概率(分类)
  2. 计算当前模型的残差,即目标值与当前预测值之间的差异
  3. 训练一棵决策树来拟合残差,得到新的预测值
  4. 更新模型的预测值,将新的预测值加到当前预测值上
  5. 重复步骤 2-4,直到达到指定的树数量或误差阈值

7.2 GBDT 的构建方法

构建方法:

  1. 初始化预测值:将所有样本的预测值设为目标值的均值(回归)或初始概率(分类)
  2. 计算残差:计算当前模型的残差,即目标值与当前预测值之间的差异
  3. 训练决策树:在当前残差上训练一棵决策树,得到新的预测值
  4. 更新预测值:将新的预测值加到当前预测值上
  5. 重复步骤 2-4:直到达到指定的树数量或误差阈值

7.3 GBDT 的优化技术

优化方法:

  1. 参数调整:通过网格搜索或随机搜索优化超参数,如树的数量(n_estimators)、学习率(learning_rate)、最大深度(max_depth)等
  2. 特征选择:通过分析特征重要性,选择最有价值的特征进行训练
  3. 正则化:通过添加正则化项来控制模型的复杂度,防止过拟合
  4. 早停:通过监控验证集上的误差,在误差不再显著降低时提前停止训练

7.4 GBDT 的优缺点

优点:

  1. 高准确率:通过逐步减小残差,GBDT 能显著提高模型的预测准确率
  2. 减少偏差:通过在残差上训练决策树,GBDT 能有效减少模型的偏差
  3. 处理非线性关系:GBDT 能处理复杂的非线性关系,适用于多种数据类型

缺点:

  1. 计算复杂度高:由于需要逐步训练多个决策树,GBDT 的计算复杂度较高,训练时间较长
  2. 易过拟合:如果决策树过于复杂或迭代次数过多,GBDT 可能会导致过拟合
  3. 对参数敏感:GBDT 对参数设置较为敏感,需要仔细调整超参数以获得最佳性能

GBDT 方法在处理复杂数据和提高模型准确性方面具有显著优势,适用于多种机器学习任务。接下来我们会详细探讨 XGBoost 及其具体实现。

免费知识星球,欢迎加入,一起交流切磋

八、XGBoost

XGBoost 是一种高效的梯度提升算法,被广泛应用于各种机器学习竞赛和实际项目中。它在 GBDT 的基础上进行了多种优化,包括正则化、并行处理和树结构的改进,使得其在精度和效率上均有显著提升。

8.1 XGBoost 的定义与原理

XGBoost 的定义:XGBoost(eXtreme Gradient Boosting)是一种基于梯度提升决策树的增强版算法,具有更高的效率和准确性。XGBoost 通过引入二阶导数信息、正则化项和并行处理等技术,显著提升了模型的性能和训练速度。

XGBoost 的原理:XGBoost 的核心思想与 GBDT 类似,通过逐步减小残差来提高模型的准确性。不同的是,XGBoost 引入了以下优化:

  1. 正则化项:通过添加 L1 和 L2 正则化项来控制模型复杂度,防止过拟合
  2. 二阶导数信息:在优化目标函数时引入二阶导数信息,提高优化精度
  3. 并行处理:通过并行计算和分布式计算加速模型训练
  4. 树结构优化:使用贪心算法和剪枝技术优化树的结构

8.2 XGBoost 的构建方法

构建方法:

  1. 数据准备:将数据转换为 DMatrix 格式,XGBoost 专用的数据结构
  2. 设置参数:配置 XGBoost 的超参数,如目标函数、最大深度、学习率等
  3. 训练模型:使用训练数据训练 XGBoost 模型
  4. 预测结果:使用训练好的模型进行预测
  5. 评估性能:计算预测结果的准确性等指标

8.3 XGBoost 的优化技术

优化方法:

  1. 参数调整:通过网格搜索或随机搜索优化超参数,如树的数量(num_round)、学习率(eta)、最大深度(max_depth)等
  2. 特征选择:通过分析特征重要性,选择最有价值的特征进行训练
  3. 正则化:通过添加 L1 和 L2 正则化项来控制模型的复杂度,防止过拟合
  4. 早停:通过监控验证集上的误差,在误差不再显著降低时提前停止训练

8.4 XGBoost 的优缺点

优点:

  1. 高准确率:通过引入多种优化技术,XGBoost 具有极高的预测准确率
  2. 快速训练:通过并行计算和分布式计算,XGBoost 的训练速度非常快
  3. 正则化控制:通过添加 L1 和 L2 正则化项,XGBoost 能有效控制模型复杂度,防止过拟合
  4. 处理缺失值:XGBoost 能自动处理数据中的缺失值,提高模型的鲁棒性

缺点:

  1. 参数调整复杂:XGBoost 具有大量超参数,需要仔细调整以获得最佳性能
  2. 内存占用大:XGBoost 需要存储大量中间结果,内存占用较大
  3. 对数据预处理敏感:XGBoost 对数据预处理要求较高,需确保数据规范化和特征选择合理

XGBoost 方法在处理复杂数据和提高模型准确性方面具有显著优势,适用于多种机器学习任务

更多内容,见微*公号往期文章:不愧是腾讯,问基础巨细节 。。。

[ 抱个拳,总个结 ]

集成学习算法通过结合多个基模型的预测结果来提高模型的性能。常见的集成学习算法包括 Bagging、Boosting、随机森林、Adaboost、GBDT 和 XGBoost。每种算法都有其独特的优势和适用场景。

9.1 各算法的比较

Bagging vs Boosting:

  • Bagging(如随机森林)主要通过并行训练多个基模型来减少方差,防止过拟合。它在处理高维数据和噪声数据时表现出色,适用于多种任务
  • Boosting(如 Adaboost 和 GBDT)通过串行训练多个基模型来逐步减少模型偏差。它更适合处理复杂的非线性关系,但训练时间较长,对数据预处理要求较高

随机森林 vs GBDT:

  • 随机森林是 Bagging 的一种实现,通过构建大量的决策树来提高模型性能。它具有较高的抗过拟合能力和训练速度,但在处理复杂非线性关系时可能表现不如 GBDT
  • GBDT 是 Boosting 的一种实现,通过逐步拟合残差来提高模型性能。它在处理复杂非线性关系和高维数据方面表现出色,但训练时间较长,参数调整复杂

XGBoost:

  • XGBoost 是 GBDT 的增强版,通过引入正则化、并行处理和二阶导数信息等技术,显著提高了模型的准确性和训练速度。它在各种机器学习竞赛和实际项目中表现优异,适用于多种任务

9.2 实际应用中的选择指南

选择集成学习算法时应考虑以下因素:

  1. 数据特性:
  • 数据维度较高且噪声较多时,Bagging 和随机森林表现较好
  • 数据关系复杂且存在非线性特征时,Boosting、GBDT 和 XGBoost 更为适用
  • 模型性能:
  • 需要高准确率和稳定性的任务,优先选择 XGBoost 或 GBDT
  • 需要快速训练和较低复杂度的任务,可以选择 Bagging 或随机森林
  • 计算资源:
  • 有足够的计算资源和时间,可以选择 XGBoost 或 GBDT 以获得最佳性能
  • 资源有限或时间紧迫时,Bagging 和随机森林是更好的选择
  • 过拟合风险:
  • 数据量较小或过拟合风险较高时,选择具有较高抗过拟合能力的算法,如 Bagging、随机森林和 XGBoost

综合考虑,在实际应用中选择合适的集成学习算法可以显著提高模型的性能和鲁棒性。以下是一个简要的选择指南:

  • Bagging:适用于高维、噪声较多的数据,快速训练,防止过拟合
  • Boosting:适用于复杂的非线性关系,逐步减少偏差,提高准确性
  • 随机森林:适用于各种任务,具有较高的抗过拟合能力和训练速度
  • Adaboost:适用于分类任务,逐步调整样本权重,提高模型性能
  • GBDT:适用于处理复杂数据和高维数据,提高模型准确性,但训练时间较长
  • XGBoost:适用于各种任务,具有最高的准确性和训练速度,但参数调整复杂

通过合理选择和应用集成学习算法,可以有效提升机器学习模型的性能,为各种实际任务提供强大的解决方案。


接下来,大侠可以具体选定某个算法进行更深入的研究或实践应用。山高路远,江湖再会

- 科研为国分忧,创新与民造福 -

日更时间紧任务急,难免有疏漏之处,还请大侠海涵 内容仅供学习交流之用,部分素材来自网络,侵联删

[ 算法金,碎碎念 ]

7677c3f62b03df3b8b51b6ab8666f78.jpg

全网同名,日更万日,让更多人享受智能乐趣

如果觉得内容有价值,烦请大侠多多 分享、在看、点赞,助力算法金又猛又持久、很黄很 BL 的日更下去;

同时邀请大侠 关注、星标 算法金,围观日更万日,助你功力大增、笑傲江湖

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

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

相关文章

JavaSE-面向对象(总结复习详细)

前言: 在 Java SE 中,面向对象编程是一种基本的编程范式,它将现实世界中的问题抽象成对象,然后通过对象之间的交互来解决问题。在面向对象编程中,所有的操作都是围绕对象展开的,对象拥有属性和行为,并且可…

MambaMixer:突破Transformers限制的高效深度学习架构

深度学习模型尤其是Transformers架构,已经在诸如自然语言处理、计算机视觉和时间序列预测等多个领域取得了显著成就。然而,随着模型输入序列长度的增加,传统的Transformers模型面临着显著的扩展性问题。其核心问题在于,Transforme…

GPT-5:编织未来智能的经纬

GPT-5技术突破预测 随着GPT-5的预告,人工智能的叙事正步入一个崭新的篇章。想象中的GPT-5不仅是自然语言处理(NLP)领域的革命,更是对“理解”本身的一次重新定义。它可能集成深度学习的最新进展,如自注意力机制的进一步…

Java访问修饰符的区别

public:公开的,任何地方都可以访问。 protected:受保护的,同一个包中的类和所有子类(可跨包)可以访问。 private:私有的,只有在同一个类中可以访问。 默认(无修饰符):包级…

SmartEDA革新来袭:融合Multisim与Proteus精髓,引领电子设计新纪元!

在电子设计领域,每一次技术的革新都如同春风化雨,滋润着设计师们的心田。今天,我们迎来了一个划时代的电子设计自动化(EDA)工具——SmartEDA,它不仅融合了业界知名的Multisim和Proteus的精华,更…

【计算机毕业设计】077停车场微信小程序

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

FreeRTOS移植到STM32

一、找一个STM32的裸机工程模板 我们以STM32F103裸机程序为例 随便找的一个裸机程序 二、去官网上下载FreeRTOS V9.0.0 源码 在移植之前,我们首先要获取到 FreeRTOS 的官方的源码包。这里我们提供两个下载 链 接 , 一 个 是 官 网 : http:…

若依 ruoyi 分离版 vue 简单的行内编辑实现

需要实现的效果&#xff1a;双击文本 - 修改文本 - 保存修改。 原码&#xff1a;仅文本显示文字内容 <el-table-column label"商品" align"center" prop"goodsName" width"200" v-if"columns[1].visible" /> 实现…

基于Vue,mysql,JavaEE的简单投票与投票管理系统

项目介绍 ​ 本项目&#xff0c;基于Vue2.6,mysql,JavaEE 实现简单的投票与投票管理系统 项目地址 VotingSystem: 投票系统1.0 管理员和普通用户 (gitee.com) 有问题请评论私聊哦 项目分类 数据库 创建投票人&#xff0c;被投票人&#xff0c;投票关系&#xff08;追踪谁…

基于Java的蛋糕预定系统【附源码+LW】

摘 要 当今社会进入了科技进步、经济社会快速发展的新时代。国际信息和学术交流也不断加强&#xff0c;计算机技术对经济社会发展和人民生活改善的影响也日益突出&#xff0c;人类的生存和思考方式也产生了变化。传统购物方式采取了人工的管理方法&#xff0c;但这种管理方法存…

使用 nvm 管理 Node 版本及 pnpm 安装

文章目录 GithubWindows 环境Mac/Linux 使用脚本进行安装或更新Mac/Linux 环境变量nvm 常用命令npm 常用命令npm 安装 pnpmNode 历史版本 Github https://github.com/nvm-sh/nvm Windows 环境 https://nvm.uihtm.com/nvm.html Mac/Linux 使用脚本进行安装或更新 curl -o- …

阿里云服务器数据库迁云: 数据从传统到云端的安全之旅(WordPress个人博客实战教学)

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 文章目录 一、 开始实战1.2创建实验资源1.3重置云服务器ECS的登录密码&#xff08;请记住密码&#xff09;1.4 设置安全组端口1…

武汉星起航:跨境热销新趋势,亚马逊美国站与欧洲站选品大赏

亚马逊作为全球领先的电商平台&#xff0c;其美国站和欧洲站一直是全球卖家争相入驻的热门站点。这两个站点不仅拥有庞大的消费群体和完善的物流体系&#xff0c;更以其独特的选品策略吸引了众多消费者的目光。武汉星起航将深入剖析亚马逊美国站和欧洲站当前热销的选品&#xf…

【Qt】之【Bug】大量出现“未定义的标识符”问题

背景 构建时出现大量错误 原因 中文注释问题 解决 方法1. 报错代码附近的中文注释全部删掉。。。 方法2. 报错的文件添加 // Chinese word comment solution #pragma execution_character_set("utf-8")

爱奇艺 Opal 机器学习平台:特征中心建设实践

01 综述 Opal 是爱奇艺大数据团队研发的一站式机器学习平台&#xff0c;旨在提升特征迭代、模型训练效率&#xff0c;帮助业务提高收益。整个平台覆盖了机器学习生命周期中特征生产、样本构建、模型探索、模型训练、模型部署等在内的多个关键环节。其中特征作为模型训练的基石…

ZYNQ MPSOC浅说

1 MPSOC PL端 Zynq UltraScale MPSoC PL 部分等价于 FPGA。简化的 FPGA 基本结构由 6 部分组成&#xff0c;分别为可编程输入/输出单元、基本可编程逻辑单元、嵌入式块RAM、丰富的布线资源、底层嵌入功能单元和内嵌专用硬核等。 2 MPSOC PS端 MPSoC 实际上是一个以处理器为…

Quartz定时任务组件

官网&#xff1a;http://www.quartz-scheduler.org/ 1&#xff09;job - 任务 - 你要做什么事&#xff1f; 2&#xff09;Trigger - 触发器 - 做什么事&#xff0c;什么时候触发&#xff0c;可以传入任务 3&#xff09;Scheduler - 任务调度 - 可以传入多个触发器进行任务调…

软件测试之接口测试(Postman/Jmeter)

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 一、什么是接口测试 通常做的接口测试指的是系统对外的接口&#xff0c;比如你需要从别的系统来…

动手学深度学习(Pytorch版)代码实践 -卷积神经网络-29残差网络ResNet

29残差网络ResNet import torch from torch import nn from torch.nn import functional as F import liliPytorch as lp import matplotlib.pyplot as plt# 定义一个继承自nn.Module的残差块类 class Residual(nn.Module):def __init__(self, input_channels, num_chan…

AI副业赚钱攻略:掌握数字时代的机会

前言 最近国产大模型纷纷上线&#xff0c;飞入寻常百姓家。AI副业正成为许多人寻找额外收入的途径。无论您是想提高家庭收入还是寻求职业发展&#xff0c;这里有一个变现&#xff0c;帮助您掌握AI兼职副业的机会。 1. 了解AI的基础知识 在开始之前&#xff0c;了解AI的基础…