分类规则挖掘(二)

目录

    • 三、决策树分类方法
      • (一)决策树生成框架
      • (二)ID3分类方法
      • (三)决策树的剪枝
      • (四)C4.5算法


三、决策树分类方法

  决策树 (Decision Tree) 是从一组无次序、无规则,但有类别标号的样本集中推导出的、树形表示的分类规则。树的叶子结点表示类别标号,即分类属性的取值,对应一个数据对象的子集;树的内部结点为条件属性,它是一个数据对象子集合的标识符;一个内部结点为每个条件属性值或组合的条件属性值构成一个树枝,连接到树的下一层结点 (也是数据对象子集);从树根到叶子结点的一条路径称为一条决策规则,它可以对未知数据进行分类或预测。

在这里插入图片描述

(一)决策树生成框架

1、决策树的概念

  决策树是一棵有向树,也称为根树,它由矩形结点、椭圆型结点和有向边构成。因有向边的方向始终朝下,故省略表示方向的箭头。决策树包含三种结点,并用含属性值标记的有向边相连。

(1)根结点 (root node),用矩形表示,如 “天气” 结点,它没有入边,但有零条或多条出边。其中的字串 “天气” 是样本集属性名称。
(2)内部结点 (internal node),用矩形表示。如 “温度” 结点,它恰有一条入边,但有两条或多条出边。“温度” 是样本集属性名称。
(3)叶结点 (leaf node) 或终结点 (terminal node),用椭圆表示,如 “是” 结点,恰有一条入边,但没有出边。椭圆形里的 “是” 等字符串是样本集的一个类别标号。
(4)每条有向边都用其出点的属性值标记,如 “晴天”,“多云”、“雨天” 是其出点 “天气” 属性的三种取值。

通常,一个属性有多少种取值,就从该结点引出多少条有向边,每一条边代表属性的一种取值。

2、Hunt算法框架

  Hunt算法是Hunt等人1966年提出的决策树算法,它在选择划分训练集的属性时采用贪心策略,将训练集相继划分成较纯 (包括更少类别) 的子集,以递归方式建立决策树,并成为许多决策树算法的衍生框架,包括ID3、C4.5等。

  假设结点h对应的样本集用 S h S_h Sh 表示,而 C = { C 1 , C 2 , ⋯ , C k } C=\{C_1, C_2, \cdots, C_k\} C={C1,C2,,Ck} 是其类别属性,则Hunt算法的递归定义如下:
(1)如果 S h S_h Sh 中所有样本点都属于同一个类 C h C_h Ch,则 h h h 为叶结点,并用分类标号 C h C_h Ch 标记该结点。
(2)如果 S h S_h Sh 中包含多个类别的样本点,则选择一个 “好” 的属性 A A A,以属性 A A A 命名 h h h 并作为一个内部结点;然后按属性 A A A 的取值将 S h S_h Sh 划分为较小的子集,并为每个子集创建 A A A 的子女结点;然后把 A A A 的每个子女结点作为 h h h 结点,递归地调用Hunt算法。

说明:第(2)步是对训练集的划分,其关键是如何选择一个 “好” 的属性,这就需要好的 “属性测试条件(Attribute Test Condition)”。

3、Hunt算法的停止

简单策略:分裂结点直到所有的记录都属于同一个类,或者所有的记录都具有相同的属性值。
其它策略:在实际过程中还可能出现其它情况,应该考虑其它的标准来提前终止决策树的生长过程。比如附加条件
① 子女结点为空
在Hunt算法第(2)步所创建的子女结点可能为空,即不存在与这些结点条件相关联的样本点,则仍将该结点设为叶结点,其类别标号采用其父结点上多数样本的类别标号。
② 训练集 S h S_h Sh 属性值完全相同,但类别标号却不相同
即不可能进一步划分这些样本点,故应将该结点设置为叶结点,其类别标号采用该结点多数样本的类别标号。

(二)ID3分类方法

  ID3分类算法以信息论的信息熵为基础,以信息增益度为 “属性测试条件” ,并选择信息增益最大的属性对训练集进行分裂,从而实现对数据的归纳分类。

