分别使用KNN和决策树算法对鸢尾花数据进行分类,输出分类准确率。
时间: 2024-12-16 16:25:28 浏览: 20
使用KNN (K-Nearest Neighbors) 和决策树算法对鸢尾花数据集(Iris dataset)进行分类,通常需要以下步骤:
1. **数据准备**:
- 加载鸢尾花数据集,常见的Python库如scikit-learn有现成的load_iris函数。
- 数据分为训练集和测试集,通常80%的数据用于训练,20%用于测试。
2. **KNN算法**:
- 初始化KNN分类器(sklearn.neighbors.KNeighborsClassifier),设置好k值(通常是奇数)。
- 训练模型:使用训练集的数据和标签。
- 预测:对测试集进行预测,得出每个样本所属的类别。
- 计算分类准确率:比较预测结果和真实标签,计算正确的比例。
3. **决策树算法**:
- 同样初始化决策树分类器(sklearn.tree.DecisionTreeClassifier)。
- 训练决策树模型。
- 预测测试集,同样获取预测结果。
- 计算分类准确率。
4. **评估和比较**:
- 输出两个算法的分类准确率,对比它们的表现。
具体代码示例可能会像这样(假设已经导入了所需的库):
```python
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
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)
# KNN分类
knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(X_train, y_train)
knn_pred = knn.predict(X_test)
knn_accuracy = accuracy_score(y_test, knn_pred)
# 决策树分类
tree = DecisionTreeClassifier()
tree.fit(X_train, y_train)
tree_pred = tree.predict(X_test)
tree_accuracy = accuracy_score(y_test, tree_pred)
print("KNN分类准确率:", knn_accuracy)
print("决策树分类准确率:", tree_accuracy)
```
阅读全文