【机器学习(四)】分类和回归任务-梯度提升决策树(GBDT)-Sentosa_DSML社区版

news2024/11/15 19:26:02

文章目录

  • 一、算法概念
  • 一、算法原理
    • (一) GBDT 及负梯度拟合原理
    • (二) GBDT 回归和分类
      • 1、GBDT回归
      • 1、GBDT分类
        • 二元分类
        • 多元分类
    • (三)损失函数
      • 1、回归问题的损失函数
      • 2. 分类问题的损失函数:
  • 三、GBDT的优缺点
    • (一)优点
    • (二)缺点
  • 四、GBDT分类任务实现对比
    • (一)数据加载
      • 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社区版
  • 五、GBDT回归任务实现对比
    • (一)数据加载、样本分区和特征标准化
      • 1、Python代码
      • 2、Sentosa_DSML社区版
    • (二)模型训练
      • 1、Python代码
      • 2、Sentosa_DSML社区版
    • (三)模型评估
      • 1、Python代码
      • 2、Sentosa_DSML社区版
    • (四)模型可视化
      • 1、Python代码
      • 2、Sentosa_DSML社区版
  • 六、总结

一、算法概念

什么是梯度提升决策树?
  梯度提升决策树(Gradient Boosting Decison Tree)是集成学习中Boosting家族的一员。
在这里插入图片描述

  集成学习(ensemble learning)是一种通过组合多个基学习器(模型)来提高整体预测性能的方法。它通过集成多个学习器形成一个强学习器,从而提高模型的泛化能力和准确性。集成学习的核心思想是利用不同模型的组合弥补单一模型的缺点。集成学习可以分为两大类,一类是序列化方法:个体学习器之间存在强依赖关系,必须串行生成,例如boosting;一类是并行化方法:个体学习器之间不存在强依赖关系、可以同时生成,例如bagging(也称为bootstrap聚合)。
  Boosting类算法中最著名的代表是Adaboost算法,Adaboost的原理是,通过前一轮弱学习器的错误率来更新训练样本的权重,不断迭代提升模型性能。
  GBDT与传统的Adaboost算法有显著不同,GBDT同样通过迭代来提升模型的表现,但它采用的是前向分布算法(Forward Stagewise Algorithm),且其弱学习器被限定为CART回归树。此外,GBDT的迭代思想和Adaboost也有所区别。GBDT算法流程如下:
在这里插入图片描述

一、算法原理

(一) GBDT 及负梯度拟合原理

  GBDT(Gradient Boosting Decision Tree)是一种利用多个决策树来解决分类和回归问题的集成学习算法。核心思想是通过前一轮模型的残差来构建新的决策树。为了提高拟合效果,Friedman 提出了用损失函数的负梯度来近似残差,从而拟合一个新的CART回归树,负梯度的表示公式为:
r t , i = − [ ∂ L ( y i , f ( x i ) ) ∂ f ( x i ) ] f ( x ) = f t − 1 ( x ) r_{t,i} = -\left[\frac{\partial L(y_i, f(x_i))}{\partial f(x_i)}\right]_{f(x) = f_{t-1}(x)} rt,i=[f(xi)L(yi,f(xi))]f(x)=ft1(x)
  其中, r t , i r_{t,i} rt,i表示的是第𝑡轮中,第 𝑖个样本的损失函数的负梯度,𝐿是损失函数,𝑓(𝑥)是模型的预测值。
  在每一轮迭代中,我们首先用样本 ( x i , r t , i ) (x_i,r_{t,i}) (xi,rt,i)来拟合一棵 CART 回归树。这里 r t , i r_{t,i} rt,i表示的是第 𝑡 轮的负梯度,代表了样本的误差。回归树的每个叶节点会包含一定范围的输入数据,称为叶节点区域 R t , j R_{t,j} Rt,j,而叶节点的数量用 J表示。
  每个叶节点输出一个常数值 c t , j c_{t,j} ct,j,它通过最小化损失函数来获得。目标是找到一个 𝑐,使得该节点中的所有样本的损失函数最小化,公式如下所示:
c t , j = arg ⁡ min ⁡ c ∑ x i ∈ R t , j L ( y i , f t − 1 ( x i ) + c ) c_{t,j} = \arg\min_c \sum_{x_i \in R_{t,j}} L(y_i, f_{t-1}(x_i) + c) ct,j=argcminxiRt,jL(yi,ft1(xi)+c)
  接下来, h t ( x ) h_t(x) ht(x)表示为每个叶节点的输出值 c t , j c_{t,j} ct,j的加权和,我们就得到了本轮的决策树拟合函数如下:
h t ( x ) = ∑ j = 1 J c t , j I ( x ∈ R t , j ) h_t(x) = \sum_{j=1}^{J} c_{t,j} I(x \in R_{t,j}) ht(x)=j=1Jct,jI(xRt,j)
  其中, I ( x ∈ R t , j ) I(x \in R_{t,j}) I(xRt,j)是一个指示函数,表示样本 𝑥是否属于该叶节点区域 R t , j R_{t,j} Rt,j中。
  在每一轮中强学习器是基学习器的更新,通过将当前轮次的决策树的输出叠加到之前的模型上来逐步优化,本轮最终得到的强学习器的表达式如下:
f t ( x ) = f t − 1 ( x ) + ∑ j = 1 J c t , j I ( x ∈ R t , j ) f_t(x) = f_{t-1}(x) + \sum_{j=1}^{J} c_{t,j} I(x \in R_{t,j}) ft(x)=ft1(x)+j=1Jct,jI(xRt,j)
  无论是分类问题还是回归问题,这种方法都可以通过选择不同的损失函数(例如平方误差或对数损失)来表示模型误差。通过拟合负梯度,模型能够逐步修正误差,从而提高预测精度。

(二) GBDT 回归和分类

1、GBDT回归

  接下来, 可以总结梯度提升决策树(GBDT)的回归算法步骤

  输入训练集样本 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 x_i xi是特征, y i y_i yi是目标变量
  首先,初始化弱学习器在开始时,找到一个常数模型 f 0 ( x ) f_0(x) f0(x) ,通过最小化损失函数 𝐿来获得初始的预测值。这一步可以通过以下公式表示:

f 0 ( x ) = arg ⁡ min ⁡ ⏟ c ∑ i = 1 m L ( y i , c ) f_0(x)=\underbrace{\arg \min }_c \sum_{i=1}^m L\left(y_i, c\right) f0(x)=c argmini=1mL(yi,c)
  其中,最大迭代次数为 T ,损失函数为 L, 𝑐是一个常数,用来最小化训练集中所有样本的损失函数。
  然后,对迭代轮数 t = 1 , 2 , . . . , T … t=1,2, ...,T\ldots t=1,2,...,T ,执行以下步骤:
  第一步:对样本 i = 1 , 2 , … m \mathrm{i}=1,2, \ldots \mathrm{m} i=1,2,m ,计算负梯度,即损失函数关于当前模型预测值的导数,表达误差。具体公式如下:
r t i = − [ ∂ L ( y i , f ( x i ) ) ) ∂ f ( x i ) ] f ( x ) = f t − 1 ( x ) r_{t i}=-\left[\frac{\left.\partial L\left(y_i, f\left(x_i\right)\right)\right)}{\partial f\left(x_i\right)}\right]_{f(x)=f_{t-1}(x)} rti=[f(xi)L(yi,f(xi)))]f(x)=ft1(x)
表示第 𝑡 轮迭代时,第 𝑖个样本的负梯度。
  第二步:通过样本 x i , r t , i x_i,r_{t,i} xi,rt,i拟合一棵 CART 回归树,找到数据的模式并生成叶子节点。
  第三步: 对于回归树的每个叶子节点区域j = 1 , 2 , . =1,2, . =1,2,.. ,计算最佳拟合值,这个值是通过最小化损失函数 𝐿得到的:
c t j = arg ⁡ min ⁡ ⏟ c ∑ x i ∈ R t j L ( y i , f t − 1 ( x i ) + c ) c_{t j}=\underbrace{\arg \min }_c \sum_{x_i \in R_{t j}} L\left(y_i, f_{t-1}\left(x_i\right)+c\right) ctj=c argminxiRtjL(yi,ft1(xi)+c)
  第四步:更新强学习器,用当前的回归树不断更新强学习器。公式表达如下所示:
