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