sklearn入门——决策树在sklearn中的实现_分类树
1、决策树的简介
决策树(Decision Tree)是一种非参数的有监督学习方法,它能够从一系列有特征和标签的数据中总结出决策规则,并用树状图的结构来呈现这些规则,以解决分类和回归问题。在这个决策过程中,我们一直在对记录的特征进行提问。最初的问题所在的地方叫做根节点,在得到结 论前的每一个问题都是中间节点,而得到的每一个结论(动物的类别)都叫做叶子节点。
例如说我们对新物种python,它是冷血动物,体表带鳞片,并且不是胎生,我们就可以通过这棵决策
树来判断它的所属类别。判断过程如下:
2、决策树算法的核心问题
- 如何从数据表中找出最佳节点和最佳分枝?
- 如何让决策树停止生长,防止过拟合?
3、sklearn中的决策树
3.1 sklearn建模的基本流程
这个流程对应的代码分别是:
from sklearn import tree #导入需要的模块
clf=tree.DecisionTreeClassifier() #实例化
clf=clf.fit(x_train,y_train) #用训练集数据训练模型
result=clf.score(x_test,y_test) #导入测试集,从接口中调用需要的信息
3.2 分类树的八个参数
八个参数:Criterion,两个随机性相关的参数(random_state,splitter),五个剪枝参数(max_depth,
min_samples_split,min_samples_leaf,max_feature,min_impurity_decrease)。
3.2.1 criterion
为了要将表格转化为一棵树,决策树需要找出最佳节点和最佳的分枝方法,对分类树来说,衡量这个“最佳”的指标叫做“不纯度“,不纯度越低,决策树对训练集的拟合越好。对于不纯度指标来说,子节点的不纯度一定是低于父节点的。决策树的构建更像是一个将不纯度逐渐减少的过程。在sklearn中对于不纯度的计算总共有两种方法:
- 输入”entropy“,使用信息熵。
- 输入”gini“,使用基尼系数。
在实际使用中,两种方法的效果基本相同,但是信息熵的计算比基尼系数缓慢一些,因为基尼系数的计算不涉及对数。对于这两种计算不纯度方式的选择,通常使用基尼系数。
from sklearn