python使用KNN实现鸢尾花数据集
时间: 2024-09-18 12:03:59 浏览: 75
在Python中,我们可以使用scikit-learn库来实现K-近邻(K-Nearest Neighbors, KNN)算法处理鸢尾花数据集。鸢尾花数据集是一个经典的机器学习示例,它包含150个样本,每个样本有4个特征(花瓣长度、花瓣宽度、萼片长度和萼片宽度),共分为三种鸢尾花类别:山鸢尾(Iris setosa)、维吉尼亚鸢尾(Iris versicolor)和洋红鸢尾(Iris virginica)。
以下是使用KNN实现鸢尾花分类的一个简单步骤:
1. 导入所需库:
```python
import numpy as np
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score
```
2. 加载鸢尾花数据集:
```python
iris = datasets.load_iris()
X = iris.data # 特征
y = iris.target # 类别标签
```
3. 数据预处理(分割训练集和测试集):
```python
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
```
4. 创建并训练KNN模型:
```python
knn = KNeighborsClassifier(n_neighbors=3) # 通常选择3作为K值,表示最近的三个邻居
knn.fit(X_train, y_train)
```
5. 预测测试集并计算准确率:
```python
y_pred = knn.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy}")
```
阅读全文