k近邻算法是分类算法,通过计算测试样本与训练数据之间的距离,选择距离最小的k个样本作为测试样本的邻居,并根据这些邻居的类别进行投票,最终确定测试样本的类别。
步骤:
- 计算测试样本与训练数据之间的距离
- 选择距离最小的k个样本作为测试样本的邻居
- 根据这些邻居的类别进行投票,最终确定测试样本的类别(采用多数投票)
代码实现
def k_nearest_neighbors(X, y, test_sample, k):
distances = np.linalg.norm(X - test_sample.T, axis=1)
nearest_indices = np.argsort(distances)[:k]
nearest_labels = y[nearest_indices]
return int(np.round(np.mean(nearest_labels)))