【机器学习(五)】分类和回归任务-AdaBoost算法-Sentosa_DSML社区版 (2)11

文章目录

  • 一、算法概念11
  • 一、算法原理
    • (一)分类算法基本思路
      • 1、训练集和权重初始化
      • 2、弱分类器的加权误差
      • 3、弱分类器的权重
      • 4、Adaboost 分类损失函数
      • 5、样本权重更新
      • 6、AdaBoost 的强分类器
    • (二)回归算法基本思路
      • 1、最大误差的计算
      • 2、相对误差计算
      • 3、误差损失调整
      • 4、权重系数计算
      • 5、更新样本权重
      • 6、规范化因子
      • 7、强学习器
  • 三、算法的优缺点
      • 1、优点
      • 2、缺点
  • 四、Adaboost分类任务实现对比
    • (一)数据加载
      • 1、Python代码
      • 2、Sentosa_DSML社区版
    • (二)样本分区
      • 1、Python代码
      • 2、Sentosa_DSML社区版
    • (三)模型训练
      • 1、Python代码
      • 2、Sentosa_DSML社区版
    • (四)模型评估
      • 1、Python代码
      • 2、Sentosa_DSML社区版
    • (四)模型可视化
      • 1、Python代码
      • 2、Sentosa_DSML社区版
  • 四、Adaboost回归任务实现对比
    • (一)数据加载、样本分区和特征标准化
      • 1、Python代码
      • 2、Sentosa_DSML社区版
  • (二)模型训练
      • 1、Python代码
      • 2、Sentosa_DSML社区版
  • (三)模型评估
      • 1、Python代码
      • 2、Sentosa_DSML社区版
  • (四)模型可视化
      • 1、Python代码
      • 2、Sentosa_DSML社区版
  • 六、总结

一、算法概念11

什么是 AdaBoost?
  AdaBoost 是 Adaptive Boosting 的缩写,是一种集成机器学习算法,可用于各种分类和回归任务。它是一种监督学习算法,用于通过将多个弱学习器或基学习算法(例如决策树)组合成一个强学习器来对数据进行分类。AdaBoost 的工作原理是根据先前分类的准确性对训练数据集中的实例进行加权,也就是说AdaBoost 构建了一个模型,并为所有数据点分配了相同的权重,然后,它将更大的权重应用于错误分类的点。在模型中,所有权重较大的点都会被赋予更大的权重。它将继续训练模型,直到返回较小的错误。所以,

  • Boosting 是一个迭代的训练过程
  • 后续模型更加关注前一个模型中错误分类的样本
  • 最终预测是所有预测的加权组合

  如下图所示:
在这里插入图片描述
  以下是 AdaBoost 工作原理的步骤:

  1. 弱学习器:AdaBoost从弱分类器开始,弱分类器是一种相对简单的机器学习模型,其准确率仅略高于随机猜测率。弱分类器通常使用一个浅层决策树。
  2. 权重初始化:训练集中的每个实例最初被分配一个相等的权重。这些权重用于在训练期间赋予更困难的实例更多的重要性。
  3. 迭代(Boosting):AdaBoost执行迭代来训练一组弱分类器。在每次迭代中,模型都会尝试纠正组合模型到目前为止所犯的错误。在每次迭代中,模型都会为前几次迭代中被错误分类的实例分配更高的权重。
  4. 分类器权重计算:训练较弱的分类器的权重根据其产生的加权误差计算。误差较大的分类器获得较低的权重。
  5. 更新实例权重:错误分类的示例获得更高的权重,而正确分类的示例获得更低的权重。这导致模型在后续迭代中专注于更困难的示例。
  6. 加权组合弱分类器:AdaBoost将加权弱分类器组合生成一个强分类器。这个过程的关键在于,每个弱分类器的权重取决于它在训练过程中的表现,表现好的分类器会得到更高的权重,而表现不佳的分类器会得到较低的权重。
  7. 最终输出:最终输出是所有弱分类器组合而成的强分类器,该最终模型比单个弱分类器准确率更高。

  AdaBoost 的重点在于,通过这个迭代过程,模型能够聚焦于难以分类的样本,从而提升系统的整体性能。AdaBoost 具有很强的鲁棒性,能够适应各种弱模型,是一种强大的集成学习工具。算法流程如下所示:
在这里插入图片描述

一、算法原理

(一)分类算法基本思路

1、训练集和权重初始化

  这一节会详细解释AdaBoost 算法中的公式和推导过程,有助于理解每一步的逻辑及其含义。
训练集和权重初始化
  首先,是训练集和权重初始化部分,
  设训练集为:
T = { ( x , y 1 ) , ( x 2 , y 2 ) , … ( x m , y m ) } T=\left\{\left(x, y_1\right),\left(x_2, y_2\right), \ldots\left(x_m, y_m\right)\right\} T={(x,y1),(x2,y2),(xm,ym)}
  其中,每个样本 x i ∈ R n x_i∈R^n xiRn

  AdaBoost 算法从样本权重初始化开始。最开始,每个样本被赋予相等的权重:
