题解|k近邻算法
k近邻算法
https://www.nowcoder.com/practice/0b71bebe172f46feaedf8a5d5ed32be1?tpId=377&tags=&title=&difficulty=&judgeStatus=&rp=0&sourceUrl=%2Fexam%2Foj&gioEnter=menu
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)))
查看30道真题和解析