当前位置: 首页 > news >正文

模式识别与机器学习-集成学习

集成学习

  • 集成学习思想
    • 过拟合与欠拟合
    • 判断方法
  • K折交叉验证
  • Bootstrap
  • Bagging
      • 随机森林的特点和工作原理:
  • Boosting
      • AdaBoost工作原理:
        • AdaBoost的特点和优点:
        • AdaBoost的缺点:
      • Gradient Boosting工作原理:
        • Gradient Boosting的特点和优点:
        • Gradient Boosting的变种:
  • Bagging和Boosting算法比较
      • Bagging(Bootstrap Aggregating):
      • Boosting:
      • 异同点总结:
  • Stacking
  • 一些作业题
    • 1.模型复杂度过低/过高通常会导致Bias和Variance怎样的问题?
    • 2.怎样判断、怎样缓解过拟合/欠拟合问题?
    • 3.比较Bagging和Boosting算法的异同
    • 4.简述Adaboosting的流程
    • 5.随机森林更适合采用哪种决策树?(A)
    • 6.基于树的Boosting更适合采用哪种决策树?(B)
    • 7.如果对决策树采用Bagging方式进行集成学习,更适合采用哪种方法对决策树的超参(如,树的深度) 进行调优?(B)

集成学习思想

集成学习的核心思想在于,组合多个弱学习器从而得到一个表现良好的学习器。
在这里插入图片描述

过拟合与欠拟合

下图左黄线为过拟合的决策边界,白线是恰到好处的决策边界。下图右第一张图和第二张图为欠拟合的结果,第三张图为恰到好处的决策边界,第四张图为过拟合的结果。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
通常,简单的模型偏差高、方差低;复杂的模型偏差低、方差高。

判断方法

如何判断模型是欠拟合还是过拟合呢?
欠拟合(Underfitting)和过拟合(Overfitting)是指机器学习模型在训练过程中对数据的拟合程度问题。判断模型是欠拟合还是过拟合,可以通过观察模型在训练集和验证集上的表现来进行评估。

  1. 训练集表现

    • 如果模型在训练集上表现不佳,即在训练数据上的表现很差,不能很好地拟合数据,这表明可能存在欠拟合。
    • 欠拟合情况下,模型可能无法捕捉数据中的关键特征和模式,导致训练误差较高。
  2. 验证集表现

    • 当模型在验证集(或者测试集)上的表现远远差于在训练集上的表现时,可能存在过拟合。
    • 过拟合表现为模型在训练集上表现很好,但在新数据上表现较差,无法泛化到未见过的数据。

常用的判断欠拟合和过拟合的方法包括:

  • 学习曲线:绘制模型在训练集和验证集上的表现随着训练样本数量变化的曲线。如果两者收敛且表现均不佳,则可能是欠拟合;如果训练集表现良好而验证集表现差,可能是过拟合。

  • 验证集误差和训练集误差比较:观察模型在验证集和训练集上的误差。如果模型在训练集上的误差远远小于验证集上的误差,可能是过拟合问题。

  • 模型复杂度:过度复杂的模型更容易过拟合,而过于简单的模型则更容易出现欠拟合。可以通过增加或减少模型的复杂度来解决这些问题,比如增加正则化、减少特征数量、使用更简单的模型结构等。

在这里插入图片描述

K折交叉验证

K折交叉验证(K-fold cross-validation)是一种常用的模型评估方法,用于评估模型的性能和泛化能力,尤其适用于数据集较小的情况。该方法将数据集分成K个子集(通常是相等大小),然后执行K次模型训练和验证,每次使用其中一个子集作为验证集,其余K-1个子集作为训练集。

K折交叉验证的步骤如下:

  1. 数据集分割:将数据集随机分成K个子集(通常是相等大小),每个子集称为一个fold。

  2. 模型训练和验证:进行K次循环,每次选择一个fold作为验证集,其余K-1个fold作为训练集。在每个循环中,使用训练集对模型进行训练,然后使用验证集评估模型性能。

  3. 性能评估:在每次验证过程中,记录模型的性能指标(比如准确率、精确度、召回率、F1分数等)。

  4. 性能指标的平均值:K次验证完成后,对每次验证得到的性能指标取平均值,作为模型最终的性能评估指标。