D ( t ) = ( w t 1 , w t 2 , … w t m ) ; w 1 , i = 1 m ; i = 1 , 2 … m D(t)=\left(w_{t 1}, w_{t 2}, \ldots w_{t m}\right) ; \quad w_{1,i}=\frac{1}{m} ; \quad i=1,2 \ldots m D(t)=(wt1,wt2,wtm);w1,i=m1;i=1,2m
  其中,这里,所有权重 w 1 , i w_{1,i} w1,i的总和为1,表示每个样本的初始重要性是相等的。

2、弱分类器的加权误差

  这里假设我们是二元分类问题,在第 t 轮的迭代中,输出为 { − 1 , 1 } , \{-1 , 1\} , {11} 则第t个弱分类器 G t ( x ) G_t(x) Gt(x) 在训统集上的加权误差率为
ϵ t = P ( G t ( x i ) ≠ y i ) = ∑ i = 1 m w t i I ( G t ( x i ) ≠ y i ) \epsilon_t=P\left(G_t\left(x_i\right) \neq y_i\right)=\sum_{i=1}^m w_{t i} I\left(G_t\left(x_i\right) \neq y_i\right) ϵt=P(Gt(xi)=yi)=i=1mwtiI(Gt(xi)=yi)
  这里的 ϵ t \epsilon_t ϵt是第 t个弱分类器的加权误差率。 w t i w_{t i} wti是样本i在第t轮的权重,反映了在这一轮中该样本的重要性。加权误差表示的是分类错误的样本的权重总和,如果 ϵ t \epsilon_t ϵt接近 0,说明分类器表现良好,错误率很低;如果 ϵ t \epsilon_t ϵt接近 0.5,说明分类器的表现几乎是随机猜测。

3、弱分类器的权重

  对于每一轮的弱分类器,权重系数的表达公式为:
α t = 1 2 log ⁡ 1 − ϵ t ϵ t \alpha_t=\frac{1}{2} \log \frac{1-\epsilon_t}{\epsilon_t} αt=21logϵt1ϵt
  这个公式表明了弱分类器的表现与其权重之间的关系:

  如果 ϵ t \epsilon_t ϵt很小,表示弱分类器表现好,那么 α t \alpha_t αt会很大,表示这个分类器在最终组合中有较大的权重。
ϵ t \epsilon_t ϵt越接近 0.5,表示分类器效果接近随机猜测,那么 α t \alpha_t αt​越接近 0,表示该分类器在最终组合中权重很小。
如果 ϵ t \epsilon_t ϵt大于 0.5,理论上这个分类器的效果是反向的,意味着它的分类错误率超过 50%。因此 AdaBoost 会停止训练。

4、Adaboost 分类损失函数

  Adaboost是一种基于加法模型和前向分步算法的分类方法。它通过一系列弱分类器的组合来构建一个强分类器,核心思想是根据分类错误率动态调整样本的权重,使得分类器能更好地处理难以分类的样本。
  在Adaboost中,最终的强分类器 H t ( x ) H_t(x) Ht(x) 是若干个弱分类器的加权组合:
   H ( x ) = sign ( ∑ t = 1 T α t G t ( x ) ) H(x) = \text{sign}\left(\sum_{t=1}^T \alpha_t G_t(x)\right) H(x)=sign(t=1TαtGt(x))
   α i \alpha_i αi 表示第 i i i 个弱分类器的权重。其中, G i ( x ) G_i(x) Gi(x) 是第 i i i 个弱分类器对输入 x x x 的预测结果。
  通过前向分步学习方法,强分类器逐步构建为:
H t ( x ) = H t − 1 ( x ) + α t G t ( x ) H_t(x)=H_{t-1}(x)+\alpha_t G_t(x) Ht(x)=Ht1(x)+αtGt(x)
  Adaboost的损失函数定义为指数损失函数,其公式为:
arg ⁡ min ⁡ α , T ∑ i = 1 m exp ⁡ ( − y i h t ( x i ) ) \arg\min_{\alpha,T}\sum_{i=1}^m\exp\left(-y_ih_t(x_i)\right) argα,Tmini=1mexp(yiht(xi))
  其中:
   ∙ \bullet y i y_i yi为样本 i i i的真实标签,取值 { − 1 , 1 } \{-1,1\} {1,1}
   ∙ \bullet h t ( x i ) h_t( x_i) ht(xi)为分类器 h t h_t ht对样本 x i x_i xi的预测结果。
  利用前向分步学习的递推公式 h t ( x ) = h t − 1 ( x ) + α t G t ( x ) h_t(x)=h_{t-1}(x)+\alpha_tG_t(x) ht(x)=ht1(x)+αtGt(x),损失函数可以改写为:
( α t , G t ( x ) ) = arg ⁡ min ⁡ α , G ∑ i = 1 m exp ⁡ [ − y i ( h t − 1 ( x i ) + α G ( x i ) ) ] (\alpha_t,G_t(x))=\arg\min_{\alpha,G}\sum_{i=1}^m\exp\left[-y_i\left(h_{t-1}(x_i)+\alpha G(x_i)\right)\right] (αt,Gt(x))=argα,Gmini=1mexp[yi(ht1(xi)+αG(xi))]
  定义样本权重 w t , i ′ w_{t,i}^{\prime} wt,i为:
w t , i ′ = exp ⁡ ( − y i h t − 1 ( x i ) ) w_{t,i}'=\exp{(-y_ih_{t-1}(x_i))} wt,i=exp(yiht1(xi))
  它的值不依赖于 α \alpha α G G G,只与 h t − 1 ( x ) h_{t-1}(x) ht1(x)相关。因此,损失函数可以改写为:
