决策树模型——鸢尾花分类 剪枝前后正确率
时间: 2024-01-06 08:05:28 浏览: 111
基于决策树的鸢尾花分类
决策树模型是一种常用的分类算法,可以用于鸢尾花分类。剪枝是为了解决过拟合问题而进行的一种策略。在剪枝之前和剪枝之后,我们可以通过交叉验证来评估模型的正确率。
下面是一个示例代码,演示了使用决策树模型对鸢尾花数据集进行分类,并比较了剪枝前后的正确率:
```python
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
# 加载鸢尾花数据集
iris = load_iris()
X = iris.data
y = iris.target
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 构造决策树模型(剪枝前)
clf_before_pruning = DecisionTreeClassifier()
clf_before_pruning.fit(X_train, y_train)
# 预测并计算剪枝前的正确率
y_pred_before_pruning = clf_before_pruning.predict(X_test)
accuracy_before_pruning = accuracy_score(y_test, y_pred_before_pruning)
# 构造决策树模型(剪枝后)
clf_after_pruning = DecisionTreeClassifier(ccp_alpha=0.1) # ccp_alpha为剪枝参数
clf_after_pruning.fit(X_train, y_train)
# 预测并计算剪枝后的正确率
y_pred_after_pruning = clf_after_pruning.predict(X_test)
accuracy_after_pruning = accuracy_score(y_test, y_pred_after_pruning)
print("剪枝前的正确率:", accuracy_before_pruning)
print("剪枝后的正确率:", accuracy_after_pruning)
```
运行以上代码,可以得到剪枝前和剪枝后的正确率。剪枝后的正确率可能会有所下降,但剪枝可以减少过拟合问题,提高模型的泛化能力。
阅读全文