目录
前言
本文讲述在sklearn训练了决策树模型之后,如何提取决策树规则,包括决策树文本规则,决策树可视化规则和决策树规则数据等等,并进一步简述如何将决策树规则布署到线上的思路
本文部分图文借鉴自《老饼讲解-机器学习》
一、什么是决策树模型
0.1 什么是决策树
决策树模型是一种用于做分类或回归的模型,它以树形结构表示决策过程的模型。它通常由决策点、策略点(事件点)及结果构成,每个非叶节点表示一个特征属性上的测试,每个分支代表这个特征属性在某个值域上的输出,而每个叶节点存放一个类别。使用决策树进行决策的过程就是从根节点开始,测试待分类项中相应的特征属性,并按照其值选择输出分支,直到到达叶子节点,将叶子节点存放的类别作为决策结果。决策树模型通常以最大收益期望值或最低期望成本作为决策准则,通过图解方式求解在不同条件下各类方案的效益值,然后通过比较,做出决策。决策树模型的优点包括直观、容易解释、对数据的结构和分布不需作任何假设、可以捕捉住变量间的相互作用。
02.决策树模型有哪些
决策树模型有CART和ID3、C4.5等等,它们的特别与关系如下:
- ID3算法:ID3算法的核心是在决策树各个节点上应用信息增益准则选择特征,递归地构建决策树。
- C4.5算法:C4.5算法继承了ID3算法的优点,并在以下几方面对ID3算法进行了改进:用信息增益率来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足;在树构造过程中进行剪枝;能够处理离散型和连续型的属性;能够处理具有缺失属性值的训练实例。
- CART算法:CART假设决策树是二叉树,内部节点特征的取值为“是”和“否”,左分支是取值为“是”的分支,右分支是取值为“否”的分支。这样的决策树等价于递归地二分每个特征,将输入空间即特征空间划分为一系列的不相交的区域,并在这些区域上确定预测的概率分布,也就是输入给定的条件下输出的条件概率分布。
二、在sklearn中怎么训练一棵决策树
在sklearn中,可以使用DecisionTreeClassifier来构建一个决策树模型
下面是一个简单的Demo示例:
from sklearn.datasets import load_iris
from sklearn import tree
#----------------数据准备----------------------------
iris = load_iris() # 加载数据
#---------------模型训练----------------------------------
clf = tree.DecisionTreeClassifier(criterion="gini",
split