( α t , G t ( x ) ) = arg ⁡ min ⁡ α , G ∑ i = 1 m w t , i ′ exp ⁡ [ − y i α G ( x i ) ] (\alpha_t,G_t(x))=\arg\min_{\alpha,G}\sum_{i=1}^mw_{t,i}'\exp\left[-y_i\alpha G(x_i)\right] (αt,Gt(x))=argα,Gmini=1mwt,iexp[yiαG(xi)]
  为了找到最优的弱分类器 G t ( x ) G_t(x) Gt(x),可以将损失函数展开为:
∑ i = 1 m w t , i ′ exp ⁡ ( − y i α G ( x i ) ) = ∑ y i = G t ( x i ) w t , i ′ e − α + ∑ y i ≠ G t ( x i ) w t , i ′ e α \sum_{i=1}^mw_{t,i}'\exp\left(-y_i\alpha G(x_i)\right)=\sum_{y_i=G_t(x_i)}w_{t,i}'e^{-\alpha}+\sum_{y_i\neq G_t(x_i)}w_{t,i}'e^{\alpha} i=1mwt,iexp(yiαG(xi))=yi=Gt(xi)wt,ieα+yi=Gt(xi)wt,ieα
  由此,可以得到最优弱分类器 G t ( x ) G_t(x) Gt(x)的选择:
G t ( x ) = arg ⁡ min ⁡ G ∑ i = 1 m w t , i ′ I ( y i ≠ G ( x i ) ) G_t(x)=\arg\min_G\sum_{i=1}^mw_{t,i}'I(y_i\neq G(x_i)) Gt(x)=argGmini=1mwt,iI(yi=G(xi))
  将 G t ( x ) G_t(x) Gt(x) 带入损失函数后,对 α \alpha α 求导并令其等于0,可以得到:
α t = 1 2 log ⁡ 1 − e t e t \alpha_t=\dfrac{1}{2}\log\dfrac{1-e_t}{e_t} αt=21loget1et
  其中, e t e_t et为第 t t t轮的加权分类误差率:
e t = ∑ i = 1 m w t , i ′ I ( y i ≠ G ( x i ) ) ∑ i = 1 m w t , i ′ = ∑ i = 1 m w t , i I ( y i ≠ G ( x i ) ) e_t=\frac{\sum_{i=1}^mw_{t,i}'I(y_i\neq G(x_i))}{\sum_{i=1}^mw_{t,i}'}=\sum_{i=1}^mw_{t,i}I(y_i\neq G(x_i)) et=i=1mwt,ii=1mwt,iI(yi=G(xi))=i=1mwt,iI(yi=G(xi))
  在第t+1轮中,样本权重会根据弱分类器的表现进行更新。对于分类错误的样本,其权重会增大,从而在下一轮中对这些样本给予更多的关注。通过以上推导,可以得到Adaboost的弱分类器样本权重更新公式。

5、样本权重更新

  接下来,计算AdaBoost 更新样本的权重,以便在下一轮训练中更加关注那些被当前弱分类器错误分类的样本。利用 h t ( x ) = h t − 1 ( x ) + α t G t ( x ) h_t(x)=h_{t-1}(x)+\alpha_tG_t(x) ht(x)=ht1(x)+αtGt(x) w t , i ′ = exp ⁡ ( − y i h t − 1 ( x ) ) w_{t,i}^{\prime}=\exp(-y_ih_{t-1}(x)) wt,i=exp(yiht1(x)),可以得到样本权重的更新公式为:
w t + 1 , i = w t i Z T exp ⁡ ( − α t y i G t ( x i ) ) w_{t+1, i}=\frac{w_{t i}}{Z_T} \exp \left(-\alpha_t y_i G_t\left(x_i\right)\right) wt+1,i=ZTwtiexp(αtyiGt(xi))
  其中, α t \alpha_t αt 是第 t t t 个弱分类器的权重, y i y_i yi 是样本 i i i 的真实标签, G t ( x i ) G_t\left(x_i\right) Gt(xi) 是第 t t t 个弱分类器对样本 x i x_i xi 的预测结果。
  这个公式的作用是通过调整权重来强化难以分类的样本:

  • 如果分类器 G t ( x i ) G_t\left(x_i\right) Gt(xi) 对样本 x i x_i xi 分类错误,即 y i G t ( x i ) < 0 y_i G_t\left(x_i\right)<0 yiGt(xi)<0 会导致 w t + 1 , i w_{t+1, i} wt+1,i 增大,表示这个样本在下一轮中会被赋予更大的权重,模型会更关注它。
  • 如果分类器 G t ( x i ) G_t\left(x_i\right) Gt(xi) 对样本 x i x_i xi 分类正确,即 y i G t ( x i ) > 0 y_i G_t\left(x_i\right)>0 yiGt(xi)>0 会导致 w t + 1 , i w_{t+1, i} wt+1,i 减小,表示模型认为这个样本已经很好分类了,下轮可以降低它的重要性。

6、AdaBoost 的强分类器

  这里 Z t Z_t Zt 是规范化因子,保证更新后的权重仍然是一个概率分布。其计算公式为:
Z t = ∑ i = 1 m w t i exp ⁡ ( − α t y i G t ( x i ) ) Z_t=\sum_{i=1}^m w_{t i} \exp \left(-\alpha_t y_i G_t\left(x_i\right)\right) Zt=i=1mwtiexp(αtyiGt(xi))
  通过这个规范化因子,所有的权重从 w t + 1 , i w_{t+1, i} wt+1,i 被重新调整,使得它们的总和依然为 1。从样本权重更新公式可以看出,分类错误的样本会得到更高的权重,这让下一轮的弱分类器更加关注这些难以分类的样本。这种机制逐步强化了对弱分类器表现不好的部分样本的关注,最终通过多次迭代形成一个强分类器:

H ( x ) = sign ( ∑ t = 1 T α t G t ( x ) ) H(x) = \text{sign}\left(\sum_{t=1}^T \alpha_t G_t(x)\right) H(x)=sign(t=1TαtGt(x))

(二)回归算法基本思路

  我们先从回归问题中的误差率定义开始解释,逐步详细分析每个公式和步骤。

1、最大误差的计算

  给定第t个弱学习器 G t ( x ) G_t(x) Gt(x),其在训练集上的最大误差定义为:
E t = max ⁡ ∣ y i − G t ( x i ) ∣ i = 1 , 2 … m E_t=\max \left|y_i-G_t\left(x_i\right)\right| i=1,2 \ldots m Et=maxyiGt(xi)i=1,2m
  通过计算每个样本上预测值和真实值之间的绝对差值,找到这个差值的最大值。这个最大误差为后续计算每个样本的相对误差提供了一个标准化的尺度,使得每个样本的误差相对该最大误差进行比较。

2、相对误差计算

  然后计算毎个样本i的相对误差
e t i = ∣ y i − G t ( x i ) ∣ E t e_{t i}=\frac{\left|y_i-G_t\left(x_i\right)\right|}{E_t} eti=EtyiGt(xi)
  通过相对误差,我们可以统一衡量所有样本的误差,而不受特定样本的绝对误差影响。

3、误差损失调整

  误差损失可以根据不同的度量方式进行调整。
  如果是线性误差的情况,即直接比较绝对误差:
e t i = ( y i − G t ( x i ) ) 2 E t e_{t i}=\frac{\left(y_i-G_t\left(x_i\right)\right)^2}{E_t} eti=Et(yiGt(xi))2
  如果使用平方误差,则相对误差为:
e t i = ( y i − G t ( x i ) ) 2 E t 2 e_{t i}=\frac{\left(y_i-G_t\left(x_i\right)\right)^2}{E_t^2} eti=Et2(yiGt(xi))2
  如果我们用的是指数误差,则
e t i = 1 − exp ⁡ ( − ∣ y i − G t ( x i ) ∣ ) E t ) e_{t i}=1-\exp \left(\frac{\left.-\left|y_i-G_t\left(x_i\right)\right|\right)}{E_t}\right) eti=1exp(EtyiGt(xi)))
  指数误差对较大的误差进行了压缩,使其影响变得非线性。
  最终得到第t个弱学习器的误差率
e t = ∑ i = 1 m w t i e t i e_t=\sum_{i=1}^m w_{t i} e_{t i} et=i=1mwtieti
  反映了第t个弱学习器在整个训练集上的整体表现

4、权重系数计算

  对于第t个弱学习器,权重系数 α t \alpha_t αt的计算公式为:

α t = e t 1 − e t \alpha_t=\frac{e_t}{1-e_t} αt=1etet
  这里,权重 α t \alpha_t αt反映了第 t个弱学习器的重要性。如果误差率 e t e_t et小,则 α t \alpha_t αt会较大,表明该弱学习器的重要性较高;反之,误差率大的弱学习器权重较小,这种权重系数分配方法确保了表现更好的弱学习器在组合中获得更大的影响力。

5、更新样本权重

  对于更新样本权重D,第t+1个弱学习器的样本集权重系数为:
w t + 1 , i = w t i Z t α t 1 − e t i w_{t+1, i}=\frac{w_{t i}}{Z_t} \alpha_t^{1-e_{t i}} wt+1,i=Ztwtiαt1eti
  样本权重更新的核心思想是,将更多的关注放在那些难以分类的样本上,以便在后续的训练中重点处理这些样本。

6、规范化因子

  这里 Z t Z_t Zt 是规范化因子,规范化因子的计算公式为:

Z t = ∑ i = 1 m w t i α t 1 − e t i Z_t=\sum_{i=1}^m w_{t i} \alpha_t^{1-e_{t i}} Zt=i=1mwtiαt1eti
  通过这个规范化步骤,保持了样本权重的标准化,使得权重在每一轮迭代中不会无穷增大或减小。

7、强学习器

  回归问题与分类问题略有不同,最终的强回归器 f(x)不是简单的加权和,而是通过选择若干弱学习器中的一个,最终的强回归器为:
f ( x ) = G t ∗ ( x ) f(x)=G_{t^*}(x) f(x)=Gt(x)
  其中, G t ∗ ( x ) G_{t^*}(x) Gt(x) 是所有 ln ⁡ 1 α t , t = 1 , 2 , … T \ln \frac{1}{\alpha_t}, t=1,2, \ldots T lnαt1,t=1,2,T 的中位数值对应序号 t ∗ t^* t 对应的弱学习器。这种方法能够在一定程度上避免极端弱学习器的影响,从而更稳定地进行回归预测。