在这里插入图片描述

Bootstrap

Bootstrap方法通过对原始数据进行重采样来评估统计量的稳定性和不确定性,它能够基于有限的数据集生成估计量的抽样分布。

Bootstrap的基本步骤如下:

  1. 重采样:从原始数据集中有放回地抽取样本,通常抽取的样本数量与原始数据集相同。
  2. 计算统计量:针对每个新的重抽样数据集,计算所需的统计量(例如均值、标准差等)。
  3. 构建分布:重复上述过程多次(通常是几千次),得到统计量的分布情况。
  4. 估计参数:利用重抽样得到的统计量分布,计算出置信区间、标准误差等。

Bootstrap方法的优势在于它不需要对数据假设特定的分布情况,而是利用已有的数据进行模拟重采样,从而更好地评估统计量的性质。它在样本量较小、无法进行正态分布假设或者对于复杂模型的参数估计中特别有用。

在这里插入图片描述

Bagging

在这里插入图片描述
Bagging的一个很著名的算法就是随机森林。

随机森林(Random Forest)是一种基于集成学习思想的机器学习算法,它通过构建多个决策树并集成它们的预测结果来进行分类或回归任务。随机森林的特点在于它同时运用了Bagging(自助采样)和随机特征选择的方法。

随机森林的特点和工作原理:

  1. Bagging:随机森林使用Bootstrap的方法,从原始数据集中有放回地随机抽样生成多个不同的子数据集,然后针对每个子数据集构建一个决策树模型。

  2. 随机特征选择:在构建每个决策树的过程中,随机森林会在节点分裂时随机选择一部分特征进行评估,而非使用全部特征。这样做有助于使得每个决策树之间更具差异性,增加了整体模型的多样性和鲁棒性。

  3. 合并预测:对于分类问题,随机森林会采用投票方式;对于回归问题,采用平均方式,汇总多个决策树的预测结果以得出最终结果。

随机森林的优点

  • 对于高维数据和大规模数据集有较好的处理能力。
  • 具有较高的准确性和鲁棒性。
  • 能够评估特征的重要性。
  • 对于缺失数据的处理比较鲁棒。

Out-of-Bag Error(OOB误差) 是在随机森林训练过程中一个重要的评估指标。由于Bagging采用自助采样,每个决策树的训练数据并不是全部样本,因此每个子模型(决策树)都会有一部分样本未被采样到,这些未被采样到的样本就构成了该子模型的Out-of-Bag数据集。

Out-of-Bag Error是使用未被采样到的数据进行模型评估的误差。对于每个子模型,可以利用其对应的Out-of-Bag数据集进行验证或评估模型的性能,然后将所有子模型的Out-of-Bag误差进行平均,得到随机森林的最终评估指标。

通过利用Out-of-Bag误差,随机森林能够在训练过程中对模型的泛化能力进行评估,无需额外的验证集,节省了数据并能及时发现模型的过拟合情况。

Boosting

在这里插入图片描述
AdaBoost(Adaptive Boosting)是一种Boosting集成学习方法,用于提高分类器的性能。它通过训练一系列弱分类器(例如决策树或者其他基本模型),每个分类器都针对前一个分类器分类错误的样本进行加权,从而逐步提升整体模型的准确性。

AdaBoost工作原理:

  1. 初始化样本权重:开始时,所有样本的权重都相等。

  2. 训练弱分类器:首先使用一个基本分类器(弱分类器)对数据进行训练,分类错误的样本会在下一轮中获得更高的权重。

  3. 调整样本权重:根据前一轮分类器的准确性,调整样本的权重,将分类错误的样本的权重增加,使得在下一轮训练中这些错误分类的样本更有可能被选中。

  4. 迭代训练:重复这个过程,训练出一系列弱分类器,每个分类器的权重取决于其在训练中的准确性。

  5. 组合弱分类器:最后将这些弱分类器组合起来,根据每个分类器的权重加权求和或投票方式得到最终的集成分类器。