f t ( x ) = f t − 1 ( x ) + ∑ j = 1 J c t j I ( x ∈ R t , j ) f_t(x)=f_{t-1}(x)+\sum_{j=1}^J c_{t j} I\left(x \in R_{t ,j}\right) ft(x)=ft1(x)+j=1JctjI(xRt,j)
  其中, 当样本 𝑥位于区域 R t , j R_{t, j} Rt,j 时,输出值为 1,否则为 0。这样,新的强学习器通过叠加每一棵回归树的输出来逐步提高预测精度。
  最后,经过 𝑇轮迭代后,我们可以得到强学习树 f ( x ) f(x) f(x) ,表达式如下所示:
f ( x ) = f T ( x ) = f 0 ( x ) + ∑ t = 1 T ∑ j = 1 J c t , j I ( x ∈ R t , j ) f(x)=f_T(x)=f_0(x)+\sum_{t=1}^T \sum_{j=1}^J c_{t,j} I(x \in R_{t,j}) f(x)=fT(x)=f0(x)+t=1Tj=1Jct,jI(xRt,j)

1、GBDT分类

  GBDT 的分类算法在思想上与 GBDT 的回归算法类似,但由于分类问题的输出是离散的类别值,而不是连续值,不能像回归那样直接通过输出值来拟合误差。因此,在分类问题中,GBDT 需要采用特殊的处理方法来解决误差拟合的问题,一般有两种处理方式:
  1、使用指数损失函数:
  在这种情况下,GBDT 的分类算法会退化为 Adaboost 算法。这是因为指数损失函数和 Adaboost 使用的误差度量方式非常相似,因此 GBDT 在这种情境下的更新方式与 Adaboost 类似。
  2、使用对数似然损失函数:
  这是更常见的做法,尤其在现代的 GBDT 分类任务中。对数似然损失函数的核心思想是通过样本的预测概率和真实类别之间的差异来拟合损失,而不是直接拟合类别值。
对数似然损失函数的应用类似于逻辑回归中的方法,即使用模型的输出来表示每个类别的预测概率,并计算这种概率与真实类别的匹配度。

二元分类

  在二元分类中,目标是将数据点分类为两个类别之一。GBDT 会输出一个值 p(x),表示样本属于某一类别的概率。通过最小化负对数似然损失(即逻辑回归中的损失函数)来调整模型,从而提高分类准确性。
  对于二元分类,使用的损失函数为负对数似然损失:
L ( y , p ( x ) ) = − [ y log ⁡ ( p ( x ) ) + ( 1 − y ) log ⁡ ( 1 − p ( x ) ) ] L(y, p(x))=-[y \log (p(x))+(1-y) \log (1-p(x))] L(y,p(x))=[ylog(p(x))+(1y)log(1p(x))]
  其中 p(x) 是模型对样本属于类别 1 的预测概率,y 是样本的真实标签,取值为 0 或 1。
  对于多元分类(即分类类别大于 2 的情况),GBDT 使用类似于 softmax 的损失函数。softmax 函数将模型的输出映射为多个类别的概率分布,然后最小化负对数似然损失来进行优化。

多元分类

  多元分类中的损失函数为:

L ( y , p ( x ) ) = − ∑ k = 1 K y k log ⁡ ( p k ( x ) ) L(y, p(x))=-\sum_{k=1}^K y_k \log \left(p_k(x)\right) L(y,p(x))=k=1Kyklog(pk(x))
  其中,K 是类别总数, y K y_K yK表示样本在类别 k 中的标签值(为 0 或 1)。
  GBDT 的分类算法通过对数似然损失函数来拟合概率值,从而解决分类任务中的误差优化问题。与回归不同,分类中的输出不是直接拟合类别值,而是通过拟合预测概率来实现。这种方式既适用于二元分类,也适用于多元分类任务。

(三)损失函数

  在 GBDT(梯度提升决策树)中,损失函数的选择至关重要,因为它直接决定了模型的优化目标。不同的任务类型(回归、分类等)会使用不同的损失函数。以下是 GBDT 中常用的损失函数:

1、回归问题的损失函数

  平方损失函数 (Mean Squared Error, MSE):常用于回归问题,度量模型输出与真实值之间的差异。
  定义:
L ( y , y ^ ) = 1 2 ( y − y ^ ) 2 L(y, \hat{y})=\frac{1}{2}(y-\hat{y})^2 L(y,y^)=21(yy^)2
  绝对值损失函数 (Mean Absolute Error, MAE):也是常见的回归损失函数,使用绝对值误差来度量模型的预测性能。
  定义:
L ( y , y ^ ) = ∣ y − y ^ ∣ L(y, \hat{y})=|y-\hat{y}| L(y,y^)=yy^
  Huber 损失函数:Huber 损失结合了平方损失和绝对值损失的优点,对于离群点有较好的鲁棒性。
  定义:
L ( y , y ^ ) = { 1 2 ( y − y ^ ) 2  if  ∣ y − y ^ ∣ ≤ δ δ ⋅ ( ∣ y − y ^ ∣ − 1 2 δ )  if  ∣ y − y ^ ∣ > δ L(y, \hat{y})= \begin{cases}\frac{1}{2}(y-\hat{y})^2 & \text { if }|y-\hat{y}| \leq \delta \\ \delta \cdot\left(|y-\hat{y}|-\frac{1}{2} \delta\right) & \text { if }|y-\hat{y}|>\delta\end{cases} L(y,y^)={21(yy^)2δ(yy^21δ) if yy^δ if yy^>δ
  分位数损失函数 (Quantile Loss):适用于分位数回归,可以预测不同分位数的结果。
  定义:
L ( y , y ^ ) = { α ( y − y ^ )  if  y ≥ y ^ ( 1 − α ) ( y ^ − y )  if  y < y ^ L(y, \hat{y})= \begin{cases}\alpha(y-\hat{y}) & \text { if } y \geq \hat{y} \\ (1-\alpha)(\hat{y}-y) & \text { if } y<\hat{y}\end{cases} L(y,y^)={α(yy^)(1α)(y^y) if yy^ if y<y^

2. 分类问题的损失函数:

  对数似然损失函数 (Logarithmic Loss / Log Loss):主要用于二元分类问题(类似于逻辑回归),通过最小化预测概率与真实类别之间的差异来优化模型。
定义:
L ( y , p ( x ) ) = − [ y log ⁡ ( p ( x ) ) + ( 1 − y ) log ⁡ ( 1 − p ( x ) ) ] L(y, p(x))=-[y \log (p(x))+(1-y) \log (1-p(x))] L(y,p(x))=[ylog(p(x))+(1y)log(1p(x))]
  多分类对数损失函数 (Multinomial Log-Loss):用于多分类问题,类似于对数似然损失,但适用于多于两个类别的情况。
  定义:
L ( y , p ( x ) ) = − ∑ k = 1 K y k log ⁡ ( p k ( x ) ) L(y, p(x))=-\sum_{k=1}^K y_k \log \left(p_k(x)\right) L(y,p(x))=k=1Kyklog(pk(x))
  指数损失函数 (Exponential Loss):用于分类问题,尤其是 Adaboost 算法,GBDT 可以通过使用指数损失函数退化为 Adaboost。
定义:
L ( y , y ^ ) = exp ⁡ ( − y y ^ ) L(y, \hat{y})=\exp (-y \hat{y}) L(y,y^)=exp(yy^)

三、GBDT的优缺点

  GBDT(梯度提升决策树)算法虽然概念不复杂,但要真正掌握它,必须对集成学习的基本原理、决策树的工作机制以及不同损失函数有深入理解。目前,性能较为优异的 GBDT 库有 XGBoost,而 scikit-learn 也提供了 GBDT 的实现。

(一)优点

  • 处理多类型数据的灵活性:GBDT 可以同时处理连续值和离散值,适应多种场景。
  • 高准确率且相对少的调参:即使花费较少的时间在调参上,GBDT也能在预测准确率上有较好表现,尤其是相对于 SVM。
  • 对异常值的鲁棒性:通过使用健壮的损失函数,如 Huber损失函数和分位数损失函数,GBDT 对异常数据有很强的鲁棒性。

(二)缺点

  • 难以并行化训练:由于 GBDT 中的弱学习器(决策树)存在依赖关系,导致训练时难以并行化。不过,部分并行化可以通过使用自采样的 SGBT方法来实现。
  • 训练时间较长:由于迭代的特性和逐步拟合的过程,GBDT 的训练速度相比一些其他算法较慢。

四、GBDT分类任务实现对比

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

(一)数据加载

1、Python代码

from sklearn.datasets import load_iris

# 加载数据集
iris = load_iris()
X = iris.data  # 特征
y = iris.target  # 标签

2、Sentosa_DSML社区版

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

(二)样本分区

1、Python代码

from sklearn.model_selection import train_test_split

# 将数据集划分为训练集和测试集
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代码

from sklearn.ensemble import GradientBoostingClassifier

# 创建 Gradient Boosting 分类器
gbdt_classifier = GradientBoostingClassifier(n_estimators=100, learning_rate=0.1, max_depth=3, random_state=42)

# 训练 GBDT 模型
gbdt_classifier.fit(X_train, y_train)

# 进行预测
y_pred = gbdt_classifier.predict(X_test)

2、Sentosa_DSML社区版

  连接模型算子并选择模型参数
在这里插入图片描述
  执行得到模型的训练结果
在这里插入图片描述

(二)模型评估

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
import numpy as np

# 评估模型
accuracy = accuracy_score(y_test, y_pred)
precision = precision_score(y_test, y_pred, average='weighted')
recall = recall_score(y_test, y_pred, average='weighted')
f1 = f1_score(y_test, y_pred, average='weighted')

# 打印评估结果
print(f"GBDT 模型的准确率: {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, y_pred)
plt.figure(figsize=(8, 6))
sns.heatmap(cm, annot=True, fmt='d', cmap='Blues', xticklabels=iris.target_names, yticklabels=iris.target_names)
plt.xlabel('Predicted')
plt.ylabel('Actual')
plt.title('Confusion Matrix')
plt.show()

在这里插入图片描述

2、Sentosa_DSML社区版

  连接评估算子对模型进行评估
在这里插入图片描述

得到训练集和测试集的评估结果
在这里插入图片描述
在这里插入图片描述

  连接混淆矩阵算子计算模型混淆矩阵
在这里插入图片描述

  得到训练集和测试集的混淆矩阵结果
在这里插入图片描述
在这里插入图片描述

(二)模型可视化

1、Python代码


# 计算特征重要性并进行排序
importances = gbdt_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()

# 决策树的可视化
# 获取 GBDT 模型的其中一棵决策树
estimator = gbdt_classifier.estimators_[0, 0]  # 获取第一轮的第一棵树
plt.figure(figsize=(20, 10))
tree.plot_tree(estimator, feature_names=iris.feature_names, class_names=iris.target_names, filled=True, rounded=True)
plt.title('Decision Tree Visualization (First Tree in GBDT)')
plt.show()

在这里插入图片描述在这里插入图片描述

2、Sentosa_DSML社区版

  右键查看模型信息即可得到模型特征重要性,决策树可视化等结果:
在这里插入图片描述

  特征重要性、混淆矩阵、GBDT 模型的决策树划分和其中一棵决策树结果如下所示:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五、GBDT回归任务实现对比

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

1、Python代码

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.preprocessing import LabelEncoder
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.ensemble import GradientBoostingRegressor
from sklearn.metrics import r2_score, mean_absolute_error, mean_squared_error
from sklearn import tree

# 读取数据集
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社区版

  利用文本算子读入数据
在这里插入图片描述
连接样本分区算子,划分训练集和测试集
在这里插入图片描述
  连接类型算子将“quality”列设为标签列。
在这里插入图片描述
  连接标准化算子进行特征标准化
在这里插入图片描述

(二)模型训练

1、Python代码

# 训练梯度提升决策树回归器
gbdt_regressor = GradientBoostingRegressor(n_estimators=500, learning_rate=0.1, max_depth=10, random_state=42)
gbdt_regressor.fit(X_train, Y_train)

# 预测测试集上的标签
y_pred = gbdt_regressor.predict(X_test)

2、Sentosa_DSML社区版

  在标准化结束后,选择梯度决策树回归算子,进行参数配置后,点击执行。
在这里插入图片描述
  完后执行之后,我们可以得到梯度提升决策树模型。

在这里插入图片描述

(三)模型评估

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 = gbdt_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_DSML社区版。以轻量化一键安装、平台免费使用、视频教学和社区论坛服务为主要特点,能够与其他数据科学家和机器学习爱好者交流心得,分享经验和解决问题。文章最后附上官网链接,感兴趣工具的可以直接下载使用

https://sentosa.znv.com/
在这里插入图片描述

Sentosa_DSML算子流开发视频

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

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

相关文章

ThreeJS入门(002):学习思维路径

查看本专栏目录 - 本文是第 002篇入门文章 文章目录 如何使用这个思维导图 Three.js 学习思维导图可以帮助你系统地了解 Three.js 的各个组成部分及其关系。下面是一个简化的 Three.js 学习路径思维导图概述&#xff0c;它包含了学习 Three.js 的主要概念和组件。你可以根据这个…

CSP-J 之计算机基本结构

文章目录 前言计算机的宏观结构计算机的微观结构硬件部分软件部分 计算机硬件系统介绍主存储器与辅助存储器1. 主存储器&#xff08;Main Memory&#xff09;2. 辅助存储器&#xff08;Secondary Storage&#xff09;Cache&#xff08;缓存&#xff09;总线&#xff08;Bus&…

Java 行为型设计模式一口气讲完!*^____^*

Java 责任链模式 Java设计模式 -责任链模式 责任链模式为请求创建一个接收者对象列表。 这种模式是行为模式。 当使用责任链模式时&#xff0c;通常每个接收器包含对另一个接收器的引用。 如果一个对象不能处理请求&#xff0c;则它将相同的对象传递给下一个接收者&#xf…

vue的路由

v2用3版本&#xff0c;v3用4版本 import Vue from vue import VueRouter from vue-router Vue.use(VueRouter) const routes [] const router new VueRouter({ routes }) export default router import Vue from vue import App from ./App.vue import router from /router V…

【漏洞复现】科荣AIO moffice Sql注入漏洞

免责声明&#xff1a; 本文内容旨在提供有关特定漏洞或安全漏洞的信息&#xff0c;以帮助用户更好地了解可能存在的风险。公布此类信息的目的在于促进网络安全意识和技术进步&#xff0c;并非出于任何恶意目的。阅读者应该明白&#xff0c;在利用本文提到的漏洞信息或进行相关测…

应用案例分享 | 智驾路试数据分析及 SiL/HiL 回灌案例介绍

概述 为有效利用海量的路试数据并发挥其价值&#xff0c;经纬恒润推出了OrienLink路试数据分析及开环/闭环回灌测试系统。该系统采用统一的数据存储标准平台&#xff0c;基于云计算技术提供的大规模存储、高带宽和高算力&#xff0c;能够对路试数据进行深入的场景挖掘。通过软件…

AI小项目4-用Pytorch从头实现Transformer(详细注解)

目录 一、前期准备工作学习如何读AI论文读Transformer原始论文用Pytorch从头实现Transformer 二、我的完整代码实现1.导入库2.基本组件创建词嵌入位置嵌入自注意力 3.编码器4.解码器5.完整架构6.简单测试一下代码创建模型和准备简单的训练数据训练一次&#xff08;前向传播&…

用Python实现时间序列模型实战——Day 20: 时间序列预测的综合练习

一、学习内容 在本节中&#xff0c;我们将综合应用前几周学习的时间序列分析与预测方法&#xff0c;完成一个完整的时间序列预测项目&#xff0c;包含从数据预处理、异常检测、模型选择、预测到评估的全流程。项目流程&#xff1a; 1. 数据获取与预处理 数据加载&#xff0c…

023.PL-SQL进阶—视图

课 程 推 荐我 的 个 人 主 页&#xff1a;&#x1f449;&#x1f449; 失心疯的个人主页 &#x1f448;&#x1f448;入 门 教 程 推 荐 &#xff1a;&#x1f449;&#x1f449; Python零基础入门教程合集 &#x1f448;&#x1f448;虚 拟 环 境 搭 建 &#xff1a;&#x1…

跨越日语障碍2024轻松实现日语阅读的好帮手

不知道你喜欢看日本小说吗&#xff0c;之前的东野奎吾还有不少日本作家的书籍&#xff0c;如果想看一手的书籍那就只能看日语版本的啦。但是因为语言的问题日语不是很好的小伙伴阅读起来就有一定的难度。今天我就介绍几个日语翻译工具来解决这个问题咯。 1.福昕在线翻译 链接…

简单了解 JVM

目录 ♫什么是JVM ♫JVM的运行流程 ♫JVM运行时数据区 ♪虚拟机栈 ♪本地方法栈 ♪堆 ♪程序计数器 ♪方法区/元数据区 ♫类加载的过程 ♫双亲委派模型 ♫垃圾回收机制 ♫什么是JVM JVM 是 Java Virtual Machine 的简称&#xff0c;意为 Java虚拟机。 虚拟机是指通过软件模…

网络安全培训班有用吗

在当今数字化时代&#xff0c;网络安全问题日益凸显&#xff0c;成为了全球关注的焦点。随着网络攻击的不断升级和复杂化&#xff0c;越来越多的人开始关注网络安全&#xff0c;并考虑参加网络安全培训班来提升自己的技能。那么&#xff0c;网络安全培训班到底有用吗? 一、网络…

如何彻底清除电脑上的数据?保护你的隐私安全

随着科技的飞速发展&#xff0c;电脑已经成为我们日常生活和工作中不可或缺的工具。然而&#xff0c;当我们需要更换电脑、出售旧电脑或处理废旧电脑时&#xff0c;如何彻底清除电脑上的数据成为了一个重要的问题。本文将详细介绍几种彻底清除电脑数据的方法&#xff0c;以确保…

无人机应用新纪元:图形工作站配置推荐与硬件解析

低空经济作为国家新兴的战略性产业&#xff0c;正逐步成为经济高质量发展的新动力。据统计&#xff0c;2023年中国低空经济规模达到5059.5亿元&#xff0c;增速为33.8%&#xff0c;预计到2026年有望突破万亿元大关。政府对低空经济的发展高度重视&#xff0c;不仅出台了相关法规…

IPv6路由基础

RIPng RIPng是一种较为简单的内部网关协议&#xff0c;是RIP在IPv6网络中的应用。RIPng主要用于规模较小的网络中&#xff0c;比如校园网以及结构较简单的地区性网络。由于RIPng的实现较为简单&#xff0c;在配置和维护管理方面也远比OSPFv3和IS-IS for IPv6容易&#xff0c;因…

腾讯地图SDK Android版开发 11 覆盖物示例 4 线

腾讯地图SDK Android版开发 11 覆盖物示例 4 线 前言线的属性介绍ColorType 和 LineTypeColorTypeLineType 与颜色有关的属性填充色和线宽描边颜色和描边的宽度分段颜色渐变色擦除颜色 与纹理相关属性内置纹理自定义颜色纹理线上叠加纹理 虚线 界面布局MapPolyline类常量成员变…

【系统架构设计】基于中间件的开发

【系统架构设计】基于中间件的开发 中间件技术J2EE.NET企业应用集成中间件技术 中间件属于可复用软件的范畴,处于操作系统、网络和数据库之上,应用软件的下层。 J2EE J2EE 是针对 Web Service、业务对象、数据访问和消息报传送的一组规范。这组应用编程接口确定了 Web 应用…

民间故事推广系统小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;民族文化管理&#xff0c;节日类型管理&#xff0c;传统节日管理&#xff0c;故事类型管理&#xff0c;民间故事管理&#xff0c;系统管理 微信端账号功能包括&#xff1a;系统首…

基于SpringBoot+Vue+MySQL的IT技术交流和分享平台

系统展示 用户前台界面 管理员后台界面 系统背景 在数字化转型的浪潮中&#xff0c;构建一个基于SpringBoot、Vue.js与MySQL的IT技术交流与分享平台显得尤为重要。该平台旨在汇聚广大IT从业者、开发者及爱好者&#xff0c;提供一个高效、便捷的线上空间&#xff0c;用于分享最新…

7.类的大小

对于C的类而言&#xff0c;类的大小似乎并非完全由用户控制&#xff0c;我们看看如下的代码。 class X {}; class Y : public virtual X{}; class Z : public virtual X{}; class A : public Y, public Z{}; 上述的X,Y,Z,A中没有任何一个class内含有明显的数据&#xff0c;其…