三、算法的优缺点

1、优点

  Adaboost算法的主要优点有:

  • 分类精度高:作为分类器时,Adaboost可以显著提高分类精度。
  • 灵活性强:Adaboost框架下可以使用各种回归或分类模型作为弱学习器,应用广泛。
  • 简单易理解:尤其是用于二元分类时,算法构造简单且结果容易解释。
  • 不易过拟合:相较于其他算法,Adaboost不容易过拟合。

2、缺点

  Adaboost的主要缺点有:

  • 对异常样本敏感:在迭代过程中,异常样本可能获得过高的权重,影响最终模型的预测效果。

  此外,虽然理论上任何学习器都可以作为弱学习器,但实践中最常用的弱学习器是决策树和神经网络。在分类任务中,Adaboost通常使用CART分类树;在回归任务中,则使用CART回归树。

四、Adaboost分类任务实现对比

  主要根据模型搭建的流程,对比传统代码方式和利用Sentosa_DSML社区版完成机器学习算法时的区别。

(一)数据加载

1、Python代码

#导入库
from sklearn.ensemble import AdaBoostClassifier
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from sklearn.datasets import load_iris#加载数据集
iris = load_iris()
X = iris.data
y = iris.target

  在此步骤中,我们导入必要的库。AdaBoostClassifier 是用于实现 AdaBoost 的 scikit-learn 类,DecisionTreeClassifier 是基本的弱分类器(在本例中为浅层决策树),其他库用于数据管理和性能评估。

2、Sentosa_DSML社区版

  利用文本算子读入数据。
在这里插入图片描述

(二)样本分区

  此步骤将数据集分为训练集和测试集。20%的数据用作测试集,而80%用于训练模型。

1、Python代码

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

2、Sentosa_DSML社区版

  利用样本分区算子划分训练集和测试集
在这里插入图片描述
  利用类型算子设置数据的标签列和特征列
在这里插入图片描述

(三)模型训练

1、Python代码

#配置弱分类器和AdaBoost分类器。n_estimators指定要训练的迭代次数(弱分类器)weak_classifier = DecisionTreeClassifier(max_depth=5,   max_leaf_nodes=None,  random_state=42)# 设置 AdaBoostClassifier 的参数
n_estimators = 50
learning_rate = 1.0# 创建 AdaBoost 分类器
adaboost_classifier = AdaBoostClassifier(estimator=weak_classifier,n_estimators=n_estimators,learning_rate=learning_rate,random_state=42)
#训练 AdaBoost 模型
adaboost_classifier.fit(X_train, y_train)

2、Sentosa_DSML社区版

  使用AdaBoost分类算子进行模型训练。
在这里插入图片描述
  执行完成后得到训练结果
在这里插入图片描述

(四)模型评估

1、Python代码

#对测试集进行预测,并通过将预测与真实标签进行比较来计算模型的准确性等指标
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, confusion_matrix
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.metrics import confusion_matrix
# 评估模型
accuracy = accuracy_score(y_test, predictions)
precision = precision_score(y_test, predictions, average='weighted')
recall = recall_score(y_test, predictions, average='weighted')
f1 = f1_score(y_test, predictions, average='weighted')
# 打印评估结果
print(f"AdaBoost 模型的准确率: {accuracy:.2f}")
print(f"加权精度 (Weighted Precision): {precision:.2f}")
print(f"加权召回率 (Weighted Recall): {recall:.2f}")
print(f"F1 值 (Weighted F1 Score): {f1:.2f}")# 计算混淆矩阵cm = confusion_matrix(y_test, predictions)plt.figure(figsize=(8, 6))
sns.heatmap(cm, annot=True, fmt='d', cmap='Blues', xticklabels=iris.target_names, yticklabels=iris.target_names)
plt.title('Confusion Matrix')
plt.xlabel('Predicted Label')
plt.ylabel('True Label')
plt.show()

2、Sentosa_DSML社区版

  利用评估算子对模型进行评估
在这里插入图片描述
  评估完成后得到模型训练集和验证集上的的评估结果。
在这里插入图片描述
在这里插入图片描述
  利用混淆矩阵算子可以计算模型在训练集和测试集上的混淆矩阵
在这里插入图片描述
  结果如下:
在这里插入图片描述
在这里插入图片描述

(四)模型可视化

1、Python代码

# 计算特征重要性并进行排序
importances = adaboost_classifier.feature_importances_
indices = np.argsort(importances)[::-1]# 绘制特征重要性柱状图
plt.figure(figsize=(10, 6))
plt.title("Feature Importances")
plt.bar(range(X.shape[1]), importances[indices], align="center")
plt.xticks(range(X.shape[1]), [iris.feature_names[i] for i in indices], rotation=45)
plt.tight_layout()
plt.show()

在这里插入图片描述

2、Sentosa_DSML社区版

  右键查看模型信息即可得到特征重要性排序图和模型可视化结果等信息,模型信息如下图所示:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、Adaboost回归任务实现对比

  主要根据回归模型搭建的流程,对比传统代码方式和利用Sentosa_DSML社区版完成机器学习算法时的区别。