AdaBoost的特点和优点:
  • 适应性(Adaptive):通过调整样本权重,AdaBoost能够专注于那些难以分类的样本,逐步提高整体模型的性能。

  • 高准确性:相对于单个基础分类器,AdaBoost能够提高模型的准确性,尤其在处理复杂数据集和高度非线性问题时表现优异。

AdaBoost的缺点:
  • 对噪声和异常值敏感:在存在噪声和异常值的情况下,AdaBoost可能会导致过拟合,降低模型的性能。

  • 需要调节参数:AdaBoost中的弱分类器的选择和迭代次数都需要调节,对于大规模数据和复杂问题需要花费较多时间来调整参数。

Gradient Boosting工作原理:

  1. 初始化预测器:使用一个简单的模型(比如平均值)作为初始预测器,对数据做出初始预测。

  2. 计算残差:计算初始预测模型对目标的预测残差。

  3. 训练弱模型:构建一个新的模型来预测残差,即使得残差最小化的模型。通常使用决策树作为弱模型。

  4. 更新预测结果:将新模型的预测结果与前一模型的预测结果进行加权结合,更新整体模型的预测结果。

  5. 迭代训练:重复上述过程,每次训练的模型都在尝试纠正前一模型的残差,逐步提升整体模型的性能。

  6. 终止条件:可以设置迭代次数或者达到某种误差阈值时停止迭代。

Gradient Boosting的特点和优点:
  • 高准确性:Gradient Boosting能够获得较高的预测性能,在许多问题中表现优异。

  • 对异常值的鲁棒性:通过连续迭代调整预测模型,Gradient Boosting具有一定程度上的对异常值和噪声的鲁棒性。

  • 灵活性:可以使用不同的损失函数来适应不同类型的问题(如回归、分类等)。

Gradient Boosting的变种:
  1. Gradient Tree Boosting:也称为Gradient Boosted Regression Trees(GBRT)或者Gradient Boosted Machines(GBM),使用决策树作为基础模型。

  2. XGBoost:一种高效的Gradient Boosting库,通过优化算法、并行计算等技术提高了性能和速度。

  3. LightGBM:另一种基于梯度提升的框架,通过基于直方图的决策树算法来加速训练和提高效率。

Bagging和Boosting算法比较

Bagging和Boosting都是集成学习(Ensemble Learning)中常用的技术,它们旨在提高机器学习模型的性能。尽管它们都属于集成学习范畴,但在实现方式、优点和适用场景上有明显的差异。

Bagging(Bootstrap Aggregating):

原理:Bagging是一种并行的集成学习方法,通过对原始数据集进行有放回的随机抽样,构建多个子模型,然后将这些子模型的预测结果进行平均或投票来得出最终预测结果。

算法:典型的Bagging算法包括随机森林(Random Forest),它是基于决策树的一种Bagging方法。

优点

  1. 减少模型的方差(Variance),提高模型的泛化能力。
  2. 对于高方差、低偏差的模型效果更为明显。
  3. 能够处理大规模的数据集,并且对于高维特征也表现良好。

缺点

  1. 由于每个子模型是独立构建的,Bagging对于偏差较高的模型效果提升有限。

适用场景:Bagging适用于各种类型的问题,尤其是对于高方差、低偏差的模型(如决策树),它能够有效地提高模型的稳定性和准确性。

Boosting:

原理:Boosting是一种串行的集成学习方法,它通过训练一系列弱分类器(例如决策树或者其他基本模型),每次根据前一轮的结果调整数据分布,使得在前一轮分类错误的样本在下一轮获得更多的关注,最终组合这些弱分类器形成强分类器。

算法:常见的Boosting算法包括Adaboost、Gradient Boosting Machine(GBM)、XGBoost和LightGBM等。

优点

  1. 提高了模型的准确性和泛化能力。
  2. 对于各种类型的数据和模型都表现良好。
  3. 在迭代过程中逐步提升模型性能。

缺点

  1. 对于噪声数据和异常值敏感,容易导致过拟合。
  2. 训练过程可能较为耗时,特别是对于大规模数据和复杂模型。

适用场景:Boosting适用于需要较高精度的问题,尤其在处理分类和回归问题时表现优异。它在数据集相对较小、特征维度不是很高、并且对准确性要求较高的情况下效果显著。

