决策树算法
理论部分可以参考西瓜书,本文主要总结一下决策树算法在sklearn中的一些基本用法。
sklearn.tree
使用决策树的流程
from sklearn import tree
clf = tree.DecisionTreeClassifier() #实例化
clf.fit(x_train,y_train) #训练模型
result = clf.score(x_test,y_test) #测试
sklearn中的决策树算法都包含在tree这个模块中,使用时导入即可。
from skearn import tree
sklearn中包含了五个模块
Column 1 | Column 2 |
---|---|
tree.DecisionTreeClassifier | 分类树 |
tree.DecisionTreeRegressor | 回归树 |
tree.export_graphviz | 将生成的树导出为DOT格式 |
tree.ExtraTreeClassifier | 高随机版本的分类树 |
tree.ExtraTreeClassifier | 高随机版本的回归树 |
1.tree.DecisionTreeClassifier
tree.DecisionTreeClassifier官网介绍
DecisionTreeClassifier的参数很多,其中比较重要的有以下几个:
- criterion
- splitter & random_state
- max_depth
- min_samples_split & min_samples_leaf
- max_features & min_impurity_decrease
- class_weight & min_weight_fraction_leaf
下边分别介绍这几个参数的用法
1.1 criterion
在构建决策树的时候,我们往往希望得到一棵最佳的树,而这个最佳的衡量指标通常指不纯度。一般来说,不纯度越低,决策树对训练数据拟合的越好。
不纯度有两种计算方法:信息熵Entropy和Gini指数
e n t r o p y ( t ) = − ∑ i = 0 n P i l n ( P i ) G i n i ( t ) = 1 − ∑ i = 0 n P i 2 entropy(t)=-\sum_{i=0}^{n}P_iln(P_i) \\ Gini(t)=1-\sum_{i=0}^{n}P_i^2 entropy(t)=−