最常用的决策树预剪枝参数有两个:
- min_samples_split : 决策树某个节点的数据量小于该值时停止下分(注意该参数不能为1)
- max_depth:决策树的最大深度
# 最基本的决策树模型生成
from sklearn import tree
dtc = tree.DecisionTreeClassifier() # 回归决策树同理
dtc.fit(x_train, y_train)
# ---------------------------------------------------
# sklearn的GridSearchCV选择决策树预剪枝最佳参数
from sklearn.model_selection import GridSearchCV
# 设定想要尝试效果的参数,多个参数用dict类型组合,参数名为key,参数值为list组合
tree_param = {"min_samples_split":[2, 3, 4], "max_depth":[5, 6, 7]}
# GridSearchCV(“模型原型”, param_grid=“参数组合”, cv=n)
g_s = GridSearchCV(DecisionTreeClassifier(), param_grid=tree_param, cv=5)
g_s.fit(x_train, y_train)
# 返回最佳参数和其对应的最佳评分
g_s.best_params_, g_s.best_score_