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



我已经训练了一个模型,我想通过将误差除以我的数据集的测试标签来找到它的准确率(百分比)。然而,在测试标签中有一些零值,这解释了缺失的值。因此,将相应的误差除以这些值将得到无穷大。

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

上面的代码片段将打印"inf"作为输出。我应该去掉' y_test '中的0值系列。一种方法是找到该序列中零值的索引,然后在error数组中删除相应的值。

erry = np.array([errors,y_test])
现在,我想知道如何编写代码来删除ery

中第二列等于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), '%.')

最新更新