一、决策树
分类树的8个重要参数:criterion、2个随机性相关的参数(random_state,splitter)、5个剪枝参数(max_depth、min_samples_split、min_samples_leaf、max_feature、min_impurity_decrease)。
1、criterion:不纯度计算方法,信息熵entropy和基尼系数gini,默认gini。
2、random_state:设置分枝中随机模式的参数,默认为None。
3、splitter:控制决策树中的随机选项。best和random,默认最佳分枝best(分枝虽随机,但会优先选择更重要的特征分枝)。
4、max_depth:树大最大深度,建议从3开始尝试。
5、min_samples_split:一个节点至少包含min_samples_split个训练样本,默认为2。
6、min_samples_leaf:一个节点在分枝后的每个子节点都必须包含min_samples_leaf个训练样本,建议从5开始尝试。
7、max_features:限制分枝时考虑的特征个数(和max_depth异曲同工)。
8、min_impurity_decrease:限制信息增溢的大小,信息增溢小于设定数值的分枝不会发生。
网格搜索调参
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import GridSearchCV
times = time()
parameters = {
'splitter':('best','random')
,'criterion':("gini","entropy")
,"max_depth":[*range(1,10)]
,'min_samples_leaf':[*range(1,50,5)]
,'min_impurity_decrease':[*np.linspace(0,0.5,20)]
}
clf = DecisionTreeClassifier(random_state=25)
GS