异同点总结:

  • 并行 vs 串行:Bagging是并行的集成学习方法,而Boosting是串行的。
  • 数据处理方式:Bagging通过随机抽样构建多个模型,Boosting通过逐步迭代训练一系列弱分类器并进行加权。
  • 对模型的改进方式:Bagging减少方差,Boosting减少偏差。
  • 对异常值和噪声的敏感性:Boosting相对于Bagging更加敏感。

选择Bagging还是Boosting取决于具体问题和数据集的性质。通常,对于复杂数据和模型,Boosting更有优势;对于简单模型和需要减少方差的情况,Bagging可能更合适。

Stacking

在这里插入图片描述

一些作业题

1.模型复杂度过低/过高通常会导致Bias和Variance怎样的问题?

模型复杂度过高:偏差低,方差高
模型复杂度过低:偏差高,方差低

2.怎样判断、怎样缓解过拟合/欠拟合问题?

根据训练集和测试集的表现来判断是否过拟合/欠拟合:如果训练集上精度不佳,则是欠拟合。如果训练集表现良好,测试集表现不佳则是过拟合。
解决方法:
欠拟合:增加模型复杂度,延长训练时间,增加特征。
过拟合:降低模型复杂度,减少特征,增加训练样本数,及时停止训练迭代。

3.比较Bagging和Boosting算法的异同

  • 并行 vs 串行:Bagging是并行的集成学习方法,而Boosting是串行的。
  • 数据处理方式:Bagging通过随机抽样构建多个模型,Boosting通过逐步迭代训练一系列弱分类器并进行加权。
  • 对模型的改进方式:Bagging减少方差,Boosting减少偏差,Bagging的基学习器适合用低偏差高方差的,Boosting的基学习器适合用低方差的。
  • 对异常值和噪声的敏感性:Boosting相对于Bagging对异常值更加敏感。

4.简述Adaboosting的流程

  1. 初始化样本权重:开始时,所有训练样本的权重相等。

  2. 训练第一个弱分类器

    • 使用原始数据集训练一个基本分类器(通常是一个简单且弱的分类器)。
    • 根据分类器的性能对样本进行权重调整,增加分类错误的样本的权重,减少分类正确的样本的权重。
  3. 迭代训练弱分类器

    • 对于每次迭代(每轮训练一个新的弱分类器):
      • 根据样本权重分布,重新对训练数据进行抽样。
      • 使用新的样本权重分布训练另一个基本分类器。
      • 调整样本权重,增加前一轮分类错误的样本的权重。
  4. 组合弱分类器

    • 对每个弱分类器赋予一个权重,权重与分类器的性能相关。
    • 通过加权投票或加权求和将所有弱分类器的预测结果组合成最终的集成分类器。
  5. 结束条件

    • 可以通过设置迭代次数或者达到一定的性能阈值来确定停止训练的条件。

5.随机森林更适合采用哪种决策树?(A)

  • A.性能好,深度较深
  • B.性能弱,深度较浅

6.基于树的Boosting更适合采用哪种决策树?(B)

  • A.性能好,深度较深
  • B.性能弱,深度较浅

7.如果对决策树采用Bagging方式进行集成学习,更适合采用哪种方法对决策树的超参(如,树的深度) 进行调优?(B)

  • A.交又验证
  • B.包外估计

相关文章:

模式识别与机器学习-集成学习

集成学习 集成学习思想过拟合与欠拟合判断方法 K折交叉验证BootstrapBagging随机森林的特点和工作原理: BoostingAdaBoost工作原理:AdaBoost的特点和优点:AdaBoost的缺点: Gradient Boosting工作原理:Gradient Boostin…...

vue简单实现滚动条

背景:产品提了一个需求在一个详情页,一个form表单元素太多了,需要滚动到最下面才能点击提交按钮,很不方便。他的方案是,加一个滚动条,这样可以直接拉到最下面。 优化:1、支持滚动条,…...

计算机网络第一课

先了解层级: 传输的信息称为协议数据单元(PDU),PDU在每个层次的称呼都不同,见下图:...

初识大数据,一文掌握大数据必备知识文集(12)

