爆款云主机2核4G限时秒杀,88元/年起!
查看详情

活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 618智算钜惠季 爆款云主机2核4G限时秒杀,88元/年起!
  • 免费体验DeepSeek,上天翼云息壤 NEW 新老用户均可免费体验2500万Tokens,限时两周
  • 云上钜惠 HOT 爆款云主机全场特惠,更有万元锦鲤券等你来领!
  • 算力套餐 HOT 让算力触手可及
  • 天翼云脑AOne NEW 连接、保护、办公,All-in-One!
  • 中小企业应用上云专场 产品组合下单即享折上9折起,助力企业快速上云
  • 息壤高校钜惠活动 NEW 天翼云息壤杯高校AI大赛,数款产品享受线上订购超值特惠
  • 天翼云电脑专场 HOT 移动办公新选择,爆款4核8G畅享1年3.5折起,快来抢购!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

智算服务

打造统一的产品能力,实现算网调度、训练推理、技术架构、资源管理一体化智算服务
智算云(DeepSeek专区)
科研助手
  • 算力商城
  • 应用商城
  • 开发机
  • 并行计算
算力互联调度平台
  • 应用市场
  • 算力市场
  • 算力调度推荐
一站式智算服务平台
  • 模型广场
  • 体验中心
  • 服务接入
智算一体机
  • 智算一体机
大模型
  • DeepSeek-R1-昇腾版(671B)
  • DeepSeek-R1-英伟达版(671B)
  • DeepSeek-V3-昇腾版(671B)
  • DeepSeek-R1-Distill-Llama-70B
  • DeepSeek-R1-Distill-Qwen-32B
  • Qwen2-72B-Instruct
  • StableDiffusion-V2.1
  • TeleChat-12B

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场创新解决方案
办公协同
  • WPS云文档
  • 安全邮箱
  • EMM手机管家
  • 智能商业平台
财务管理
  • 工资条
  • 税务风控云
企业应用
  • 翼信息化运维服务
  • 翼视频云归档解决方案
工业能源
  • 智慧工厂_生产流程管理解决方案
  • 智慧工地
建站工具
  • SSL证书
  • 新域名服务
网络工具
  • 翼云加速
灾备迁移
  • 云管家2.0
  • 翼备份
资源管理
  • 全栈混合云敏捷版(软件)
  • 全栈混合云敏捷版(一体机)
行业应用
  • 翼电子教室
  • 翼智慧显示一体化解决方案

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云云市场合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
  • 天翼云EasyCoding平台
天翼云培训认证
  • 天翼云学堂
  • 天翼云市场商学院
天翼云合作计划
  • 云汇计划
天翼云东升计划
  • 适配中心
  • 东升计划
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
开放能力
  • EasyCoding敏捷开发平台
培训与认证
  • 天翼云学堂
  • 天翼云认证
魔乐社区
  • 魔乐社区

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 建议与反馈
  • 用户体验官
  • 服务保障
  • 客户公告
  • 会员中心
