zoukankan      html  css  js  c++  java
  • 【决策树】理解与使用

    1:决策树原理理解

    决策树(decision tree)是一个树结构(可以是二叉树或非二叉树)。

    其每个非叶节点表示一个特征属性上的测试,每个分支代表这个特征属性在某个值域上的输出,而每个叶节点存放一个类别。

    使用决策树进行决策的过程就是从根节点开始,测试待分类项中相应的特征属性,并按照其值选择输出分支,直到到达叶子节点,将叶子节点存放的类别作为决策结果。

    总结来说:

    决策树模型核心是下面几部分:

    • 结点和有向边组成
    • 结点有内部结点和叶结点俩种类型
    • 内部结点表示一个特征,叶节点表示一个类

    2:决策实例

    假如我现在告诉你,我买了一个西瓜,它的特点是纹理是清晰,根蒂是硬挺的瓜,你来给我判断一下是好瓜还是坏瓜,恰好,你构建了一颗决策树,告诉他,没问题,我马上告诉你是好瓜,还是坏瓜?

    判断步骤如下:

    根据纹理特征,已知是清晰,那么走下面这条路,红色标记:

    好的,现在咋们到了第二层了,这个时候,由决策树图,我们看到,我们需要知道根蒂的特征是什么了?很好,他也告诉我了,是硬挺,于是,我们继续走,如下面蓝色所示:

     

     此时,我们到达叶子结点了,根据上面总结的点,可知,叶子结点代表一种类别,我们从如上决策树中,可以知道,这是一个坏瓜!

    1:决策时代码使用

    import numpy as np
    
    from sklearn.tree import DecisionTreeClassifier 
    
    import sklearn.datasets as datasets
    iris = datasets.load_iris() # 鸟分类数据集
    
    X = iris['data']
    y = iris['target']
    
    
    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)
    print("训练集:",X_train.shape,y_train.shape) print("测试集:",X_test.shape,y_test.shape)
    import sklearn.tree as sk_tree
    
    model = sk_tree.DecisionTreeClassifier(criterion='entropy',max_depth=None,min_samples_split=2,min_samples_leaf=1,max_features=None,max_leaf_nodes=None,min_impurity_decrease=0)
    
    model.fit(X_train,y_train) # 构建决策树
    
    acc=model.score(X_test,y_test) #根据给定数据与标签返回正确率的均值
    
    print('决策树模型评价:',acc)

     

     总结:将给的训练集特征分层特征后,进行训练后构建决策树,输入需要预测的特征数据,得出觉得分类

  • 相关阅读:
    input表单元素的默认padding不一致问题
    【转】iOS25彩票 幸运转盘
    微分起源
    转载--微分几何为何必然兴起?
    前缀和?or差分序列?
    noip2014 小结
    2019艾瑞(北京)年度高峰会议-数能驱动新变量
    MSF初体验
    s实现指定时间自动跳转到某个页面
    css实现居中
  • 原文地址:https://www.cnblogs.com/wanghong1994/p/13458142.html
Copyright © 2011-2022 走看看