1、信息熵

  熵 (entropy) 概念最早来源于统计热力学,它是热力学系统混乱程度的一种度量。系统的混乱程度越低,其熵值就越小。

定义9-2 ξ \xi ξ 为可取n个离散数值的随机变量,它取 ε i \varepsilon_i εi 的概率为 p ( ε i ) ( i = 1 , 2 , ⋯ , n ) p(\varepsilon_i)(i=1,2,\cdots,n) p(εi)(i=1,2,,n),则我们定义 E ( ξ ) = − ∑ i = 1 n p ( ε i ) log ⁡ 2 p ( ε i ) (9-2) E(\xi)=-\sum_{i=1}^np(\varepsilon_i)\log_2p(\varepsilon_i)\tag{9-2} E(ξ)=i=1np(εi)log2p(εi)(9-2)为随机变量 ξ \xi ξ 的信息熵 (Information Entropy)。

  样本数据集 S S S 的任一属性 A A A 都可看作一个随机变量,假设其取值为 { a 1 , a 2 , ⋯ , a n } \{a_1, a_2 ,\cdots, a_n\} {a1,a2,,an},则 E ( A ) E(A) E(A) 就是属性 A A A 所有取值的信息熵,其熵值越小所蕴含的不确定信息越小,越有利于数据的分类。

定义9-3 S S S 是有限个样本点集合,分类属性 C = { C 1 , C 2 , ⋯ , C k } C=\{C_1,C_2,\cdots,C_k\} C={C1,C2,,Ck},有 S = C 1 ∪ C 2 ∪ ⋯ ∪ C k S=C_1\cup C_2\cup\cdots\cup C_k S=C1C2Ck,且 C i ∩ C j = ϕ ( i ≠ j ) C_i\cap C_j=\phi(i≠j) CiCj=ϕ(i=j),则定义 C C C 划分样本集 S S S 的信息熵 (简称 C C C的分类信息熵) 为 E ( S , C ) = − ∑ i = 1 k ∣ C i ∣ ∣ S ∣ log ⁡ 2 ∣ C i ∣ ∣ S ∣ (9-3) E(S,C)=-\sum_{i=1}^{k}\frac{|C_i|}{|S|}\log_2\frac{|C_i|}{|S|}\tag{9-3} E(S,C)=i=1kSCilog2SCi(9-3) 其中, ∣ C i ∣ |C_i| Ci 表示类 C i C_i Ci 中的样本点个数, ∣ C i ∣ / ∣ S ∣ |C_i|/|S| Ci∣/∣S 也被称为 S S S 中任意一个样本点属于 C i ( i = 1 , 2 , ⋯ , k ) C_i (i=1,2,\cdots,k) Ci(i=1,2,,k) 的概率。

定义9-4 S S S 是有限个样本点的集合,其条件属性 A A A 划分 S S S 所得子集为 { S 1 , S 2 , ⋯ , S v } \{S_1,S_2,\cdots,S_v\} {S1,S2,,Sv},则定义 A A A 划分样本集 S S S 的信息熵 (简称属性 A A A的分类信息熵) 为 E ( S , A ) = − ∑ j = 1 v ∣ S j ∣ ∣ S ∣ log ⁡ 2 ∣ S j ∣ ∣ S ∣ (9-4) E(S,A)=-\sum_{j=1}^{v}\frac{|S_j|}{|S|}\log_2\frac{|S_j|}{|S|}\tag{9-4} E(S,A)=j=1vSSjlog2SSj(9-4) 其中 ∣ S j ∣ / ∣ S ∣ |S_j|/|S| Sj∣/∣S 也称为 S S S 中任意一个样本点属于 S j ( i = 1 , 2 , ⋯ , v ) S_j (i=1,2,\cdots,v) Sj(i=1,2,,v) 的概率。

