运行KNN步态分类代码报错AttributeError: 'dict' object has no attribute 'data'求助
错误原因
AttributeError: 'dict' object has no attribute 'data' 报错的核心原因是你手动构造的gait_dt是Python原生字典类型,不支持点语法(.属性名)访问字典键值,只能用字典名['键名']的方式取值,代码里所有对gait_dt用点访问的位置都是错误触发点。
需要修改的代码位置
- 第一个错误位置:训练集加载循环的append行
原代码:
修改为:m_knn.gaits.append(GaitData(gait_dt.data[iter], gait_dt.target[iter]))m_knn.gaits.append(GaitData(gait_dt['data'][iter], gait_dt['target'][iter])) - 第二个错误位置:测试循环里构造GaitData的参数
原代码:
修改为:GaitData(gait_dt[iter], target[iter])GaitData(gait_dt['data'][iter], gait_dt['target'][iter]) - 第三个错误位置:打印真实类别时的target_names访问
原代码:
修改为:gait_dt.target_names[target[iter]]gait_dt['target_names'][int(gait_dt['target'][iter])]
额外说明
你当前的加权投票逻辑是按照鸢尾花三类分类写的,但你数据集的标签只有正常、异常两类,解决报错后可以自行调整投票逻辑适配二分类场景。
内容的提问来源于stack exchange,提问作者심자연
相关产品推荐
相关产品推荐

