K近邻(k nearest Neighbors)预测函数测试失败排查求助
问题排查:数组索引越界错误

predict函数本身运行正常,模型整体成功率达75%,但编写测试用例验证它是否能返回正确结果(1)时,触发如下错误:
outcomes = np.append(outcomes, y_train[n]) IndexError: index 160 is out of bounds for axis 0 with size 3
错误核心原因
你尝试用索引160访问仅包含3个元素的y_train数组,超出了数组的有效索引范围(有效索引为0、1、2)。
排查方向
- 检查测试用例中
n的取值逻辑:是否误将测试样本的索引直接套用在y_train上?比如测试用例里的样本序号是160,但y_train只有3个元素,必然导致越界。 - 核对predict函数的参数传递:测试场景下传入的参数是否让函数内部错误引用了
y_train的错误索引?比如函数内的n来自外部测试用例的索引值,但未做范围校验。 - 确认
y_train的定义:测试环境中的y_train是否被意外重新赋值为长度为3的数组?是否和模型训练时使用的y_train不是同一对象?
内容的提问来源于stack exchange,提问作者hels
相关产品推荐
相关产品推荐