定义9-5 S S S 是有限个样本点的集合,其条件属性 A A A 划分 S S S 所得子集为 { S 1 , S 2 , ⋯ , S v } \{S_1,S_2,\cdots,S_v\} {S1,S2,,Sv},则定义条件属性 A A A 划分样本集 S S S 相对于 C C C 的信息熵 (简称 A A A相对 C C C的分类信息熵) 为 E ( S , A ∣ C ) = ∑ j = 1 v ∣ S j ∣ ∣ S ∣ E ( S j , C ) (9-5) E(S,A|C)=\sum_{j=1}^{v}\frac{|S_j|}{|S|}E(S_j,C)\tag{9-5} E(S,AC)=j=1vSSjE(Sj,C)(9-5) 其中, ∣ S i ∣ / ∣ S ∣ |S_i|/|S| Si∣/∣S 充当分类属性 C C C 划分第 j j j 个子集 S j S_j Sj 的信息熵权重;而 E ( S j , C ) E(S_j,C) E(Sj,C) 就是 C C C 分类 S j S_j Sj 的信息熵。 E ( S j , C ) = − ∑ i = 1 k ∣ C i ∩ S j ∣ ∣ S j ∣ log ⁡ 2 ( ∣ C i ∩ S j ∣ ∣ S j ∣ ) (9-6) E(S_j,C)=-\sum_{i=1}^{k}\frac{|C_i\cap S_j|}{|S_j|}\log_2\left(\frac{|C_i\cap S_j|}{|S_j|}\right)\tag{9-6} E(Sj,C)=i=1kSjCiSjlog2(SjCiSj)(9-6) 其中 ∣ C i ∩ S j ∣ / ∣ S j ∣ |C_i\cap S_j|/|S_j| CiSj∣/∣Sj 也称为子集 S j S_j Sj 中样本属于类 C i C_i Ci 的概率 ( i = 1 , 2 , ⋯ , k ; j = 1 , 2 , ⋯ , v ) (i=1,2,\cdots,k; j=1,2,\cdots,v) (i=1,2,,k;j=1,2,,v)

根据信息熵的概念, E ( S , A ∣ C ) E(S, A|C) E(S,AC) 的值越小,则利用条件属性 A A A S S S 进行子集划分的纯度越高,即分类能力越强。

2、信息增益

定义9-6 条件属性 A A A 划分样本集合 S S S 相对 C C C 的信息增益 (information gain) (也称为 A A A 相对 C C C的分类信息增益,简称 A A A的信息增益) 定义为 g a i n ( S , A ∣ C ) = E ( S , C ) − E ( S , A ∣ C ) (9-7) gain(S,A|C)=E(S,C)-E(S,A|C)\tag{9-7} gain(S,AC)=E(S,C)E(S,AC)(9-7) g a i n ( S , A ∣ C ) gain(S, A|C) gain(S,AC) 是分类属性 C C C 划分样本集 S S S 的信息熵与属性 A A A 划分样本集 S S S 相对 C C C 的信息熵之差。

3、ID3算法

  ID3算法用信息增益作为属性测试条件,且信息增益值越大以该属性作为分支结点越好。因此,设 S h S_h Sh 是结点h的样本集,而 C = { C 1 , C 2 , ⋯ , C k } C=\{C_1, C_2, \cdots, C_k\} C={C1,C2,,Ck} 是其类别属性,则ID3算法的递归定义如下:
(1)如果 S h S_h Sh 中所有记录都属于同一个类 C h C_h Ch,则 h h h 作为一个叶结点,并用分类标号 C h C_h Ch 标记该节点。
(2)如果 S h S_h Sh 中包含有多个类别的样本点,则记 S = S h S=S_h S=Sh
  ① 计算 C C C 划分样本集 S S S 的信息熵 E ( S , C ) E(S, C) E(S,C)
  ② 计算 S S S 中每个属性 A ′ A' A 划分 S S S 相对于 C C C 的信息熵 E ( S , A ′ ∣ C ) E(S, A'|C) E(S,AC) 及其信息增益 g a i n ( S , A ′ ∣ C ) = E ( S , C ) − E ( S , A ′ ∣ C ) gain(S, A'|C)=E(S, C)-E(S, A'|C) gain(S,AC)=E(S,C)E(S,AC)
  ③ 假设取得最大增益的属性为 A A A,则创建属性 A A A 结点;
  ④ 设属性 A A A 划分 S S S 所得子集的集合为 { S 1 , S 2 , ⋯ , S v } \{S_1,S_2,\cdots,S_v\} {S1,S2,,Sv},则从子集 S h ( h = 1 , 2 , ⋯ , v } S_h(h= 1,2,\cdots,v\} Sh(h=1,2,,v} 中删除属性 A A A 后仍将其记作 S h S_h Sh,为 A A A 结点创建子女结点 S h S_h Sh,并对 S h S_h Sh 递归地调用ID3算法。

