KNN算法进行鸢尾花数据分类优化代码
时间: 2023-07-05 17:10:20 浏览: 105
好的,下面是KNN算法对鸢尾花数据进行分类的优化代码:
```python
import numpy as np
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
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.3, random_state=42)
# 定义K值列表
k_list = range(1, 31)
# 定义最高准确率和对应的K值
best_score = 0
best_k = 0
# 遍历不同的K值
for k in k_list:
# 定义KNN分类器
knn = KNeighborsClassifier(n_neighbors=k)
# 训练模型
knn.fit(X_train, y_train)
# 预测测试集
y_pred = knn.predict(X_test)
# 计算准确率
score = accuracy_score(y_test, y_pred)
# 更新最高准确率和对应的K值
if score > best_score:
best_score = score
best_k = k
# 输出最高准确率和对应的K值
print("Best k: ", best_k)
print("Best score: ", best_score)
```
该代码使用了sklearn库中的KNeighborsClassifier类来实现KNN算法,同时使用了train_test_split和accuracy_score函数来划分数据集和计算模型准确率。在遍历不同的K值时,通过更新最高准确率和对应的K值来找到最优解。
阅读全文