cart决策树剪枝操作python代码
时间: 2023-06-21 14:16:10 浏览: 164
下面是使用Python实现CART决策树的预剪枝和后剪枝的代码示例:
1. 预剪枝
```python
from sklearn.tree import DecisionTreeClassifier
# 构建决策树模型,设置最大深度和最小样本数
clf = DecisionTreeClassifier(max_depth=5, min_samples_leaf=5)
# 训练决策树模型
clf.fit(X_train, y_train)
# 预测测试集
y_pred = clf.predict(X_test)
```
在上述代码中,我们使用scikit-learn库中的DecisionTreeClassifier类构建决策树模型,并设置最大深度和最小样本数作为预剪枝条件。然后,我们使用训练集训练模型,并使用测试集进行预测。
2. 后剪枝
```python
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import cross_val_score
# 构建决策树模型
clf = DecisionTreeClassifier()
# 使用交叉验证对决策树进行后剪枝
max_score = 0
for i in range(1, 11):
# 设置剪枝参数
clf.set_params(max_depth=i)
# 进行交叉验证
scores = cross_val_score(clf, X_train, y_train, cv=5)
# 计算平均得分
mean_score = scores.mean()
# 更新最优模型
if mean_score > max_score:
max_score = mean_score
best_clf = clf
# 训练最优模型
best_clf.fit(X_train, y_train)
# 预测测试集
y_pred = best_clf.predict(X_test)
```
在上述代码中,我们首先构建决策树模型,并使用交叉验证确定最优的剪枝参数(最大深度)。然后,我们使用最优的剪枝参数训练模型,并使用测试集进行预测。
阅读全文