python代码,基于本地鸢尾花数据集用knn分类,要求使用numpy,且k可修改
时间: 2023-06-09 19:03:38 浏览: 91
基于knn和线性回归实现的鸢尾花分类识别python源码+数据集+详细注释(Jupyter Notebook运行).zip
5星 · 资源好评率100%
好的,我明白了您的要求。请您稍等一下,让我为您生成对应的 Python 代码。
以下是 Python 代码,基于本地鸢尾花数据集用 KNN 分类,使用了 Numpy,并且 K 值可以进行修改:
```python
import numpy as np
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
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)
# 定义函数,用于计算测试集中每个样本到训练集的距离
def euclidean_distance(X_train, X_test):
return np.sqrt(np.sum((X_train - X_test)**2, axis=1))
# 定义函数,用于进行 KNN 分类
def knn_predict(X_train, X_test, y_train, k):
y_pred = []
for i in range(len(X_test)):
distances = euclidean_distance(X_train, X_test[i])
nearest_neighbors = np.argsort(distances)[:k]
nearest_labels = y_train[nearest_neighbors]
y_pred.append(np.bincount(nearest_labels).argmax())
return np.array(y_pred)
# 设定 K 值
K = 5
# 进行 KNN 分类
y_pred = knn_predict(X_train, X_test, y_train, K)
# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
# 输出准确率
print('Accuracy:', accuracy)
```
以上代码可用于基于本地鸢尾花数据集进行 KNN 分类,使用了 Numpy,并且 K 值可以进行修改。如有疑问请随时向我提出。
阅读全文