微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从python中的测试标签中删除零值

如何解决从python中的测试标签中删除零值

我已经训练了一个模型,我想通过将误差除以我的数据集的测试标签来找到它的准确率。但是,测试标签中有一些零值,这说明了缺失值。因此,将相应的误差除以这些值将导致无穷大。

mape = 100 * (errors / y_test)
# Calculate and display accuracy
accuracy = 100 - np.mean(mape)
print('Accuracy:',round(accuracy,2),'%.')

上面的代码片段将打印“inf”作为输出。我应该以某种方式摆脱“y_test”系列中的零值。一种方法是找到该系列中零值的索引,然后删除error 数组中的相应值。

erry = np.array([errors,y_test])

现在,我想知道如何编写代码删除 erry 中第二列等于 0 的元素?

如果你知道一些更明智的方法来计算模型精度同时注意缺失值,请指出

解决方法

我会使用 y_test 为两个数组创建一个布尔索引:

idx = y_test != 0
mape = 100 * (errors[idx] / y_test[idx])
# Calculate and display accuracy
accuracy = 100 - np.mean(mape)
print('Accuracy:',round(accuracy,2),'%.')

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。