鸢尾花分类预测 python决策树
时间: 2025-05-31 21:26:42 浏览: 16
### 鸢尾花数据集分类预测
以下是使用 Python 的 `scikit-learn` 库中的决策树模型来完成鸢尾花数据集分类预测的完整代码:
#### 数据加载与预处理
首先,通过 `sklearn.datasets` 加载鸢尾花数据集,并将其划分为训练集和测试集。
```python
from sklearn.tree import DecisionTreeClassifier
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
# 加载鸢尾花数据集
iris = datasets.load_iris()
X = iris.data # 特征矩阵
y = iris.target # 标签向量
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
```
#### 构建并训练决策树模型
创建一个 `DecisionTreeClassifier` 实例,并设置参数(如最大叶节点数)。随后,在训练集上拟合模型。
```python
# 创建决策树分类器实例
clf = DecisionTreeClassifier(max_leaf_nodes=10, random_state=42)
# 训练模型
clf.fit(X_train, y_train)
```
#### 测试模型性能
利用测试集评估模型的表现,并计算准确率。
```python
# 使用测试集进行预测
y_pred = clf.predict(X_test)
# 输出模型准确率
accuracy = accuracy_score(y_test, y_pred)
print(f"模型准确率为: {accuracy:.2f}")
```
以上代码展示了完整的流程,包括数据准备、模型构建、训练以及评估[^1]。
在实际应用中,可以通过调整超参数(例如 `max_depth`, `min_samples_split`, 或者 `max_leaf_nodes`),进一步优化模型表现[^3]。
#### 关于特征选择
决策树的核心在于自动寻找最优分裂点,从而最大化信息增益或基尼指数下降幅度。这意味着它会在每次分割时尝试所有可能的特征组合,最终选出最佳划分依据[^2]。
#### 自定义纯 Python 实现
如果希望不依赖第三方库而手动实现决策树,则可以按照以下逻辑设计算法:递归地遍历每个特征及其取值范围,找到能使当前节点最纯净化的切分条件。不过这种方式较为复杂,推荐初学者先掌握基于现有框架的方法后再深入研究底层原理[^4]。
阅读全文