🏆作者简介,普修罗双战士,一直追求不断学习和成长,在技术的道路上持续探索和实践。 🏆多年互联网行业从业经验,历任核心研发工程师,项目技术负责人。 🎉欢迎 👍点赞✍评论…...

安全防御之授权和访问控制技术

授权和访问控制技术是安全防御中的重要组成部分,主要用于管理和限制对系统资源(如数据、应用程序等)的访问。授权控制用户可访问和操作的系统资源,而访问控制技术则负责在授权的基础上,确保只有经过授权的用户才能访问…...

Iceberg从入门到精通系列之二十:Iceberg支持的字段类型

Iceberg从入门到精通系列之二十:Iceberg支持的字段类型 Iceberg 表支持以下类型: 字段类型描述注释booleanTrue or falseint32 位有符号整数可以提升到longlong64 位有符号整数float32 位 IEEE 754 浮点可以提升到doubledouble64 位 IEEE 754 浮点decim…...

Unity坦克大战开发全流程——结束场景——通关界面

结束场景——通关界面 就照着这样来拼 写代码 hideme不要忘了 修改上一节课中的代码...

K8S三种发布方式和声明式资源管理

蓝绿发布 把应用服务集群标记位两个组,蓝组和绿组,先升级蓝组,先要把蓝组从负载均衡当中移除,绿组继续提供服务,蓝组升级完毕,再把绿组从负载均衡当中移除,绿组升级,然后都加入回负载…...

从千问Agent看AI Agent——我们很强,但还有很长的路要走

前言 最近双十一做活动买了台新电脑,显卡好起来了自然也开始大模型的学习工作了,这篇文章可能是该系列的第一弹,本地私有化部署千问agent,后面还会尝试一些其他的大模型结合本地知识库或者做行业垂直模型训练的,一步…...

Word2Vector介绍

Word2Vector 2013 word2vec也叫word embeddings,中文名“词向量”,google开源的一款用于词向量计算的工具,作用就是将自然语言中的字词转为计算机可以理解的稠密向量。在word2vec出现之前,自然语言处理经常把字词转为离散的单独的…...

书生·浦语大模型全链路开源体系----(1)

书生浦语大模型全链路开源体系 什么是大语言模型? 大语言模型是指具有大规模参数和强大语言理解能力的机器学习模型。这些模型通常使用深度学习技术,特别是递归神经网络(RNN)或变换器(Transformer)等架构…...

第四篇 行为型设计模式 - 灵活定义对象间交互

第四篇:行为型设计模式 - 灵活定义对象间交互 行为型设计模式关注对象之间的交互和职责分配,旨在定义对象间的高效、灵活的通信机制。以下是十一种常见行为型设计模式的详解及其应用场景。 1. 策略模式详解及其应用场景 详解: 策略模式定义…...

2023最新租号平台系统源码支持单独租用或合租使用

这是一款租号平台源码,采用常见的租号模式。目前网络上还很少见到此类类型的源码。 平台的主要功能如下: 支持单独租用或采用合租模式; 采用易支付通用接口进行支付; 添加邀请返利功能,以便站长更好地推广&#xf…...

数据库的连接

连接数据库 我们使用WinR输入cmd打开运行窗口 输入:sqlplus并回车 输入用户名和密码,我用的是Scott,密码我自己设置的123456,Scott默认的密码是tiger,回车 这种情况表示登录成功 在连接Scott成功的情况下创建一些数据,在我的资源里面有个Oracle数据基础可以下载,直接复制粘…...

第14课 利用openCV快速数豆豆

除了检测运动,openCV还能做许多有趣且实用的事情。其实openCV和FFmpeg一样都是宝藏开源项目,貌似简单的几行代码功能实现背后其实是复杂的算法在支撑。有志于深入学习的同学可以在入门后进一步研究算法的实现,一定会受益匪浅。 这节课&#…...

在前端利用Broadcast Channel实现浏览器跨 Tab 窗口通信的方法

Broadcast Channel 在前端,我们经常会用postMessage来实现页面间的通信,但这种方式更像是点对点的通信。对于一些需要广播(让所有页面知道)的消息,用postMessage不是非常自然。Broadcast Channel 就是用来弥补这个缺陷…...