4、从决策树提取分类规则

(1)如果天气=“晴” ∧ \wedge 湿度=“大”,则适宜打球=“否”。
(2)如果天气=“晴” ∧ \wedge 湿度=“小”,则适宜打球=“是”。
(3)如果 天气=“云”,则 适宜打球=“是”。
(4)如果 天气=“雨” ∧ \wedge 风力=“有”,则适宜打球=“否”。
(5)如果 天气=“雨” ∧ \wedge 风力=“无”,则适宜打球=“是”。

5、ID3算法的优点与缺点

1)主要优点
(1)模型理解容易:可方便地提取 “如果-则” 形式的分类规则。
(2)噪声影响较小:信息增益计算使用当前的所有训练样本,可以降低个别错误样本点带来的影响。
(3)分类速度较快,对未知类别标号的样本 Z u Z_u Zu,只需从树根开始搜索一条分裂属性值与 Z u Z_u Zu 对应属性值相等的一条路径,即可对 Z u Z_u Zu 分类。

2)主要缺点
(1)只能处理离散属性数据:ID3算法仅处理具有离散属性的数据集。
(2)不能处理有缺失的数据:ID3算法不能处理属性值有缺失的数据。
(3)仅是局部最优的决策树:ID3采用贪心算法,结果非全局最优。
(4)偏好取值种类多的属性:ID3采用信息增益作为选择分裂属性的度量标准,但大量的研究分析与实际应用发现,信息增益偏向于选择属性值个数较多的属性,而属性取值个数较多的属性并不一定是最优或分类能力最强的属性。

(三)决策树的剪枝

  一般地说,对于同一个训练样本集,其决策树越矮小就越容易理解,且存储与传输的代价也越小;反之,决策树越高大,可能导致决策树在测试集上的泛化误差增大。然而,决策树过于矮小也会导致泛化误差较大。因此,剪枝需要在决策树的大小与模型正确率之间寻求一个平衡点。

  ID3生成的决策树完全与训练样本拟合,而在有噪声情况下,完全拟合将导致过度拟合 (Overfitting),即对训练数据的完全拟合反而使对现实其它数据的分类预测性能下降。剪枝就是一种克服噪声的基本技术,可防止决策树的过度拟合,同时还能使决策树得到简化而变得更容易理解。剪枝技术主要包括预剪枝 (Pre-Pruning) 和后剪枝 (Post-Pruning) 两种方法。

1、预剪枝

  预剪枝技术的基本思想是限制决策树的过度生长,主要通过在训练过程中明确地控制树的大小来简化决策树。

  常用的预剪枝方法主要有以下几种。

(1)为决策树的高度设置阈值,当决策树到达阈值高度时就停止树的生长。通常能够取得比较好的效果,高度阈值设置困难,需反复尝试。
(2)如果当前结点中的训练样本点具有完全相同的属性值,即使这些样本点有不同的类别标号,决策树也不再从该结点继续生长;
(3)设定结点中最少样本点数量的阈值,如果当前结点中的样本点数量达不到阈值,决策树就不再从该结点继续生长,但这种方法不适用于小规模训练样本集。
(4)设定结点扩展的信息增益阈值,如果计算的信息增益值不满足阈值要求,决策树就不再从该结点继续生长。如果在最好情况下扩展的信息增益都小于阈值,即使有些结点的样本不属于同一类,算法也可以终止。当然,选取恰当的阈值也是比较困难的,阈值过高可能导致决策树过于简化,而阈值过低又可能对树的化简不够充分。

