python实现k近邻实验判断瓜是否是好瓜的代码
时间: 2023-08-28 21:03:42 浏览: 142
下面是用Python实现k近邻算法来判断瓜是否是好瓜的示例代码:
```python
import numpy as np
# 定义特征和标签
X = np.array([
[1, 1, 0, 1],
[1, 1, 0, 0],
[0, 0, 1, 1],
[1, 1, 1, 1],
[0, 1, 0, 1],
[1, 0, 0, 0],
[0, 1, 1, 0],
[0, 1, 1, 1]
])
Y = np.array(['坏瓜', '坏瓜', '好瓜', '好瓜', '好瓜', '坏瓜', '好瓜', '好瓜'])
# 定义距离度量
def euclidean_distance(x1, x2):
return np.sqrt(np.sum((x1 - x2)**2))
# 定义k近邻算法
def knn(X_train, Y_train, X_test, k=3):
# 计算测试样本与所有训练样本之间的距离
distances = [euclidean_distance(X_test, x) for x in X_train]
# 找出距离最小的k个训练样本的标签
k_nearest_labels = [Y_train[i] for i in np.argsort(distances)[:k]]
# 计算k个训练样本中标签的出现次数
counts = np.bincount(k_nearest_labels.astype('int'))
# 返回出现次数最多的标签
return np.argmax(counts)
# 测试
x_test = np.array([1, 0, 0, 1])
y_pred = knn(X, Y, x_test, k=3)
print('预测结果:', y_pred)
```
上述代码中,我们首先定义了瓜的特征X和标签Y。然后,定义了欧氏距离作为距离度量,并实现了k近邻算法。最后,我们将一个测试样本x_test传递给knn函数,预测其类别。在这个例子中,我们选择了k=3作为参数。
阅读全文