sklearn中的决策树以及相关参数

决策树(分类树与回归树)

1. 概述

sklearn中的决策树

tree.DecisionTreeClassifier 分类树
tree.DecisionTreeRegressor 回归树
tree.export_graphviz 将生成的决策树导出为dot模式,画图用
tree.ExtraTreeClassifier 高随机版本的分类树
tree.ExtraTreeRegressor 高随机版本的回归树
from sklearn import tree					# 导入需要的模块

clf = tree.DecisionClassifier()				# 实例化
clf = clf.fit(X_train, y_train)				# 用训练集数据训练模型
result = clf.score(x_test, y_test)			# 导入测试集,从接口调用需要的信息

2. DecisionTreeClassifier

2.1重要参数:

2.1.1 criterion

不纯度基于节点计算,树中的每一个节点都有相应的不纯度,并且子节点的不纯度一定低于父节点的,也就是同一棵决策树中,叶子节点的不纯度一定是最低的。

criterion是决定不纯度的计算方法(ps:不纯度越低,决策树对训练集的拟合效果越好):

  1. 输入”entropy“,使用信息熵(Entropy) 高维数据,信息熵容易过拟合
  2. 输入”gini“,使用基尼系数(Gini Impurity) 决策树拟合程度不够时使用信息熵

2.1.2 random_state & splitter

2.1.3 剪枝参数

2.1.4 目标权重参数

2.1 重要属性和接口

3. DecisionTreeRegressor

3.1 重要参数与接口

criterion

3.2 实例:一维图像绘制

4. 实例:泰坦尼克幸存者预测

5. 决策树的优缺点

6. 附录

6.1 分类树参数列表

criterion 字符型,可不填,默认基尼系数(’‘gini’’)
用来衡量分枝质量的指标,即不纯度的指标,输入’‘gini’'使用基尼系数,输入‘’‘entropy’使用信息增益
spitter 字符型,可不填,默认最佳分枝(’‘best’‘)
确定每个节点的分枝策略
输入’‘best’‘使用最佳分枝,输入’‘random’‘使用随机分枝
max_depth 整数或None,可不填,默认None
书的最大深度,如果是None,树会持续生长到所有子节点的不纯度为0,或者直到每个叶子节点所含样本量都小于参数min_samples_split中所填写的数字
min_samples_split 整数或者浮点数。可不填,默认=2
一个中间节点要分枝所需要的最小样本量,如果一个节点包含样本数小与 min_samples_split 中所填写的数字,这个节点的分枝就不会发生,即该节点必定成为一个叶子节点

1)如果输入整数,即认为输入数字为最小样本量
2)如果输入浮点数,则认为输入的浮点数是比例,输入的浮点数 * 输入模型的数据集的样本量(n_samples)是分枝所需要的最小样本量
min_samples_leaf 整数或浮点数,可不填,默认=1
一个叶子节点要存在所需要的最小样本量,一个节点在分枝后的每个子节点中,必须包含至少 min_samples_leaf 个训练样本,否则分枝就不会发生。这个参数可能会有使得模型更加平滑的效果,尤其是在回归中

1)如果输入整数,即认为输入数字为叶节点存在所需的最小样本量
2)如果输入浮点数,则认为输入的浮点数是比例,输入的浮点数 * 输入模型的数据集的样本量(n_samples)是叶节点存在所需要的最小样本量
min_weight_fraction_leaf 浮点数,可不填,默认=0
一个叶节点要存在所需要的权重占输入数据集的总权重的比例
总权重由fit接口中的 sample_weight 参数确定
当 sample_weight 是 None 时,默认所有样本的权重相同
max_features 整数,浮点数,字符型或None,可不填,默认None
在做最佳分枝的时候考虑的特征个数
1)输入整数,则每一次分枝都考虑 max_features 个特征
2)输入浮点数,则认为输入的浮点数是比例,每次考虑的特征数量为 max_features * 输入模型的数据集的特征个数(n_features)
3)输入“ auto”,采用 n_features 的平方根做分枝时考虑的特征数目
4)输入“ sqrt”,采用 n_features 的平方根做分枝时考虑的特征数目
5)输入“ log2”,采用 l o g 2 ( n _ f e a t u r e s ) log_2(n\_features) log2n_features​​​​作为分枝时考虑的特征数目
6)输入“ None”,n_features 就是分枝时考虑的特征数目
注意:如果在限制的 max_features 中,决策树无法找到节点样本上至少一个有效的分枝,那么对于分枝的搜索不会停止,决策树会检查比限制的 max_features 更多数目的特征
random_state 整数,sklearn中设定好的RandomState实例,或None,可不填,默认None
1)输入整数,random_state 是由随机数生成生成器生成的随机数种子
2)输入RandomState实例,则random_state 是一个随机数生成生成器
3)输入None,随机数生成器会是一个 np.random 模块中的一个RandomState实例

6.2 分类树属性列表

6.3 分类树接口列表

你可能感兴趣的:(#,深度学习,python,sklearn,决策树,python)