增值服务
  • 红心服务
  • 首保服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 智算服务
  • 产品
  • 解决方案
  • 应用商城
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心

      【机器学习】任务四:使用贝叶斯算法识别葡萄酒类别和使用三种不同的决策树方法(ID3,C4.5,CART)对鸢尾花数据进行分类

      首页 知识中心 大数据 文章详情页

      【机器学习】任务四:使用贝叶斯算法识别葡萄酒类别和使用三种不同的决策树方法(ID3,C4.5,CART)对鸢尾花数据进行分类

      2024-12-03 08:55:57 阅读次数:23

      决策树,数据,模型

      1.基础知识

      1.1 高斯贝叶斯(Gaussian Naive Bayes)

      基本思想:
      高斯贝叶斯是一种基于贝叶斯定理的分类方法,旨在计算每个类别的后验概率。贝叶斯定理结合了先验概率和似然概率,以推断出数据样本属于某一类别的概率。在高斯贝叶斯分类器中,假设所有特征之间是独立的,并且每个特征的条件概率服从高斯分布(正态分布)。

      工作流程:

      1. 先验概率:计算每个类别的先验概率。
      2. 似然估计:基于训练数据,假设每个特征服从正态分布,计算出特征在各类别下的似然概率。
      3. 后验概率计算:通过贝叶斯定理,结合先验概率和似然概率,计算出后验概率。
      4. 分类决策:将样本分类到具有最高后验概率的类别。

      优点:

      • 计算效率高,适用于高维数据。
      • 对于小样本数据集非常有效。

      缺点:

      • 假设特征之间相互独立,这在实际应用中可能不成立。

      1.2 决策树(Decision Tree)

      基本思想:
      决策树是一种监督学习方法,通过构建一个树状模型,根据特征的值递归地将数据样本分类。树的每个内部节点表示一个特征的测试,每个分支代表该测试的结果,每个叶节点则代表一个类别的决策。

      工作流程:

      1. 划分数据:使用如信息增益或基尼系数等指标,选择最能区分类别的特征作为划分依据,建立决策树的节点。
      2. 递归构建:对每个子集继续进行相同的划分过程,直到达到终止条件(如所有样本同属一个类别或树的深度达到预设值)。
      3. 剪枝:为了避免过拟合,可能需要对决策树进行剪枝,即去掉不必要的叶子节点或分支。

      优点:

      • 简单易于解释。
      • 既适用于分类问题,也适用于回归问题。
      • 不需要特征标准化。

      缺点:

      • 容易过拟合,尤其是深度较大的决策树。
      • 对于少数类样本的预测效果可能较差。

      1.3 模型评价(Model Evaluation)

      模型评价是对机器学习模型的性能、有效性和适用性进行评估的过程。评价包括多个维度,如模型的准确性、泛化能力、可解释性和计算效率。评价方法则有交叉验证法、留出验证法、自助法等。

      1.3.1 评价维度:

      1. 准确性(Accuracy):

        • 衡量模型预测的整体准确性,即模型正确分类的样本数与总样本数的比值。适用于类分布平衡的数据集。
      2. 精确率(Precision):

        • 衡量模型在预测为正样本时的准确性,即真正为正样本的比例。在类分布不平衡的情况下,精确率是重要指标。
      3. 召回率(Recall):

        • 衡量模型对正样本的识别能力,即真正为正样本的比例。高召回率意味着模型对正样本的捕捉能力强。
      4. F1-Score:

        • 精确率和召回率的调和平均值,作为模型在不平衡数据集上的综合评价指标。适用于处理正负样本不平衡的数据。
      5. 泛化能力(Generalization Ability):

        • 模型在未见过的数据上的表现能力,可以通过交叉验证或留出验证来衡量。ROC曲线和AUC值也是常用的泛化能力评估工具。
      6. 可解释性(Interpretability):

        • 对于某些应用,理解模型决策过程尤为重要。传统方法如决策树和线性回归具有较好的可解释性,而复杂的深度学习模型则较难解释。
      7. 计算效率(Computational Efficiency):

        • 包括模型的训练时间和预测时间,特别是在大规模数据或实时应用中至关重要。

      1.3.2 评价方法:

      1. 交叉验证法(Cross-Validation):

        • 将数据集分为K个不相交的子集,轮流使用其中K-1个子集进行训练,剩下的子集进行验证。这样可以更全面地评估模型的性能,减小偶然误差。
      2. 留出验证法(Hold-Out Validation):

        • 将数据集随机划分为训练集和测试集,训练模型后使用测试集进行评估。这种方法简单直接,可以反映模型在未知数据上的真实表现。
      3. 自助法(Bootstrap Method):

        • 使用有放回抽样从原始数据集中生成多个样本,特别适合小数据集的情况。这种方法能够充分利用有限数据资源。
      4. 混淆矩阵(Confusion Matrix):

        • 通过矩阵形式展示模型的预测结果,包括真正例、假正例、假负例和真负例,从而对模型的分类性能进行详细评估。

      2.使用贝叶斯算法识别葡萄酒类别

      葡萄酒识别数据集( Wine Recognition dataset )通常用于多类别分类问题建 2 / 12 3 / 12模。数据集包括从三个不同的品种(类别)的葡萄酒中测得的 13 种不同的化学特征,共 178 个样本。这些化学特征包括酸度、灰分、酒精浓度等。该数据集是由 UCI 机器学习库提供,并且已经被广泛用于分类和聚类任务,作为基准测试 数据集之一,数据集地址: Wine - UCI Machine Learning Repository 。数据集的说明如表 1。
      【机器学习】任务四:使用贝叶斯算法识别葡萄酒类别和使用三种不同的决策树方法(ID3,C4.5,CART)对鸢尾花数据进行分类
      表 1 中数据集中的类别(目标变量)代表三种不同品种的葡萄酒,在实际应用中,这些类别可能会被赋予更具描述性的名称,如琴酒、雪莉和贝尔莫得等。
       

      1.1 导入所需模块

      import matplotlib.pyplot as plt
      from sklearn.naive_bayes import GaussianNB
      from sklearn.tree import DecisionTreeClassifier
      from sklearn.model_selection import train_test_split, cross_val_score
      from sklearn.metrics import accuracy_score, confusion_matrix, classification_report, ConfusionMatrixDisplay
      from sklearn.metrics import roc_curve, auc
      from sklearn.datasets import load_wine
      import pandas as pd
      

      详细解释:

      • matplotlib.pyplot:这是Python中的一个绘图库,用于生成各种图表,帮助我们可视化数据和结果,例如散点图、ROC曲线、混淆矩阵等。
      • GaussianNB:这是一个朴素贝叶斯分类器的实现,适用于连续值特征数据,特别是高斯分布的数据。我们将用它来训练模型。
      • DecisionTreeClassifier:这是决策树分类器的实现,用于对比朴素贝叶斯模型的效果。
      • train_test_split:用于将数据集划分为训练集和测试集。
      • cross_val_score:用于交叉验证模型的性能。
      • accuracy_score, confusion_matrix, classification_report:这些都是评价分类器性能的指标,包括准确率、混淆矩阵和分类报告。
      • roc_curve, auc:用于绘制ROC曲线和计算AUC(曲线下的面积),这是用来评价分类器效果的标准。
      • load_wine:从 sklearn.datasets 中加载葡萄酒数据集,它包含不同种类的葡萄酒及其特征。
      • pandas:用于数据处理,特别是处理交叉验证结果时方便整理为表格形式。

      1.2 加载数据并进行训练集和测试集的划分

      # 导入数据,分别为输入特征和标签
      wine = load_wine()
      X = wine.data
      Y = wine.target
      
      # 划分训练集和测试集
      X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=0.2, random_state=42)
      
      # 输出结果
      print("训练集特征形状:", X_train.shape)
      print("测试集特征形状:", X_test.shape)
      print("训练集标签形状:", y_train.shape)
      print("测试集标签形状:", y_test.shape)
      

       

      详细解释:

      1. 使用 load_wine() 函数从 sklearn.datasets 中加载葡萄酒数据集。该数据集包含13个特征,如酒精含量、灰分含量等,以及3个不同类别的葡萄酒。
      2. X = wine.data 表示将数据集的特征值存储在变量 X 中,Y = wine.target 表示将对应的类别标签存储在变量 Y 中。
      3. train_test_split() 用于将数据集划分为训练集和测试集。test_size=0.2 表示将20%的数据作为测试集,80%作为训练集。random_state=42 确保划分结果是固定的,这样每次运行代码都会得到相同的划分结果。
      4. print() 语句用于显示训练集和测试集的特征和标签的形状,以确保数据集已正确划分。

      1.3 可视化训练集样本数据分布

      # 可视化训练集样本数据分布
      feature_names = wine.feature_names
      target_names = wine.target_names
      plt.figure(figsize=(10, 6))
      scatter = plt.scatter(X_train[:, 0], X_train[:, 1], c=y_train, cmap='viridis', edgecolor='k', s=100)
      plt.xlabel(feature_names[0])
      plt.ylabel(feature_names[1])
      plt.title('Training Samples Scatter Plot')
      handles = [plt.Line2D([0], [0], marker='o', color='w', markerfacecolor=scatter.cmap(scatter.norm(i)), markersize=10) for i in range(len(target_names))]
      plt.legend(handles, target_names, title="Classes")
      plt.grid()
      plt.show()
      

       

      详细解释:

      1. plt.scatter():这是用于绘制散点图的函数。X_train[:, 0] 和 X_train[:, 1] 分别表示使用葡萄酒数据集的前两个特征(例如酒精含量和苹果酸含量)作为横坐标和纵坐标。c=y_train 表示点的颜色根据葡萄酒的类别来区分。cmap='viridis' 是颜色图,edgecolor='k' 给点添加黑色边框,s=100 调整点的大小。
      2. plt.xlabel() 和 plt.ylabel():用于设置横轴和纵轴的标签,分别对应葡萄酒数据集的前两个特征。
      3. plt.legend():生成图例,标记不同类别的葡萄酒。
      4. 最后,使用 plt.show() 显示图形,帮助我们直观地查看训练集样本的分布情况。

      1.4 定义并训练贝叶斯模型

      # 定义和训练贝叶斯模型
      nb_model = GaussianNB()
      nb_model.fit(X_train, y_train)
      
      # 在测试集上进行预测
      nb_y_pred = nb_model.predict(X_test)
      
      # 获取预测概率
      nb_y_pred_proba = nb_model.predict_proba(X_test)
      

      详细解释:

      1. GaussianNB():我们定义了一个高斯朴素贝叶斯模型,适用于数值特征呈现高斯分布的数据。
      2. fit():这是模型训练的步骤。使用 X_train 作为输入特征,y_train 作为标签来训练贝叶斯分类器。
      3. predict():训练完成后,我们使用测试集 X_test 进行预测,预测结果存储在 nb_y_pred 中。
      4. predict_proba():输出每个样本属于每个类别的概率。这将用于绘制ROC曲线。

      1.5 评估贝叶斯模型

      # 评估模型
      accuracy = accuracy_score(y_test, nb_y_pred)
      conf_matrix = confusion_matrix(y_test, nb_y_pred)
      class_report = classification_report(y_test, nb_y_pred, target_names=target_names)
      
      # 打印评价指标
      print(f"Accuracy: {accuracy:.2f}")
      print("Confusion Matrix:\n", conf_matrix)
      print("Classification Report:\n", class_report)
      

       

      详细解释:

      1. accuracy_score():用于计算模型的准确率,结果存储在 accuracy 变量中。准确率表示模型预测正确的比例。
      2. confusion_matrix():生成混淆矩阵,表示模型在每个类别上的预测结果,能够显示真实类别与预测类别的匹配情况。
      3. classification_report():生成详细的分类报告,包括每个类别的精确率(precision)、召回率(recall)、F1值等。
      4. 打印结果以检查模型的表现,print(f"Accuracy: {accuracy:.2f}") 打印出模型的准确率,混淆矩阵和分类报告也一并输出。

      1.6 绘制贝叶斯模型的混淆矩阵

      # 绘制混淆矩阵
      ConfusionMatrixDisplay(confusion_matrix=conf_matrix, display_labels=target_names).plot(cmap='Blues')
      plt.title('Confusion Matrix')
      plt.show()
      

       

      详细解释:

      1. ConfusionMatrixDisplay():用于可视化混淆矩阵。传入 conf_matrix 和 target_names,使用 cmap='Blues' 为矩阵着色,蓝色的颜色深浅反映了预测结果的准确性。
      2. 最后,使用 plt.show() 显示混淆矩阵图,这可以帮助我们更直观地理解模型在哪些类别上表现良好,在哪些类别上预测错误。

      1.7 绘制AUC-ROC曲线

      # 绘制AUC-ROC曲线
      plt.figure(figsize=(10, 6))
      fpr = dict()
      tpr = dict()
      roc_auc = dict()
      n_classes = len(target_names)
      for i in range(n_classes):
          fpr[i], tpr[i], _ = roc_curve(y_test, nb_y_pred_proba[:, i], pos_label=i)
          roc_auc[i] = auc(fpr[i], tpr[i])
      
      # 绘制每个类别的 ROC 曲线
      for i in range(n_classes):
          plt.plot(fpr[i], tpr[i], label=f'ROC curve of class {target_names[i]} (area = {roc_auc[i]:.2f})')
      
      # 绘制随机猜测基线
      plt.plot([0, 1], [0, 1], 'k--', label='Random')
      plt.xlabel('False Positive Rate')
      plt.ylabel('True Positive Rate')
      plt.title('Receiver Operating Characteristic (ROC) Curve')
      plt.legend(loc='lower right')
      plt.grid()
      plt.show()
      

       

      详细解释:

      1. roc_curve():计算ROC曲线的假阳性率(False Positive Rate, FPR)和真正率(True Positive Rate, TPR),nb_y_pred_proba[:, i] 表示贝叶斯模型对第i类的预测概率。
      2. auc():计算AUC(曲线下的面积),AUC值越大,模型性能越好。
      3. 循环绘制每个类别的ROC曲线,并标注每条曲线的AUC值。绘制随机猜测的基线(对角线),用于对比模型性能。
      4. 使用 plt.show() 显示ROC曲线,帮助我们评估模型在不同类别上的分类效果。

      1.8 定义并训练决策树模型

      # 定义并训练决策树模型
      dt_model = DecisionTreeClassifier(random_state=42)
      dt_model.fit(X_train, y_train)
      
      # 使用决策树进行预测
      dt_pred = dt_model.predict(X_test)
      
      # 输出模型分类结果的评价指标
      dt_accuracy = accuracy_score(y_test, dt_pred)
      dt_conf_matrix = confusion_matrix(y_test, dt_pred)
      print(f"Decision Tree Accuracy: {dt_accuracy:.2f}")
      print("Decision Tree Classification Report:\n", classification_report(y_test, dt_pred, target_names=target_names))
      

       

      详细解释:

      1. DecisionTreeClassifier():定义决策树模型。random_state=42 确保决策树的生成是固定的。
      2. 使用训练集 X_train 和 y_train 训练决策树模型,fit() 完成模型训练。
      3. 使用 predict() 对测试集进行预测,将预测结果存储在 dt_pred 中。
      4. 计算决策树的准确率,输出混淆矩阵和分类报告,与贝叶斯模型进行对比。

      1.9 绘制决策树的混淆矩阵

      # 绘制决策树的混淆矩阵
      plt.figure(figsize=(12, 6))
      ConfusionMatrixDisplay(confusion_matrix=dt_conf_matrix, display_labels=target_names).plot(cmap='Blues', ax=plt.gca())
      plt.title('Decision Tree Confusion Matrix')
      plt.tight_layout()
      plt.show()
      

       

      详细解释:

      1. 同样使用 ConfusionMatrixDisplay() 来绘制决策树的混淆矩阵,查看其分类效果。
      2. tight_layout() 调整布局,以防图形显示时出现重叠。
      3. 最后使用 plt.show() 显示决策树的混淆矩阵。

      1.10 比较贝叶斯和决策树的ROC曲线

      # 比对贝叶斯分类和决策树分类的ROC曲线
      dt_y_pred_proba = dt_model.predict_proba(X_test)
      fpr_nb, tpr_nb, _ = roc_curve(y_test, nb_y_pred_proba[:, 1], pos_label=1)
      fpr_dt, tpr_dt, _ = roc_curve(y_test, dt_y_pred_proba[:, 1], pos_label=1)
      roc_auc_nb = auc(fpr_nb, tpr_nb)
      roc_auc_dt = auc(fpr_dt, tpr_dt)
      
      # 绘制AUC-ROC曲线
      plt.figure(figsize=(10, 6))
      plt.plot(fpr_nb, tpr_nb, label=f'Naive Bayes (area = {roc_auc_nb:.2f})')
      plt.plot(fpr_dt, tpr_dt, label=f'Decision Tree (area = {roc_auc_dt:.2f})')
      plt.plot([0, 1], [0, 1], 'k--', label='Random')
      plt.xlabel('False Positive Rate')
      plt.ylabel('True Positive Rate')
      plt.title('Receiver Operating Characteristic (ROC) Curve')
      plt.legend(loc='lower right')
      plt.grid()
      plt.show()
      

       

      详细解释:

      1. predict_proba():获取决策树模型的预测概率。
      2. 使用 roc_curve() 和 auc() 分别为贝叶斯和决策树模型绘制ROC曲线和计算AUC值。
      3. 将两条ROC曲线绘制在一张图上,通过AUC值对比两个模型的分类效果。

      1.11 使用交叉验证评估模型精度

      # 使用交叉验证评估模型精度
      models = {
          'Naive Bayes': nb_model,
          'Decision Tree': dt_model
      }
      results = []
      for model_name, model in models.items():
          scores = cross_val_score(model, X_test, y_test, cv=5)
          results.append(scores)
      
      # 将结果转换为 DataFrame 以便于绘图
      results_df = pd.DataFrame(results, index=models.keys()).T
      
      # 绘制箱线图
      plt.figure(figsize=(10, 6))
      plt.boxplot(results_df.values)
      plt.xticks([1, 2], models.keys())
      plt.title('Model Accuracy Comparison')
      plt.xlabel('Model')
      plt.ylabel('Accuracy')
      plt.xticks(rotation=45)
      plt.grid()
      plt.show()
      

       

      详细解释:

      1. cross_val_score():使用交叉验证对贝叶斯和决策树模型进行评估,cv=5 表示5折交叉验证。
      2. 将交叉验证的结果存储在 results 中,并将其转换为 DataFrame 以便于绘图。
      3. 使用 boxplot() 绘制箱线图,比较不同模型的精度分布,直观展示模型的表现。

       

      3.使用三种不同的决策树方法(ID3,C4.5,CART)对鸢尾花数据进行分类

       

      导入 scikit-learn 库中的鸢尾花数据集,使用三种不同的决策树方法( ID3 ,C4.5, CART )对鸢尾花数据进行分类。鸢尾花数据集各列说明如表 2 所示。
       
      【机器学习】任务四:使用贝叶斯算法识别葡萄酒类别和使用三种不同的决策树方法(ID3,C4.5,CART)对鸢尾花数据进行分类

      1.1 导入所需的库

      import numpy as np
      import pandas as pd
      from sklearn import datasets
      from sklearn.model_selection import train_test_split
      from sklearn.tree import DecisionTreeClassifier
      from sklearn.metrics import classification_report, confusion_matrix
      import matplotlib.pyplot as plt
      import seaborn as sns
      import matplotlib.pyplot as plt
      from matplotlib import rcParams
      

      详细解释:

      1. numpy 和 pandas:分别用于数值计算和数据处理。
      2. datasets:sklearn 提供的经典数据集库,这里我们将用 load_iris() 加载鸢尾花数据集。
      3. train_test_split:用于将数据集划分为训练集和测试集。
      4. DecisionTreeClassifier:用于构建决策树分类模型。
      5. classification_report, confusion_matrix:用于评估模型,包括分类报告和混淆矩阵。
      6. matplotlib 和 seaborn:用于绘制图表和可视化数据关系。
      7. rcParams:设置绘图参数,如支持中文显示和负号的显示。

      1.2 加载鸢尾花数据集

      # 加载鸢尾花数据集
      iris = datasets.load_iris()
      
      # 创建DataFrame用于数据探索
      df_iris = pd.DataFrame(data=iris.data, columns=iris.feature_names)
      df_iris['target'] = iris.target
      

       

      详细解释:

      1. load_iris():从 sklearn.datasets 加载鸢尾花数据集,包含150个样本,3个类别(Setosa、Versicolour、Virginica),每个样本有4个特征(萼片长度、萼片宽度、花瓣长度、花瓣宽度)。
      2. 将数据集转为 pandas 的 DataFrame 格式,更便于数据的处理和分析,数据包括4个特征和1个类别标签。

      1.3 数据初步探索和可视化

      # 查看数据基本信息
      df_()
      df_iris.describe()
      
      # 可视化数据之间的关系
      sns.pairplot(df_iris, hue='target')
      plt.show()
      

       

      详细解释:

      1. info():查看数据集的基本信息,如数据量、数据类型等。
      2. describe():显示数据集中各个特征的统计信息,如平均值、最小值、最大值等。
      3. sns.pairplot():绘制特征之间的成对关系图,用不同颜色表示三种鸢尾花类别(target),帮助我们初步了解特征间的关系。

      1.4 将数据集划分为训练集和测试集

      # 将数据集分为训练集和测试集,按8:2的比例
      X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2, random_state=42)
      

       

      详细解释:

      1. 使用 train_test_split() 将数据集划分为训练集和测试集,80%的数据用于训练,20%的数据用于测试。random_state=42 保证结果的可复现性。

      1.5 训练三个不同的决策树模型(ID3, C4.5, CART)

      # 分类器1:ID3 (使用 entropy 作为划分标准)
      clf_id3 = DecisionTreeClassifier(criterion='entropy', random_state=42)
      clf_id3.fit(X_train, y_train)
      
      # 分类器2:CART (使用 gini 作为划分标准)
      clf_cart = DecisionTreeClassifier(criterion='gini', random_state=42)
      clf_cart.fit(X_train, y_train)
      
      # 分类器3:C4.5 使用的方式在 sklearn 中可以近似为使用 entropy + 限制 max_depth
      clf_c45 = DecisionTreeClassifier(criterion='entropy', max_depth=4, random_state=42)
      clf_c45.fit(X_train, y_train)
      

       

      详细解释:

      1. DecisionTreeClassifier(criterion='entropy'):使用信息增益(entropy)作为划分标准,这实现了 ID3 算法。
      2. DecisionTreeClassifier(criterion='gini'):使用基尼系数(gini)作为划分标准,实现 CART 算法。
      3. DecisionTreeClassifier(criterion='entropy', max_depth=4):通过限制树的深度来模拟 C4.5 算法,它使用信息增益比作为划分标准,并限制了树的复杂度(通过 max_depth)。

      1.6 使用测试集进行预测

      # 使用测试集进行预测
      y_pred_id3 = clf_id3.predict(X_test)
      y_pred_cart = clf_cart.predict(X_test)
      y_pred_c45 = clf_c45.predict(X_test)
      

       

      详细解释:

      1. predict():分别使用训练好的三个模型(ID3、CART、C4.5)对测试集数据进行预测,得到各自的预测结果 y_pred_id3,y_pred_cart 和 y_pred_c45。

      1.7 评估分类器性能(混淆矩阵和分类报告)

      # ID3分类器性能评估
      print("ID3 分类报告:")
      print(classification_report(y_test, y_pred_id3))
      print("ID3 混淆矩阵:")
      print(confusion_matrix(y_test, y_pred_id3))
      
      # CART分类器性能评估
      print("\nCART 分类报告:")
      print(classification_report(y_test, y_pred_cart))
      print("CART 混淆矩阵:")
      print(confusion_matrix(y_test, y_pred_cart))
      
      # C4.5分类器性能评估
      print("\nC4.5 分类报告:")
      print(classification_report(y_test, y_pred_c45))
      print("C4.5 混淆矩阵:")
      print(confusion_matrix(y_test, y_pred_c45))
      

       

      详细解释:

      1. classification_report():生成分类报告,显示每个类别的精确率、召回率、F1分数等。
      2. confusion_matrix():生成混淆矩阵,显示预测结果和实际标签的匹配情况。通过混淆矩阵可以清晰地看到模型在哪些类别上表现良好,哪些类别上有误分类的情况。

      1.8 比较结果的可视化

      # 对比较结果进行可视化
      fig, axes = plt.subplots(1, 3, figsize=(18, 5))
      
      sns.heatmap(confusion_matrix(y_test, y_pred_id3), annot=True, fmt="d", cmap="Blues", ax=axes[0])
      axes[0].set_title("ID3 混淆矩阵")
      
      sns.heatmap(confusion_matrix(y_test, y_pred_cart), annot=True, fmt="d", cmap="Greens", ax=axes[1])
      axes[1].set_title("CART 混淆矩阵")
      
      sns.heatmap(confusion_matrix(y_test, y_pred_c45), annot=True, fmt="d", cmap="Oranges", ax=axes[2])
      axes[2].set_title("C4.5 混淆矩阵")
      
      plt.show()
      

       

      详细解释:

      1. heatmap():使用 seaborn 绘制混淆矩阵的热力图,每个方格中的数字表示预测与真实值的匹配情况,颜色越深,表示匹配的数量越多。
      2. 将三个模型的混淆矩阵放在一张图中展示,方便我们对比三种不同算法的性能。

       

      4.总体代码和运行结果

      4.1 葡萄酒类别总体代码和运行结果

      4.1.1 总体代码

      # 导入所需模块
      import matplotlib.pyplot as plt
      from sklearn.naive_bayes import GaussianNB
      from sklearn.model_selection import train_test_split
      from sklearn.metrics import accuracy_score, confusion_matrix, classification_report, ConfusionMatrixDisplay
      from sklearn.metrics import roc_curve, auc
      from sklearn.datasets import load_wine
      
      # 导入数据,分别为输入特征和标签
      wine = load_wine()
      X = wine.data
      Y = wine.target
      
      # 划分训练集和测试集
      X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=0.2, random_state=42)
      
      # 输出结果
      print("训练集特征形状:", X_train.shape)
      print("测试集特征形状:", X_test.shape)
      print("训练集标签形状:", y_train.shape)
      print("测试集标签形状:", y_test.shape)
      
      # 可视化训练集样本数据分布
      feature_names = wine.feature_names
      target_names = wine.target_names
      plt.figure(figsize=(10, 6))
      scatter = plt.scatter(X_train[:, 0], X_train[:, 1], c=y_train, cmap='viridis', edgecolor='k', s=100)
      plt.xlabel(feature_names[0])
      plt.ylabel(feature_names[1])
      plt.title('Training Samples Scatter Plot')
      handles = [plt.Line2D([0], [0], marker='o', color='w', markerfacecolor=scatter.cmap(scatter.norm(i)), markersize=10) for i in range(len(target_names))]
      plt.legend(handles, target_names, title="Classes")
      plt.grid()
      plt.show()
      
      # 定义和训练贝叶斯模型
      nb_model = GaussianNB()
      nb_model.fit(X_train, y_train)
      
      # 在测试集上进行预测
      nb_y_pred = nb_model.predict(X_test)
      
      # 获取预测概率
      nb_y_pred_proba = nb_model.predict_proba(X_test)
      
      # 评估模型
      accuracy = accuracy_score(y_test, nb_y_pred)
      conf_matrix = confusion_matrix(y_test, nb_y_pred)
      class_report = classification_report(y_test, nb_y_pred, target_names=target_names)
      
      # 打印评价指标
      print(f"Accuracy: {accuracy:.2f}")
      print("Confusion Matrix:\n", conf_matrix)
      print("Classification Report:\n", class_report)
      
      # 绘制混淆矩阵
      ConfusionMatrixDisplay(confusion_matrix=conf_matrix, display_labels=target_names).plot(cmap='Blues')
      plt.title('Confusion Matrix')
      plt.show()
      
      # 绘制AUC-ROC曲线
      plt.figure(figsize=(10, 6))
      fpr = dict()
      tpr = dict()
      roc_auc = dict()
      n_classes = len(target_names)
      for i in range(n_classes):
          fpr[i], tpr[i], _ = roc_curve(y_test, nb_y_pred_proba[:, i], pos_label=i)
          roc_auc[i] = auc(fpr[i], tpr[i])
      
      # 绘制每个类别的 ROC 曲线
      for i in range(n_classes):
          plt.plot(fpr[i], tpr[i], label=f'ROC curve of class {target_names[i]} (area = {roc_auc[i]:.2f})')
      
      # 绘制随机猜测基线
      plt.plot([0, 1], [0, 1], 'k--', label='Random')
      plt.xlabel('False Positive Rate')
      plt.ylabel('True Positive Rate')
      plt.title('Receiver Operating Characteristic (ROC) Curve')
      plt.legend(loc='lower right')
      plt.grid()
      plt.show()
      
      # 定义并训练决策树模型
      from sklearn.tree import DecisionTreeClassifier
      dt_model = DecisionTreeClassifier(random_state=42)
      dt_model.fit(X_train, y_train)
      
      # 使用决策树进行预测
      dt_pred = dt_model.predict(X_test)
      
      # 输出模型分类结果的评价指标
      dt_accuracy = accuracy_score(y_test, dt_pred)
      dt_conf_matrix = confusion_matrix(y_test, dt_pred)
      print(f"Decision Tree Accuracy: {dt_accuracy:.2f}")
      print("Decision Tree Classification Report:\n", classification_report(y_test, dt_pred, target_names=target_names))
      
      # 绘制决策树的混淆矩阵
      plt.figure(figsize=(12, 6))
      ConfusionMatrixDisplay(confusion_matrix=dt_conf_matrix, display_labels=target_names).plot(cmap='Blues', ax=plt.gca())
      plt.title('Decision Tree Confusion Matrix')
      plt.tight_layout()
      plt.show()
      
      # 比对贝叶斯分类和决策树分类的ROC曲线
      dt_y_pred_proba = dt_model.predict_proba(X_test)
      fpr_nb, tpr_nb, _ = roc_curve(y_test, nb_y_pred_proba[:, 1], pos_label=1)
      fpr_dt, tpr_dt, _ = roc_curve(y_test, dt_y_pred_proba[:, 1], pos_label=1)
      roc_auc_nb = auc(fpr_nb, tpr_nb)
      roc_auc_dt = auc(fpr_dt, tpr_dt)
      
      # 绘制AUC-ROC曲线
      plt.figure(figsize=(10, 6))
      plt.plot(fpr_nb, tpr_nb, label=f'Naive Bayes (area = {roc_auc_nb:.2f})')
      plt.plot(fpr_dt, tpr_dt, label=f'Decision Tree (area = {roc_auc_dt:.2f})')
      plt.plot([0, 1], [0, 1], 'k--', label='Random')
      plt.xlabel('False Positive Rate')
      plt.ylabel('True Positive Rate')
      plt.title('Receiver Operating Characteristic (ROC) Curve')
      plt.legend(loc='lower right')
      plt.grid()
      plt.show()
      
      # 使用交叉验证评估不同模型的精度
      import pandas as pd
      from sklearn.model_selection import cross_val_score
      models = {
          'Naive Bayes': nb_model,
          'Decision Tree': dt_model
      }
      results = []
      for model_name, model in models.items():
          scores = cross_val_score(model, X_test, y_test, cv=5)
          results.append(scores)
      
      # 将结果转换为 DataFrame 以便于绘图
      results_df = pd.DataFrame(results, index=models.keys()).T
      
      # 绘制箱线图
      plt.figure(figsize=(10, 6))
      plt.boxplot(results_df.values)  # 修改此处
      plt.xticks([1, 2], models.keys())  # 设置x轴标签
      plt.title('Model Accuracy Comparison')
      plt.xlabel('Model')
      plt.ylabel('Accuracy')
      plt.xticks(rotation=45)
      plt.grid()
      plt.show()
      

      4.1.2 运行结果

      训练集特征形状: (142, 13)
      测试集特征形状: (36, 13)
      训练集标签形状: (142,)
      测试集标签形状: (36,)
      

      【机器学习】任务四:使用贝叶斯算法识别葡萄酒类别和使用三种不同的决策树方法(ID3,C4.5,CART)对鸢尾花数据进行分类

      Accuracy: 1.00
      Confusion Matrix:
       [[14  0  0]
       [ 0 14  0]
       [ 0  0  8]]
      Classification Report:
                     precision    recall  f1-score   support
      
           class_0       1.00      1.00      1.00        14
           class_1       1.00      1.00      1.00        14
           class_2       1.00      1.00      1.00         8
      
          accuracy                           1.00        36
         macro avg       1.00      1.00      1.00        36
      weighted avg       1.00      1.00      1.00        36
      
      

      【机器学习】任务四:使用贝叶斯算法识别葡萄酒类别和使用三种不同的决策树方法(ID3,C4.5,CART)对鸢尾花数据进行分类

      【机器学习】任务四:使用贝叶斯算法识别葡萄酒类别和使用三种不同的决策树方法(ID3,C4.5,CART)对鸢尾花数据进行分类

      Decision Tree Accuracy: 0.94
      Decision Tree Classification Report:
                     precision    recall  f1-score   support
      
           class_0       0.93      0.93      0.93        14
           class_1       0.93      1.00      0.97        14
           class_2       1.00      0.88      0.93         8
      
          accuracy                           0.94        36
         macro avg       0.95      0.93      0.94        36
      weighted avg       0.95      0.94      0.94        36
      
      

      【机器学习】任务四:使用贝叶斯算法识别葡萄酒类别和使用三种不同的决策树方法(ID3,C4.5,CART)对鸢尾花数据进行分类

      【机器学习】任务四:使用贝叶斯算法识别葡萄酒类别和使用三种不同的决策树方法(ID3,C4.5,CART)对鸢尾花数据进行分类

      【机器学习】任务四:使用贝叶斯算法识别葡萄酒类别和使用三种不同的决策树方法(ID3,C4.5,CART)对鸢尾花数据进行分类

      [7]:

      4.2 鸢尾花数据集总体代码和结果

      4.2.1 总体代码

      # 完整实现步骤(2):导入鸢尾花数据集并使用三种不同的决策树分类方法(ID3,C4.5,CART)
      
      # 导入所需的库
      import numpy as np
      import pandas as pd
      from sklearn import datasets
      from sklearn.model_selection import train_test_split
      from sklearn.tree import DecisionTreeClassifier
      from sklearn.metrics import classification_report, confusion_matrix
      import matplotlib.pyplot as plt
      import seaborn as sns
      import matplotlib.pyplot as plt
      from matplotlib import rcParams
      
      # 设置字体为支持中文的字体
      rcParams['font.sans-serif'] = ['SimHei']  # 使用 SimHei 字体显示中文
      rcParams['axes.unicode_minus'] = False    # 解决负号显示问题
      
      
      # 第一步:加载鸢尾花数据集
      iris = datasets.load_iris()
      
      # 创建DataFrame用于数据探索
      df_iris = pd.DataFrame(data=iris.data, columns=iris.feature_names)
      df_iris['target'] = iris.target
      
      # 第二步:对数据进行初步探索(查看基本信息)
      df_()
      df_iris.describe()
      
      # 可视化数据之间的关系
      sns.pairplot(df_iris, hue='target')
      plt.show()
      
      # 第三步:将数据集分为训练集和测试集,按8:2的比例
      X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2, random_state=42)
      
      # 第四步:分别使用三种决策树方法(ID3,C4.5,CART)训练模型
      # ID3 和 CART 都可以用 DecisionTreeClassifier 实现,其中 criterion 分别为 'entropy' 和 'gini'
      # 由于 sklearn 没有直接支持 C4.5,我们通过改进 ID3 方式来近似实现
      
      # 分类器1:ID3 (使用 entropy 作为划分标准)
      clf_id3 = DecisionTreeClassifier(criterion='entropy', random_state=42)
      clf_id3.fit(X_train, y_train)
      
      # 分类器2:CART (使用 gini 作为划分标准)
      clf_cart = DecisionTreeClassifier(criterion='gini', random_state=42)
      clf_cart.fit(X_train, y_train)
      
      # 分类器3:C4.5 使用的方式在 sklearn 中可以近似为使用 entropy + 限制 max_depth
      clf_c45 = DecisionTreeClassifier(criterion='entropy', max_depth=4, random_state=42)
      clf_c45.fit(X_train, y_train)
      
      # 第五步:使用测试集进行预测
      y_pred_id3 = clf_id3.predict(X_test)
      y_pred_cart = clf_cart.predict(X_test)
      y_pred_c45 = clf_c45.predict(X_test)
      
      # 第六步:使用混淆矩阵和分类报告来评估分类器性能
      print("ID3 分类报告:")
      print(classification_report(y_test, y_pred_id3))
      print("ID3 混淆矩阵:")
      print(confusion_matrix(y_test, y_pred_id3))
      
      print("\nCART 分类报告:")
      print(classification_report(y_test, y_pred_cart))
      print("CART 混淆矩阵:")
      print(confusion_matrix(y_test, y_pred_cart))
      
      print("\nC4.5 分类报告:")
      print(classification_report(y_test, y_pred_c45))
      print("C4.5 混淆矩阵:")
      print(confusion_matrix(y_test, y_pred_c45))
      
      # 第七步:对比较结果进行可视化
      # 这里可以通过展示混淆矩阵的热力图来对比三种方法的效果
      fig, axes = plt.subplots(1, 3, figsize=(18, 5))
      
      sns.heatmap(confusion_matrix(y_test, y_pred_id3), annot=True, fmt="d", cmap="Blues", ax=axes[0])
      axes[0].set_title("ID3 混淆矩阵")
      
      sns.heatmap(confusion_matrix(y_test, y_pred_cart), annot=True, fmt="d", cmap="Greens", ax=axes[1])
      axes[1].set_title("CART 混淆矩阵")
      
      sns.heatmap(confusion_matrix(y_test, y_pred_c45), annot=True, fmt="d", cmap="Oranges", ax=axes[2])
      axes[2].set_title("C4.5 混淆矩阵")
      
      plt.show()
      

      4.2.2 运行结果

      <class 'pandas.core.frame.DataFrame'>
      RangeIndex: 150 entries, 0 to 149
      Data columns (total 5 columns):
       #   Column             Non-Null Count  Dtype  
      ---  ------             --------------  -----  
       0   sepal length (cm)  150 non-null    float64
       1   sepal width (cm)   150 non-null    float64
       2   petal length (cm)  150 non-null    float64
       3   petal width (cm)   150 non-null    float64
       4   target             150 non-null    int64  
      dtypes: float64(4), int64(1)
      memory usage: 6.0 KB
      

      【机器学习】任务四:使用贝叶斯算法识别葡萄酒类别和使用三种不同的决策树方法(ID3,C4.5,CART)对鸢尾花数据进行分类

      ID3 分类报告:
                    precision    recall  f1-score   support
      
                 0       1.00      1.00      1.00        10
                 1       1.00      1.00      1.00         9
                 2       1.00      1.00      1.00        11
      
          accuracy                           1.00        30
         macro avg       1.00      1.00      1.00        30
      weighted avg       1.00      1.00      1.00        30
      
      ID3 混淆矩阵:
      [[10  0  0]
       [ 0  9  0]
       [ 0  0 11]]
      
      CART 分类报告:
                    precision    recall  f1-score   support
      
                 0       1.00      1.00      1.00        10
                 1       1.00      1.00      1.00         9
                 2       1.00      1.00      1.00        11
      
          accuracy                           1.00        30
         macro avg       1.00      1.00      1.00        30
      weighted avg       1.00      1.00      1.00        30
      
      CART 混淆矩阵:
      [[10  0  0]
       [ 0  9  0]
       [ 0  0 11]]
      
      C4.5 分类报告:
                    precision    recall  f1-score   support
      
                 0       1.00      1.00      1.00        10
                 1       1.00      1.00      1.00         9
                 2       1.00      1.00      1.00        11
      
          accuracy                           1.00        30
         macro avg       1.00      1.00      1.00        30
      weighted avg       1.00      1.00      1.00        30
      
      C4.5 混淆矩阵:
      [[10  0  0]
       [ 0  9  0]
       [ 0  0 11]]
      

      【机器学习】任务四:使用贝叶斯算法识别葡萄酒类别和使用三种不同的决策树方法(ID3,C4.5,CART)对鸢尾花数据进行分类

      版权声明:本文内容来自第三方投稿或授权转载,原文地址:https://blog.csdn.net/FHY26828/article/details/142143043,作者:FHYAAAX,版权归原作者所有。本网站转在其作品的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如因作品内容、版权等问题需要同本网站联系,请发邮件至ctyunbbs@chinatelecom.cn沟通。

      上一篇:使用ECharts创建动态数据可视化图表

      下一篇:OGG搭建完成后,源端insert数据导致目标端复制进程报错OGG-00768、OGG-00769

      相关文章

      2025-05-19 09:04:53

      【NetApp数据恢复】误操作导致NetApp存储的卷丢失,卷内虚拟机无法访问的数据恢复案例

      【NetApp数据恢复】误操作导致NetApp存储的卷丢失,卷内虚拟机无法访问的数据恢复案例

      2025-05-19 09:04:53
      存储 , 数据 , 数据恢复 , 解压
      2025-05-19 09:04:30

      开源与闭源:AI模型发展的两条路径

      开源与闭源:AI模型发展的两条路径

      2025-05-19 09:04:30
      开源 , 模型 , 用户
      2025-05-16 09:15:10

      画图时使用的函数和一些错误处理

      画图时使用的函数和一些错误处理

      2025-05-16 09:15:10
      数据
      2025-05-14 10:33:25

      超级好用的C++实用库之国密sm4算法

      国密SM4算法,全称为国家密码管理局制定的SM4分组密码算法,是中国自主设计的商用密码算法标准之一,用于数据的对称加密。

      2025-05-14 10:33:25
      加密 , 参数 , 数据 , 模式 , 解密
      2025-05-14 10:07:38

      30天拿下Rust之引用

      在Rust语言中,引用机制是其所有权系统的重要组成部分,它为开发者提供了一种既高效又安全的方式来访问和共享数据。引用可以被视为一个指向内存地址的指针,它允许我们间接地访问和操作存储在内存中的数据。

      2025-05-14 10:07:38
      Rust , text , 可变 , 引用 , 数据
      2025-05-14 10:07:38

      30天拿下Rust之所有权

      在编程语言的世界中,Rust凭借其独特的所有权机制脱颖而出,为开发者提供了一种新颖而强大的工具来防止内存错误。这一特性不仅确保了代码的安全性,还极大地提升了程序的性能。

      2025-05-14 10:07:38
      data , Rust , 内存 , 函数 , 变量 , 数据
      2025-05-14 10:03:13

      超级好用的C++实用库之Base64编解码

      Base64是一种编码方式,用于将二进制数据转换为可打印的ASCII字符。这种编码方式常用于在HTTP协议等应用中传输二进制数据,比如:图片、音频、视频等。

      2025-05-14 10:03:13
      Base64 , 字符串 , 数据 , 编码 , 长度
      2025-05-14 10:03:13

      【MySQL】-数据库优化(索引)

      索引(index)是帮助数据库高效获取数据的数据结构

      2025-05-14 10:03:13
      index , Tree , 二叉 , 搜索 , 数据 , 索引 , 节点
      2025-05-14 10:02:58

      超级好用的C++实用库之字节流解析器

      字节流解析器是一种软件组件,它负责将接收到的原始二进制数据(字节流)转换为有意义的信息结构或格式。在计算机网络、文件处理和数据通信中,字节流是最基本的数据传输形式,但这些原始字节对于应用程序通常是没有直接意义的,需要通过特定的解析规则来解读。

      2025-05-14 10:02:58
      true , 参数 , 字节 , 数据 , 获取 , 解析器 , 返回值
      2025-05-14 10:02:58

      java项目多端数据同步解决方案

      多端数据同步是指在多个设备(例如桌面应用、移动应用、Web应用)之间保持数据的一致性。

      2025-05-14 10:02:58
      java , Spring , WebSocket , 同步 , 数据 , 版本号
      查看更多
      推荐标签

      作者介绍

      天翼云小翼
      天翼云用户

      文章

      33561

      阅读量

      5248833

      查看更多

      最新文章

      画图时使用的函数和一些错误处理

      2025-05-16 09:15:10

      30天拿下Rust之引用

      2025-05-14 10:07:38

      springmvc五种数据提交方式

      2025-05-07 09:07:56

      【30天玩转python】数据分析与可视化

      2025-05-06 09:19:30

      【30天玩转python】机器学习入门

      2025-05-06 09:19:30

      【大数据分析工具】使用Hadoop、Spark进行大数据分析

      2025-05-06 09:18:38

      查看更多

      热门文章

      5、使用PyTorch 实现线性回归

      2023-02-27 09:14:47

      一次k8s 数据卷异常问题的解决

      2022-11-08 07:33:08

      Dataloader有哪些使用方法

      2023-02-13 08:10:07

      Vue:自定义v-model数据双向绑定

      2022-11-17 12:37:28

      2022-04-01 访问k8s内的etcd的数据

      2023-02-23 07:38:36

      提升网络训练的准确率

      2023-02-13 09:26:16

      查看更多

      热门标签

      算法 leetcode python 数据 java 数组 节点 大数据 i++ 链表 golang c++ 排序 django 数据类型
      查看更多

      相关产品

      弹性云主机

      随时自助获取、弹性伸缩的云服务器资源

      天翼云电脑(公众版)

      便捷、安全、高效的云电脑服务

      对象存储

      高品质、低成本的云上存储服务

      云硬盘

      为云上计算资源提供持久性块存储

      查看更多

      随机文章

      双指针算法专题(2)

      matlibplot从入门到精通——基本使用

      python面对对象三大特性

      sed 命令详解(增删该查)

      【机器学习】简单易懂的聚类算法K-Means

      python如何给数组设定行列名

      • 7*24小时售后
      • 无忧退款
      • 免费备案
      • 专家服务
      售前咨询热线
      400-810-9889转1
      关注天翼云
      • 旗舰店
      • 天翼云APP
      • 天翼云微信公众号
      服务与支持
      • 备案中心
      • 售前咨询
      • 智能客服
      • 自助服务
      • 工单管理
      • 客户公告
      • 涉诈举报
      账户管理
      • 管理中心
      • 订单管理
      • 余额管理
      • 发票管理
      • 充值汇款
      • 续费管理
      快速入口
      • 天翼云旗舰店
      • 文档中心
      • 最新活动
      • 免费试用
      • 信任中心
      • 天翼云学堂
      云网生态
      • 甄选商城
      • 渠道合作
      • 云市场合作
      了解天翼云
      • 关于天翼云
      • 天翼云APP
      • 服务案例
      • 新闻资讯
      • 联系我们
      热门产品
      • 云电脑
      • 弹性云主机
      • 云电脑政企版
      • 天翼云手机
      • 云数据库
      • 对象存储
      • 云硬盘
      • Web应用防火墙
      • 服务器安全卫士
      • CDN加速
      热门推荐
      • 云服务备份
      • 边缘安全加速平台
      • 全站加速
      • 安全加速
      • 云服务器
      • 云主机
      • 智能边缘云
      • 应用编排服务
      • 微服务引擎
      • 共享流量包
      更多推荐
      • web应用防火墙
      • 密钥管理
      • 等保咨询
      • 安全专区
      • 应用运维管理
      • 云日志服务
      • 文档数据库服务
      • 云搜索服务
      • 数据湖探索
      • 数据仓库服务
      友情链接
      • 中国电信集团
      • 189邮箱
      • 天翼企业云盘
      • 天翼云盘
      ©2025 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
      公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
      • 用户协议
      • 隐私政策
      • 个人信息保护
      • 法律声明
      备案 京公网安备11010802043424号 京ICP备 2021034386号