将代码分为1.数据集的准备 2.模型的选择 3.K-近邻分类模型的性能评价 4.K-近邻分类模型的使用进行编写实现4折鸢尾花分类的K-近邻模型
时间: 2024-10-22 21:07:06 浏览: 15
以下是将K-近邻(KNN)分类应用于鸢尾花数据集的4步骤代码实现:
**1. 数据集的准备:**
```python
import numpy as np
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
# 加载鸢尾花数据集
iris_data = load_iris()
X = iris_data['data']
y = iris_data['target']
# 划分训练集和测试集(70%训练,30%测试)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
```
**2. 模型的选择:**
```python
from sklearn.neighbors import KNeighborsClassifier
# 创建KNN分类器,默认的k值是5
knn_classifier = KNeighborsClassifier(n_neighbors=5)
```
**3. K-近邻分类模型的性能评价:**
```python
from sklearn.model_selection import cross_val_score
# 使用交叉验证评估模型性能(4折)
cv_scores = cross_val_score(knn_classifier, X_train, y_train, cv=4, scoring='accuracy')
mean_accuracy = cv_scores.mean()
std_dev = cv_scores.std() # 可以得到标准差用于衡量稳定性
print(f"4折交叉验证的平均准确率:{mean_accuracy}")
print(f"精度的标准偏差:{std_dev}")
```
**4. K-近邻分类模型的使用:**
```python
# 拟合模型到训练数据
knn_classifier.fit(X_train, y_train)
# 预测测试集结果
y_pred = knn_classifier.predict(X_test)
```
阅读全文