2、后剪枝

  后剪枝技术是在生成决策树时允许其过度生长,当决策树完全生成后,再根据一定的规则或条件,剪去决策树中那些不具有一般代表性的叶结点或分支。

  后剪枝算法有 “自上而下” 和 “自下而上” 两种剪枝策略。自下而上的剪枝算法首先从最底层的内部结点开始,剪去满足一定条件的内部结点,并在生成的新决策树上递归调用这个算法,直到没有可以剪枝的结点为止。自上而下的算法是从根结点开始向下逐个考虑结点的剪枝问题,只要结点满足剪枝的条件就进行剪枝。

  后剪枝是边修剪边检验的过程,一般规则是:在决策树不断剪枝的过程中,利用训练样本集或检验样本集的样本点,检验决策子树的预测精度,并计算出相应的错误率。如果剪去某个叶结点后能使得决策树在测试集上的准确度或其它测度不降低,就剪去这个叶结点。当产生一组逐渐被剪枝的决策树之后,使用一个独立的测试集评估每棵树的准确率,就能得到具有最小期望错误率的决策树。

(四)C4.5算法

  C4.5算法不仅继承了ID3算法的优点,并增加了对连续型属性和属性值空缺情况的处理,对树剪枝也使用了当时更为成熟的方法。特别地,C4.5采用基于信息增益率 (information gain ratio) 作为选择分裂属性的度量标准。

1、信息增益率

定义9-8 S S S 是有限个样本点的集合,条件属性 A A A 划分 S S S 所得子集为 { S 1 , S 2 , ⋯ , S v } \{S_1,S_2,\cdots,S_v\} {S1,S2,,Sv},则定义 A A A 划分样本集 S S S 的信息增益率为 g a i n R a t i o ( S , A ) = g a i n ( S , A ∣ C ) / E ( S , A ) (9-8) gainRatio(S, A)= gain(S, A|C)/E(S,A)\tag{9-8} gainRatio(S,A)=gain(S,AC)/E(S,A)(9-8) 其中, g a i n ( S , A ∣ C ) gain(S, A|C) gain(S,AC) 由公式 (9-7) 计算, E ( S , A ) E(S,A) E(S,A) 由公式 (9-4) 给出。

2、连续型属性的处理

  基本思想是把连续值属性的值域分割为离散的区间集合。若 A A A 是在连续区间取值的连续型属性,则按照以下方法将 A A A 分为二元属性。