(一)数据加载、样本分区和特征标准化

1、Python代码

#导入库
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeRegressor
from sklearn.ensemble import AdaBoostRegressor
from sklearn.metrics import r2_score, mean_absolute_error, mean_squared_error# 读取数据集
df = pd.read_csv("D:/sentosa_ML/Sentosa_DSML/mlServer/TestData/winequality.csv")# 将数据集划分为特征和标签
X = df.drop("quality", axis=1)  # 假设标签是 "quality"
Y = df["quality"]# 划分训练集和测试集
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.2, random_state=42)# 标准化特征
sc_x = StandardScaler()
X_train = sc_x.fit_transform(X_train)
X_test = sc_x.transform(X_test)

2、Sentosa_DSML社区版

  与上一节数据处理和样本分区操作类似,首先,利用文本算子读入数据,然后,连接样本分区算子划分训练集和测试集,其次,使用类型算子设置数据的标签列和特征列。
在这里插入图片描述
  接下来,连接标准化算子对数据集进行标准化处理
在这里插入图片描述
  执行得到标准化模型
在这里插入图片描述

(二)模型训练

1、Python代码

base_regressor = DecisionTreeRegressor(max_depth=8,               # 树的最大深度min_samples_split=1,        # 最小实例数min_impurity_decrease=0.0,  # 最小信息增益max_features=None,          # 不限制最大分桶数random_state=42
)# 设置 AdaBoost 回归器的参数
adaboost_regressor  = AdaBoostRegressor(estimator=base_regressor,n_estimators=100,          # 最大迭代次数为100learning_rate=0.1,         # 步长为0.1loss='square',             # 最小化的损失函数为 squared errorrandom_state=42
)# 训练模型
adaboost_regressor.fit(X_train, Y_train)# 预测测试集上的标签
y_pred = adaboost_regressor.predict(X_test)

2、Sentosa_DSML社区版

  连接AdaBoost回归算子
在这里插入图片描述
  执行得到回归模型
在这里插入图片描述

(三)模型评估

1、Python代码

# 计算评估指标
r2 = r2_score(Y_test, y_pred)
mae = mean_absolute_error(Y_test, y_pred)
mse = mean_squared_error(Y_test, y_pred)
rmse = np.sqrt(mse)
mape = np.mean(np.abs((Y_test - y_pred) / Y_test)) * 100
smape = 100 / len(Y_test) * np.sum(2 * np.abs(Y_test - y_pred) / (np.abs(Y_test) + np.abs(y_pred)))# 打印评估结果
print(f"R²: {r2}")
print(f"MAE: {mae}")
print(f"MSE: {mse}")
print(f"RMSE: {rmse}")
print(f"MAPE: {mape}%")
print(f"SMAPE: {smape}%")

2、Sentosa_DSML社区版

  连接评估算子对模型进行评估
在这里插入图片描述
  训练集和测试集的评估结果如下图所示:
在这里插入图片描述
在这里插入图片描述

(四)模型可视化

1、Python代码

# 可视化特征重要性
importances = adaboost_regressor.feature_importances_
indices = np.argsort(importances)[::-1]plt.figure(figsize=(10, 6))
plt.title("Feature Importances")
plt.bar(range(X.shape[1]), importances[indices], align="center")
plt.xticks(range(X.shape[1]), X.columns[indices], rotation=45)
plt.tight_layout()
plt.show()

在这里插入图片描述

2、Sentosa_DSML社区版

  右键即可查看模型信息,下图为模型特征重要性和残差直方图:
在这里插入图片描述
在这里插入图片描述