【Apache Doris】自定义函数之 JAVA UDF 详解

【Apache Doris】自定义函数之 JAVA UDF 详解 一、背景说明二、原理简介三、环境信息3.1 硬件信息3.2 软件信息 四、IDE准备五、JAVA UDF开发流程5.1 源码准备5.1.1 pom.xml5.1.2 JAVA代码 5.2 mvn打包5.2.1 clean5.2.2 package 5.3 函数使用5.3.1 upload5.3.2 使用 六、注意事…...

BMS电池管理系统带充放电控制过流过压保护

2.4G无线采集BMS开发板(主从一体) 全新升级 (赠送上位机源码TTL 上位机,可以改成自己想要的界面) 12串电池TTL上位机 CAN通信上位机源码有偿开源,供项目二次开发。 增加STM32平台 USB转TTL通信 CAN通信 增加…...

在Linux中以后台静默运行Java应用程序

在Linux系统上运行Java应用程序时,有时我们希望将其设置为后台运行,而关闭终端窗口时不会影响进程的执行。在本文中,我们将介绍几种实现这一目标的方法。 1. 使用nohup命令 nohup是一个用于在后台运行进程的命令,而且关闭终端窗…...

k8s---Pod的生命周期

Pod是什么? pod是k8s中最小的资源管理组件。 pod也是最小化运行容器化应用的资源管理对象。 pod是一个抽象的概念,可以理解为一个或者多个容器化应用的集合 在一个pod当中运行一个容器是最常用的方式 在一个pod当中可以同时运行多个容器&#xff0c…...

CSS animation动画和关键帧实现轮播图效果HTML

CSS animation动画和关键帧实现轮播图效果HTML 这轮播图效果使用h5和css3实现效果&#xff0c;不需要js控制&#xff0c;但是其中的缺点就是不能使用鼠标进行切换效果。 具有代码如下 <!DOCTYPE html> <html lang"en"><head><meta charset&quo…...

Unity之键盘鼠标的监控

小编最近在玩大表哥2&#xff0c;通过 W、A、S、D 来移动亚瑟&#xff0c;鼠标左键来不吃牛肉 我们都知道玩家通过按键鼠标来控制游戏人物做出相应的行为动作&#xff0c;那在Unity引擎里是怎么知道玩家是如何操作的呢&#xff1f;本篇来介绍Unity是怎样监控键盘和鼠标的。 首先…...

C# windows服务程序开机自启动exe程序

我们使用传统的Process.Start(".exe")启动进程会遇到无法打开UI界面的问题&#xff0c;尤其是我们需要进行开启自启动程序设置时出现诸多问题&#xff0c;于是我们就想到采用windows服务开机自启动来创建启动一个新的exe程序&#xff0c;并且是显式运行。 首先是打开…...

【SpringMVC】常用注解

什么是MVC&#xff1f; MVC是一种程序分层开发模式&#xff0c;分别是Model&#xff08;模型&#xff09;&#xff0c;View&#xff08;视图&#xff09;以及Controller&#xff08;控制器&#xff09;。这样做可以将程序的用户界面和业务逻辑分离&#xff0c;使得代码具有良好…...

关于曲率、曲率半径和曲率圆,看这几篇文章就够啦

关于曲率、曲率半径和曲率圆的内容&#xff0c;是考研数学数学一和数学二大纲中明确要求掌握的内容&#xff0c;但这部分内容在很多教材教辅以及练习题中较少涉及。在本文中&#xff0c;荒原之梦考研数学网就为大家整理了曲率、曲率半径和曲率圆方程相关的概念、基础知识以及练…...

java面试题-Spring常见的异常类有哪些?

远离八股文&#xff0c;面试大白话&#xff0c;通俗且易懂 看完后试着用自己的话复述出来。有问题请指出&#xff0c;有需要帮助理解的或者遇到的真实面试题不知道怎么总结的也请评论中写出来&#xff0c;大家一起解决。 java面试题汇总-目录-持续更新中 NullPointerException&…...

数据库选择题 (期末复习)

