• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

机器学习基础03——决策树算法

武飞扬头像
Alex..D
帮助1

决策树算法的基本概念

  • 决策树算法是一种树型结构,包括决策节点(内部节点),分支和叶节点三部分。

  • 决策节点:代表某个测试,通常对应于待分类对象的某个属性(属性结构的有向边)

  • 叶节点:存放某个类标号值,表示一种可能的分类9结果。

  • 分支:表示某个决策节点的不同取值。

学新通

决策树是一种典型的分类方法

首先对数据进行处理,利用归纳算法生成可读的规则和决策树,然后使用决策对新数据进行分析。

本质上决策树是通过一系列规则对数据进行分类的过程。

决策树的优点

  • 推理过程容易理解,决策推理过程可以表示成If Then形式;

  • 推理过程完全依赖于属性变量的取值特点;

  • 可自动忽略目标变量没有贡献的属性变量,也为判断属性变量的重要性,减少变量的数目提供参考。

利用决策树算法对红酒集数据进行预测

  1.  
    #计算深度为1时的训练集准确率
  2.  
    import numpy as np
  3.  
    import matplotlib.pyplot as plt
  4.  
    from sklearn import tree
  5.  
    from sklearn import datasets
  6.  
    from sklearn.model_selection import train_test_split
  7.  
    wine=datasets.load_wine()
  8.  
    X=wine.data
  9.  
    y=wine.target
  10.  
    #将数据分割为测试集和训练集
  11.  
    X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.3,random_state=33)
  12.  
    #配置决策树,此处深度设置为1
  13.  
    clf = tree.DecisionTreeClassifier(max_depth = 1)
  14.  
    clf.fit(X_train,y_train)
  15.  
    score_train=round(clf.score(X_train,y_train),2)
  16.  
    print(f'训练集的得分为:{score_train}')
学新通
  1.  
    #计算不同深度的情况下,决策树的准确率
  2.  
    depth=[1,3,5,7,9]
  3.  
    train=[]
  4.  
    test=[]
  5.  
    for i in depth:
  6.  
    clf = tree.DecisionTreeClassifier(max_depth = i)
  7.  
    clf.fit(X_train,y_train)
  8.  
    score_train=round(clf.score(X_train,y_train),2)
  9.  
    train.append(score_train)
  10.  
    score_test=round(clf.score(X_test,y_test),2)
  11.  
    test.append(score_test)
  12.  
    print(f'决策树的深度为{i}时,训练集的得分为:{score_train},测试集的得分为:{score_test}')
  13.  
    plt.plot(depth,train)
  14.  
    plt.plot(depth,train,marker="x",color="r",label = "training score")
  15.  
    plt.plot(depth,test,marker="o",color="g",label = "testing score")
  16.  
    plt.legend()
  17.  
    plt.show()
学新通
学新通
  1.  
    #根据上图可知,深度为5时,测试集和训练集的准确率较高,画出深度为5的决策树模型
  2.  
    clf = tree.DecisionTreeClassifier(max_depth = 5)
  3.  
    clf.fit(X_train,y_train)
  4.  
    tree.plot_tree(decision_tree=clf,filled=True)
  5.  
    plt.show()
学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhggceea
系列文章
更多 icon
同类精品
更多 icon
继续加载