六、总结

  相比传统代码方式,利用Sentosa_DSML社区版完成机器学习算法的流程更加高效和自动化,传统方式需要手动编写大量代码来处理数据清洗、特征工程、模型训练与评估,而在Sentosa_DSML社区版中,这些步骤可以通过可视化界面、预构建模块和自动化流程来简化,有效的降低了技术门槛,非专业开发者也能通过拖拽和配置的方式开发应用,减少了对专业开发人员的依赖。
  Sentosa_DSML社区版提供了易于配置的算子流,减少了编写和调试代码的时间,并提升了模型开发和部署的效率,由于应用的结构更清晰,维护和更新变得更加容易,且平台通常会提供版本控制和更新功能,使得应用的持续改进更为便捷。

  Sentosa数据科学与机器学习平台(Sentosa_DSML)是力维智联完全自主知识产权的一站式人工智能开发部署应用平台,可同时支持零代码“拖拉拽”与notebook交互式开发,旨在通过低代码方式帮助客户实现AI算法模型的开发、评估与部署,结合完善的数据资产化管理模式与开箱即用的简捷部署支持,可赋能企业、城市、高校、科研院所等不同客户群体,实现AI普惠、化繁为简。
  Sentosa_DSML产品由1+3个平台组成,以数据魔方平台(Sentosa_DC)为主管理平台,三大功能平台包括机器学习平台(Sentosa_ML)、深度学习平台(Sentosa_DL)和知识图谱平台(Sentosa_KG)。力维智联凭借本产品入选“全国首批人工智能5A等级企业”,并牵头科技部2030AI项目的重要课题,同时服务于国内多家“双一流”高校及研究院所。
  为了回馈社会,矢志推动全民AI普惠的实现,不遗余力地降低AI实践的门槛,让AI的福祉惠及每一个人,共创智慧未来。为广大师生学者、科研工作者及开发者提供学习、交流及实践机器学习技术,我们推出了一款轻量化安装且完全免费的Sentosa_DSML社区版软件,该软件包含了Sentosa数据科学与机器学习平台(Sentosa_DSML)中机器学习平台(Sentosa_ML)的大部分功能,以轻量化一键安装、永久免费使用、视频教学服务和社区论坛交流为主要特点,同样支持“拖拉拽”开发,旨在通过零代码方式帮助客户解决学习、生产和生活中的实际痛点问题。
  该软件为基于人工智能的数据分析工具,该工具可以进行数理统计与分析、数据处理与清洗、机器学习建模与预测、可视化图表绘制等功能。为各行各业赋能和数字化转型,应用范围非常广泛,例如以下应用领域:
  金融风控:用于信用评分、欺诈检测、风险预警等,降低投资风险;
  股票分析:预测股票价格走势,提供投资决策支持;
  医疗诊断:辅助医生进行疾病诊断,如癌症检测、疾病预测等;
  药物研发:进行分子结构的分析和药物效果预测,帮助加速药物研发过程;
  质量控制:检测产品缺陷,提高产品质量;
  故障预测:预测设备故障,减少停机时间;
  设备维护:通过分析机器的传感器数据,检测设备的异常行为;
  环境保护:用于气象预测、大气污染监测、农作物病虫害防止等;
  客户服务:通过智能分析用户行为数据,实现个性化客户服务,提升用户体验;
  销售分析:基于历史数据分析销量和价格,提供辅助决策;
  能源预测:预测电力、天然气等能源的消耗情况,帮助优化能源分配和使用;
  智能制造:优化生产流程、预测性维护、智能质量控制等手段,提高生产效率。

  欢迎访问Sentosa_DSML社区版的官网https://sentosa.znv.com/,免费下载体验。同时,我们在B站、CSDN、知乎、博客园等平台有技术讨论博客和应用案例分享,欢迎广大数据分析爱好者前往交流讨论。

  Sentosa_DSML社区版,重塑数据分析新纪元,以可视化拖拽方式指尖轻触解锁数据深层价值,让数据挖掘与分析跃升至艺术境界,释放思维潜能,专注洞察未来。
社区版官网下载地址:https://sentosa.znv.com/
社区版官方论坛地址:http://sentosaml.znv.com/
B站地址:https://space.bilibili.com/3546633820179281
CSDN地址:https://blog.csdn.net/qq_45586013?spm=1000.2115.3001.5343
知乎地址:https://www.zhihu.com/people/kennethfeng-che/posts
博客园地址:https://www.cnblogs.com/KennethYuen
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端入门之VUE--ajax、vuex、router,最后的前端总结

前言 VUE是前端用的最多的框架&#xff1b;这篇文章是本人大一上学习前端的笔记&#xff1b;欢迎点赞 收藏 关注&#xff0c;本人将会持续更新。本人不是学前端的&#xff0c;这个是大一的时候上学的和做的笔记&#xff0c;那个时候学的也蒙&#xff0c;故这里对前端做一个总…

GB28181系列三:GB28181流媒体服务器ZLMediaKit

我的音视频/流媒体开源项目(github) GB28181系列目录 目录 一、ZLMediaKit介绍 二、 ZLMediaKit安装、运行(Ubuntu) 1、安装 2、运行 3、配置 三、ZLMediaKit使用 一、ZLMediaKit介绍 ZLMediaKit是一个基于C11的高性能运营级流媒体服务框架&#xff0c;项目地址&#xf…

人工智能增强的音频和聊天协作服务

论文标题&#xff1a;AI-enabled Audio and Chat Collaboration Services 中文标题&#xff1a;人工智能增强的音频和聊天协作服务 作者信息&#xff1a; Emil P. Andersen, Norwegian Defence Research Establishment (FFI), Kjeller, NorwayJesper R. Goksr, Sindre E. Ha…

构建树莓派温湿度监测系统:从硬件到软件的完整指南

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

企业内训|阅读行业产品运营实战训练营-某运营商数字娱乐公司

近日&#xff0c;TsingtaoAI公司为某运营商旗下数字娱乐公司组织的“阅读行业产品运营实战训练营”在杭州落下帷幕。此次训练营由TsingtaoAI资深互联网产品专家程靖主持。该公司的业务骨干——来自内容、市场、业务、产品与技术等跨部门核心岗位、拥有8-10年实战经验的中坚力量…

vue+node+mysql8.0,详细步骤及报错解决方案

1.下载需要安装的插件 下载express npm install express下载cors&#xff0c;用于处理接口跨域问题 npm install cors下载mysql npm install mysql 2.配置服务器 可以在vue项目的src同级创建server文件夹&#xff08;这里的位置可随意选择&#xff09; 然后依次创建&#…

C语言刷题(2)

5. 题目描述 KIKG今年5岁了&#xff0c;已经能够认识100以内的非负整数&#xff0c;并且并目能够 进行 100 以内的非负整数的加法计算&#xff0c;不过&#xff0c;老师发现KIK在进行大于等于100的正整数的计算时&#xff0c;规则如下: 1.只保留该数的最后两位&#xff0c;例…