数据库第一章 概论简答题 数据库第二章 关系数据库简答题 数据库第三章 SQL简答题 数据库第四第五章 安全性和完整性简答题 数据库第七章 数据库设计简答题 数据库第九章 查询处理和优化简答题 数据库第十第十一章 恢复和并发简答题 2015期末 1、在数据库中&#xff0c;下列说…...

WeNet语音识别+Qwen-72B-Chat Bot+Sambert-Hifigan语音合成

WeNet语音识别Qwen-72B-Chat Bot&#x1f47e;Sambert-Hifigan语音合成 简介 利用 WeNet 进行语音识别&#xff0c;使用户能够通过语音输入与系统进行交互。接着&#xff0c;Qwen-72B-Chat Bot作为聊天机器人接收用户的语音输入或文本输入&#xff0c;提供响应并与用户进行对话…...

是否需要跟上鸿蒙(OpenHarmony)开发岗位热潮?

前言 自打华为2019年发布鸿蒙操作系统以来&#xff0c;网上各种声音百家争鸣。尤其是2023年发布会公布的鸿蒙4.0宣称不再支持Android&#xff0c;更激烈的讨论随之而来。 本文没有宏大的叙事&#xff0c;只有基于现实的考量。 通过本文&#xff0c;你将了解到&#xff1a; Har…...

【Golang】Json 无法表示 float64 类型的 NaN 以及 Inf 导致的 panic

【Golang】Json 无法表示 float64 类型的 NaN 以及 Inf 导致的 panic 原因 golang 服务出现了 panic&#xff0c;根据 panic 打印出的堆栈找到了问题代码&#xff0c;看上去原因是&#xff1a;json 序列化时&#xff0c;遇到了无法序列化的内容 [panic]: json: unsupported …...

做网站大概花多少钱/西安百度推广运营公司

我们都知道&#xff0c;相比于以前来说4G网络要比3G网络要快上太多了&#xff0c;可以这么说&#xff0c;4G改变了我们的生活&#xff0c;那么5G改变了什么&#xff1f; 据最新消息报道&#xff0c;中国即将步入5G的网络时代&#xff0c;然而对于5G手机来说&#xff0c;可能在2…...

给公司做门户网站/企业推广方法

旨在快速了解linux文档压缩与解压&#xff0c;如需详细理解某个命令可用man一下&#xff0c;或者google一下。GUN-zip(gz)压缩&#xff1a;gzip testfile #压缩testfile文件&#xff0c;生成testfile.gz解压&#xff1a;gunzip testfile.gz #解压testfile.gz查看:zc…...

档案网站建设经验/seo软文推广工具

海阔凭鱼跃&#xff0c;天高任鸟飞。Hey 你好&#xff01;我是秦爱德。&#x1f604;❝平平无奇上班摸鱼&#xff0c;甚至想着如何带薪拉屎 &#x1f60f;&#x1f60f;&#x1f60f;❞论一个职业程序员&#xff0c;我们如何在工作中悄无声息的「摸鱼」 ❓ 且老板还得拍手叫好&…...

wordpress自带缓存/免费推广引流平台有哪些

举个图片的例子&#xff1a;网页中一张图片可以这样显示&#xff1a;<img src"http://mail.163.com/images/x.png" /> 也可以这样显示&#xff1a;<img src"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJAQMAAADaX5RTAAAAA3NCSVQICAjb4U/gA…...

特色网站设计/网络营销推广目标

电脑版效果展示&#xff1a;手机版效果展示&#xff1a;指标源码&#xff1a;K1:AMOUNT/100/VOL;K2:EMA(K1,6);K3:EMA(K2,5);K4:EMA(K3,12);K5:EMA(K4,5);STICKLINE(K2>K3,K2,K3,1,0),LINETHICK1,COLORGREEN;STICKLINE(K4>K5,K4,K5,1,0),LINETHICK1,COLORYELLOW;STICKLIN…...

443是端口网站建设/平台推广

JdbcTemplate:用于操作数据库&#xff0c;与Dbutils一样&#xff0c;是一个操作数据库的工具。 首先声明事物是很简单的&#xff0c;只是为了展现例子&#xff0c;需要做很多准备工作。 1&#xff09;使用c3p0获取连接&#xff1a; 先导入mysql的jar包:  mysql-connector-jav…...