(1)将训练集中的样本在属性 A A A 上的取值从小到大排序。假设训练样本集中属性 A A A 有m个不同的取值,其按非递减方式排序结果为 v 1 , v 2 , ⋯ , v m v_1, v_2, \cdots, v_m v1,v2,,vm
(2)按顺序将两个相邻的平均值 v j a = ( v j + v j + 1 ) 2 , ( j = 1 , 2 , ⋯ , m − 1 ) v_j^a=\frac{(v_j+v_{j+1})}{2},(j=1,2,\cdots,m-1) vja=2(vj+vj+1)(j=1,2,,m1) 作为分割点,共获得 m − 1 m-1 m1 个分割点,且每个分割点都将样本集划分为两个子集,分别对应 A ≤ v j a A≤v_j^a Avja A > v j a A>v_j^a A>vja 的样本集。
(3)计算分割点 v j a ( j = 1 , 2 , ⋯ , k − 1 ) v_j^a (j=1,2,\cdots,k-1) vja(j=1,2,,k1) 划分样本集 S S S 的信息增益,选择具有最大信息益 g a i n ( A v ′ ) gain(A_{v'}) gain(Av) 的分割点 v ′ v' v,将样本集划分为 A ≤ v ′ A≤v' Av A > v ′ A>v' A>v 的两个子集,并将 g a i n ( A v ′ ) gain(A_{v'}) gain(Av) 作为属性 A A A 划分样本集的信息增益。

3、空值的处理

(1)从训练集中将有空值的样本删除,使训练集属性都没有空值;
(2)以某种方法填充缺失数据,其目的也是使训练集的任何属性都没有空值。
  ① 对于数值属性,可用该属性非空值的平均值或频率最高值去填充;
  ② 对于离散属性,可以用该属性出现频率最高的值去填充空值,还可将空值作为一种特殊取值对待等。

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

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

相关文章

考研数学|李艳芳900比李林880难吗?值得做吗?

李艳芳老师比较有名的就是他的真题,900题还真是今年比较新的题集 目前,我看过900题的前两章,我觉得还是有一些亮点的: 900题第一章 与880第一章相比,两者各有千秋。880有种“一种题型一道题”(”精做一题…

普冉PY32系列(十五) PY32F0系列的低功耗模式

目录 普冉PY32系列(一) PY32F0系列32位Cortex M0 MCU简介普冉PY32系列(二) Ubuntu GCC Toolchain和VSCode开发环境普冉PY32系列(三) PY32F002A资源实测 - 这个型号不简单普冉PY32系列(四) PY32F002A/003/030的时钟设置普冉PY32系列(五) 使用JLink RTT代替串口输出日志普冉PY32…

教育信息化对于教育新生态作用

现在往回观察我国的教育发展史,会发现教育的创新变革和社会的转型发展是一脉相承的。就当前,我们以人工智能技术为核心的新兴信息技术正在联合起来发力,正在引发科革命和技术产业的全面革命,这对于人类的生产生活,思维…

2024年五一杯高校数学建模竞赛(A题)|钢板切割问题 | 建模解析,小鹿学长带队指引全代码文章与思路

我是鹿鹿学长,就读于上海交通大学,截至目前已经帮200人完成了建模与思路的构建的处理了~ 本篇文章是鹿鹿学长经过深度思考,独辟蹊径,通过路径优化解决钢板切割问题。结合贪心算法,Floyd-Warshall等多元算法…

ESD管 AZ5825-01F国产替代型号ESDA05CPX

已经有很多客户选用雷卯的ESDA05CPX替代Amazing 的 AZ5825-01F, 客户可以获得更好的价格和更快的交期,主要应用于对5V供电和4.5V供电电流较大的Vbus线路插拔保护等。 雷卯ESDA05CPX优势: 带回扫 ,钳位电压Vc 低,IPP为…

Windows11下Docker使用记录(四)

Docker使用记录&#xff08;四&#xff09; 1. container与host的文件传输2. container 与 Unity ROS setting 通讯3. container和wsl2或windows11我一直无法ping通 1. container与host的文件传输 从 container 复制文件至 host docker cp <container_name>:<file_p…

Springboot+Vue+小程序+基于微信小程序电影票网购系统

Java电影票购买管理系统&#xff0c;Maven管理工具&#xff0c;MyBatis数据库操作&#xff0c;idea平台开发&#xff0c;后台的前端为Vue&#xff0c;前台客户端为小程序&#xff0c;功能丰富&#xff0c;还有电影周边购买功能&#xff0c;请在最下方二维码处联系我即可&#x…

有种预感,今年双11可能有点冷清,你们觉得呢?

一方面是各个电商平台把促销周期拉长了&#xff0c;不再盯着11.11这一天&#xff1b;另一方面大家的荷包也不是那么鼓了&#xff0c;什么原因都懂的&#xff0c;老铁们觉得呢&#xff1f;

C# 实现格式化文本导入到Excel

目录 需求 Excel 的文本文件导入功能 范例运行环境 配置Office DCOM 实现 组件库引入 OpenTextToExcelFile 代码 调用 小结 需求 在一些导入功能里&#xff0c;甲方经常会给我们一些格式化的文本&#xff0c;类似 CSV 那样的纯文本。比如有关质量监督的标准文件&…

Apifox设置前置url的操作方法

目录 第一步 配置前置url&#xff0c;右上角设置-点击管理环境 第二步 填写请求方法和接口路径&#xff0c;切换成刚才设置的测试环境&#xff0c;点击发送 同一个域名遇到测试二个及以上接口&#xff0c;就可以通过设置前置url的方法来提升效率。操作也很简单&#xff0c;下…

【linux学习指南】linux 环境搭建

文章目录 &#x1f4dd;前言&#x1f320; 云服务器的选择&#x1f320;阿里云&#x1f320;腾讯云&#x1f320;华为云 &#x1f320;使用 XShell 远程登陆到 Linux&#x1f309;下载 XShell &#x1f320;查看 Linux 主机 ip&#x1f309; XShell 下的复制粘贴&#x1f309; …

供应链管理(SCM)把握好这5点,绝对差不到哪里去。

说到B端系统开发&#xff0c;框架是绕不开的话题&#xff0c;框架为开发者提供了诸多便利&#xff0c;同时也设置了条条框框&#xff0c;B系统工场为大家详细解读一下。 B端系统指的是面向企业或机构的后台管理系统&#xff0c;采用框架进行开发有以下优势和劣势&#xff1a; …

书生·浦语2.0(InternLM2)大模型实战--Day05 Lagent AgentLego 智能体应用搭建

视频地址&#xff1a;https://www.bilibili.com/video/BV1Xt4217728/ 课程文档&#xff1a;https://github.com/InternLM/Tutorial/tree/camp2/agent 课程作业&#xff1a;https://github.com/InternLM/Tutorial/blob/camp2/agent/homework.md 1. 概述 1.1 Lagent 是什么 La…

Spring Cloud Kubernetes 实践 服务注册发现、服务动态配置

一、Spring Cloud Kubernetes 随着云计算和微服务架构的不断发展&#xff0c;k8s 和Spring Cloud成为了当今技术领域的两大热门话题。k8s作为一个开源的容器编排平台&#xff0c;已经在自动化部署、扩展和管理方面取得了巨大的成功&#xff0c;而Spring Cloud则以其丰富的生态…

MySQL中索引的数据结构

2.3.1. 索引数据结构 索引就是能够提高查询速度的一种数据结构&#xff0c;在数据插入时就进行了排序&#xff08;会影响插入和更新的性能&#xff09;&#xff0c;索引广泛使用的是B树索引。 B树索引结构&#xff1a; 目前是基于磁盘排序效率最高的数据结构&#xff0c;树非…

Python 2 and3 兼容性问题的工具库之six使用详解

概要 在 Python 社区中&#xff0c;随着 Python 2 的逐渐退出舞台&#xff0c;许多项目需要同时兼容 Python 2 和 Python 3。为了简化这一任务&#xff0c;Python 社区开发了一个名为 six 的工具库&#xff0c;它提供了一组函数和工具&#xff0c;使得编写兼容 Python 2 和 Py…

Pandas Series的运算原来这么简单

Series的运算主要包括加法、减法、乘法和除法等基本算术运算。这些运算通常是按照索引对应计算的&#xff0c;如果两个Series的索引不同&#xff0c;则结果中对应位置将填充为NaN&#xff08;空值&#xff09;。 需要注意的是&#xff0c;在进行Series运算时&#xff0c;需要确…

文心一言 VS 讯飞星火 VS chatgpt (249)-- 算法导论18.2 2题

二、请解释在什么情况下&#xff08;如果有的话&#xff09;&#xff0c;在调用 B-TREE-INSERT 的过程中&#xff0c;会执行冗余的 DISK-READ 或 DISK-WRITE 操作。&#xff08;所谓冗余的 DISK-READ &#xff0c;是指对已经在主存中的某页做 DISK-READ 。冗余的 DISK-WRITE 是…

探索APP内测分发的全过程(APP开发)

什么是APP内测分发探索APP内测分发的全过程&#xff1f; APP内测分发是在应用程序开发过程中探索APP内测分发的全过程&#xff0c;开发者将应用程序的测试版或预发布版分发给特定用户进行测试、反馈和评估的一种方式。这是一个非常重要的环节&#xff0c;可以有效地提高应用的…

C语言——每日一题(反转链表)

一.前言 大家好&#xff01;今天又是每日一题环节。今天我为大家分享了一道单链表题——反转链表。 废话不多说&#xff0c;让我们直接进入正题吧。 二.正文 1.1题目信息 这是一道leetCode上面的一道题&#xff1a;https://leetcode.cn/problems/reverse-linked-list 1.2解…