360智脑张向征:共建可信可控AI生态 应对大模型安全挑战

发布 | 大力财经 人工智能的加速发展&#xff0c;有力推动了社会的数智化转型&#xff1b;与此同时&#xff0c;带来的相关安全风险也日益凸显。近日&#xff0c;在北京市举办的通明湖人工智能开发与应用大会上&#xff0c;360智脑总裁张向征以“大模型安全研究与实践”为主题&…

相机标定中的相机模型

一、相机标定基本原理 在图像测量过程以及机器视觉应用中&#xff0c;为确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系&#xff0c;必须建立摄像机成像的几何模型,这些几何模型参数就是摄像机参数。在大多数条件下这些参数必须通过实验与计算才能得到&…

【大模型微调学习6】-实战Hugging Face Transformers工具库

【大模型微调学习6】-实战Hugging Face Transformers工具库 实战Hugging Face Transformers工具库1.Hugging Face Transformers 库是什么&#xff1f;2.HF Transformers 核心模块学习&#xff1a;Pipelines&#xff08;1&#xff09;如何下载hugging face的数据集和模型权重&am…

【AIGC进阶-ChatGPT提示词副业解析】探索生活的小确幸:在平凡中寻找幸福

引言 在这个快节奏的现代社会中,我们常常被各种压力和焦虑所困扰,忘记了生活中那些细小而珍贵的幸福时刻。本文将探讨如何在日常生活中发现和珍惜那些"小确幸",以及如何通过尝试新事物来丰富我们的生活体验。我们还将讨论保持神秘感和期待感对于维持生活乐趣的重要性…

使用 rvest 包快速抓取网页数据:从入门到精通

介绍 随着大数据和数据科学的迅速发展&#xff0c;互联网数据的抓取已经成为重要的信息获取手段之一。网页抓取&#xff08;Web Scraping&#xff09;可以帮助我们自动化地从网页中提取有价值的数据&#xff0c;应用广泛&#xff0c;包括新闻热点分析、金融数据采集等。在本篇…

在 DDD 中优雅的发送 Kafka 消息

前言 1:host 映射 下载 SwitchHost 配置一个映射地址。点击 添加一个本地环境&#xff0c;之后配置你的 IP kafka 这样就能找这个地址了。IP 为你本地的IP&#xff0c;如果是云服务器就是公网IP地址 使用docker-compose.yml进行一键部署安装 version: 3.0 # docker-compose …

c#上班,上学,交通方式接口

using System;namespace INTERFACE {abstract class Person{public string Name { get; set; }public int Age { get; set; }public virtual void ShowInfo(){Console.WriteLine($"Name: {Name}, Age: {Age}");}}// 接口 IWorkinterface IWork{void GotoCompany();}/…

Halcon 直连相机

一、相机类别 1、大恒示例 DahengCAM 使用大华相机,待补充... 2、大华例程 GigEVision 2.1 关键算子 1、查询指定图像采集接口信息。 info_framegrabber (GigEVision, info_boards, Information, ValueList) 获取结果 unique_name:302fac01cd50_MachineVision_MVA5B57MG20…

RPC 服务与 gRPC 的入门案例

RPC 协议 RPC&#xff08;Remote Procedure Call Protocol&#xff09;即远程过程调用协议&#xff0c;它是一种通过网络从远程计算机程序上请求服务的协议&#xff0c;允许一个计算机程序可以像调用本地服务一样调用远程服务 。 RPC的主要作用是不同的服务间方法调用就像本地…

机器学习-正则化技术

文章目录 拟合正则化正则项L1 正则化&#xff08;Lasso&#xff09;L2 正则化&#xff08;Ridge&#xff09; 多元线性回归的正则化回归形式代码 拟合 过拟合&#xff1a;参数&#xff08;特征&#xff09;过多&#xff08;理解为考虑很多因素)或者说过多专注于原来的训练数据…

数据可视化-2. 条形图

目录 1. 条形图适用场景分析 1.1 比较不同类别的数据 1.2 展示数据分布 1.3 强调特定数据点 1.4 展示时间序列数据的对比 1.5 数据可视化教育 1.6 特定领域的应用 2. 条形图局限性 3. 条形图图代码实现 3.1 Python 源代码 3.2 条形图效果&#xff08;网页显示&#…

【DBeaver】连接带kerberos的hive[Apache|HDP]

目录 一、安装配置Kerberos客户端环境 1.1 安装Kerberos客户端 1.2 环境配置 二、基于Cloudera驱动创建连接 三、基于Hive原生驱动创建连接 一、安装配置Kerberos客户端环境 1.1 安装Kerberos客户端 在Kerberos官网下载,地址如下&#xff1a;https://web.mit.edu/kerberos…

SpringBoot+IDEA工具框架快捷键+注解备注

快捷键 ctrlr 搜索替换 ctrlshiftr 全局搜索和替换 altfninsert 自行补全函数和构造函数等 ctrlaltt 可以尝试添加东西 可以加try catch ctrlshiftt 生成接口对应的测试函数 ctrlh 可以查看当前类的一个继承和实现关系 大写CD回车 ide会自动生成cdata区的标签 x…