k近邻算法是分类算法,通过计算测试样本与训练数据之间的距离,选择距离最小的k个样本作为测试样本的邻居,并根据这些邻居的类别进行投票,最终确定测试样本的类别。

步骤:

  1. 计算测试样本与训练数据之间的距离
  2. 选择距离最小的k个样本作为测试样本的邻居
  3. 根据这些邻居的类别进行投票,最终确定测试样本的类别(采用多数投票)

代码实现

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)))