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

news2024/10/7 16:23:30


大侠幸会,在下全网同名「算法金」 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 的日更下去;

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【windows|011】TCP/IP5层模型常见协议及应用总结大全

🍁博主简介: 🏅云计算领域优质创作者 🏅2022年CSDN新星计划python赛道第一名 🏅2022年CSDN原力计划优质作者 ​ 🏅阿里云ACE认证高级工程师 ​ 🏅阿里云开发者社区专家博主 💊交流社…

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

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

qmt量化交易策略小白学习笔记第52期【qmt编程之商品期货数据】

qmt编程之获取商品期货数据 qmt更加详细的教程方法,会持续慢慢梳理。 也可找寻博主的历史文章,搜索关键词查看解决方案 ! 主力合约生成规则 每个品种只有一个主连合约。主连合约于下一个交易日进行指向切换,切换前主连合约不变…

2024全新【大模型学习路径导航】从入门到精通的全面规划

引言 随着人工智能技术的迅猛发展,大模型成为了引领技术变革的关键力量。无论你是对大模型领域感兴趣的初学者,还是希望深化理解并应用大模型的开发者,这份精心策划的学习路径将为你提供从零基础到精通的全面指导。 第一阶段:基…

堆排序思想分享

人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 目录 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌…

鸿蒙NEXT

[中国,东莞,2024年6月24日] 华为开发者大会(HDC)正式开幕,带来全新的 HarmonyOS NEXT、盘古大模型5.0等最创新成果,持续为消费者和开发者带来创新体验。 HarmonyOS NEXT 鸿蒙生态 星河璀璨 鸿蒙生态设备数…

boost asio异步服务器(4)处理粘包

粘包的产生 当客户端发送多个数据包给服务器时,服务器底层的tcp接收缓冲区收到的数据为粘连在一起的。这种情况的产生通常是服务器端处理数据的速率不如客户端的发送速率的情况。比如:客户端1s内连续发送了两个hello world!,服务器过了2s才接…

【scau大数据原理】期末复习——堂测题

一、集群安装知识 启动集群的命令start-all.sh位于 Hadoop安装目录的sbin文件夹 目录下。 bin文件夹下包含常见的Hadoop,yarn命令;sbin命令下包含集群的启动、停止命令。 启动集群的命令start-all.sh包含 同时启动start-dfs.sh和start-yarn.sh 功能。…

大模型ReAct:思考与工具协同完成复杂任务推理

ReAct: Synergizing Reasoning and Acting in Language Models Github:https://github.com/ysymyth/ReAct 一、动机 人类的认知通常具备一定的自我调节(self-regulation)和策略制定(strategization)的能力&#xff0…

ONLYOFFICE8.1版本桌面编辑器——功能测评

一、编辑DOCX 相信大家都有写word文档的经历,不知道大家是不是跟我一样,感觉做一个word不难,但想做好一个word却很麻烦,功能太多,看的人眼花缭乱,有时候一个功能要找很久,甚至有的功能用一辈子都…

mybatis核心配置介绍

mybatis核心配置 【mybatis全局配置介绍】 ​ mybatis-config.xml,是MyBatis的全局配置文件,包含全局配置信息,如数据库连接参数、插件等。整个框架中只需要一个即可。 1、mybatis全局配置文件是mybatis框架的核心配置,整个框架…

Unity | Shader基础知识(第十五集:透明效果)

目录 一、前言 二、素材准备 三、准备基础代码 四、准备基础场景 五、SurfaceOutput结构体 六、透明度 七、渲染顺序 八、选错的后果 九、Tags之渲染顺序 十、Cull(正面和反面渲染) 十一、代码汇总 十二、作者的碎碎念 一、前言 因为shader…

python-斐波那契数列

[题目描述] 斐波那契数列是指这样的数列:数列的第一个和第二个数都为 1,接下来每个数都等于前面 2个数之和。 给出一个正整数 a,要求斐波那契数列中第 a 个数是多少。输入: 第 1 行是测试数据的组数 n,后面跟着 n 行输…

UnityShader SDF有向距离场简单实现

UnityShader SDF有向距离场简单实现 前言项目场景布置连连看画一个圆复制一个圆计算修改shader参数 鸣谢 前言 突然看到B站的一个教程,还不错,记录一下 项目 场景布置 使用ASE连连看,所以先要导入Amplify Shader Editor 连连看 画一个…

有人问周鸿祎: 学历不重要,为什么360只要985和211?

关注、星标公众号,直达精彩内容 有人问周鸿祎:你说学历不重要,为什么360招聘的人才只要985和211?他说这个事情,我专门问了我们的人力资源,我们的干品分为校园招聘和社会招聘 校园招聘的话会看文凭 社会招聘的话&#x…

性能优化:Java垃圾回收机制深度解析 - 让你的应用飞起来!

文章目录 一、什么是垃圾回收二、Java 内存区域划分三、垃圾回收算法1. 标记-清除(Mark-Sweep)算法2. 复制(Copying)算法3. 标记-整理(Mark-Compact)算法4. 分代收集(Generational Collecting&a…

光储充一体化解决方案

慧哥充电桩开源平台V2.5.2_ 【源码下载】 https://liwenhui.blog.csdn.net/article/details/134773779?spm1001.2014.3001.5502 本文从光储充的原理以及总体系统等角度,全方位介绍光储充一体化解决方案实例。 一、典型应用场景 针对整县区域光伏项目,在…

综合评价类模型——突变级数法

含义 首先:对评价目标进行多层次矛盾分解其次:利用突变理论和模糊数学相结合产生突变模糊隶属函数再次:由归一公式进行综合量化运算最终:归一为一个参数,即求出总的隶属函数,从而对评价目标进行排序分析特点…

c++指针和引用之高难度(二)习题讲解

1.【单选题】 int a[4] { 1001,1002,1003,1004 }; int* p{ &a[1] }; p[1] ? A 1001 B 1002 C 1003 解析:这道题考察了指针和数组可以混用。p 指向了 数组 a[0] 的地址,也就是 1002 的地址,此时 *p p[0]…

DDPM pytorch 代码复现

本次只分享代码以及效果,后续更新原理 代码参考 deep_thought 先看动图效果 1.选择一个数据集 %matplotlib inline import matplotlib.pyplot as plt import numpy as np from sklearn.datasets import make_s_curve import torchs_curve, _ make_s_curve(10 **…