决策树(sklearn.tree.DecisionTreeClassifier)源文档地址:
https://scikit-learn.org/stable/modules/generated/sklearn.tree.DecisionTreeClassifier.html
决策树参数简介
DecisionTreeClassifier(criterion=’gini’, splitter=’best’, max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features=None, random_state=None, max_leaf_nodes=None, min_impurity_decrease=0.0, min_impurity_split=None, class_weight=None, presort=False)
1.criterion=’gini’,字符型数值,表示衡量决策树分类效果的标准,可选gini系数和熵值,默认为gini系数。
2.splitter=’best’,字符型数值,表示决策树分类节点的选择类型,可选best和random,random表示随机选择节点,默认为best。
3.max_depth=None,整型值,可以指定数值,如果默认None,那么决策树将无限分裂下去,直到最终每个叶子结点中的数据非常的纯净,或者叶子结点中的样本数小于指定最小叶子结点样本数。
4.min_samples_split,整型值或者浮点型数值,默认 = 2,表示内部节点的是否可再分割,如果小于该数值,则不再进行切分。
5.min_samples_leaf,整型值或者浮点型数值,默认 = 1,表示叶子结点的最小样本个数,如果小于该数值,则不再进行切分。
6.max_leaf_nodes=None,整型值,可以指定数值,默认为None,如果指定为None,则叶子结点可以有无限多个。
决策树案例演示
import numpy as np
import pandas as pd
from sklearn import datasets
from sklearn.model_selection import cross_val_score
from sklearn.tree import DecisionTreeClassifier
#导入iris数据集
iris = datasets.load_iris()
iris_X = iris.data
iris_y = iris.target
#导入决策树模型
DT = DecisionTreeClassifier(random_state = 0)
#对模型进行评估
scores = cross_val_score(DT,iris_X,iris_y,cv=10)
scores
array([1. , 0.93333333, 1. , 0.93333333, 0.93333333,
0.86666667, 0.93333333, 1. , 1. , 1. ])
scores.mean()
0.96
在这个demo演示中,我们使用的都是默认参数,DT模型精度为0.96,该模型的分类效果还算可以。
总结:
决策树是树模型的基础,理解起来比较简单。这一节我们了解怎样去构建一棵树,后期我们将继续讨论随机森林与集成算法,它们的基础都是决策树。