我是机器学习的新手,我刚刚完成了我的第一种方法(随机森林)。现在我想分析一下这种方法的准确程度。我使用的第一个性能指标是使用以下公式计算正确预测的数量:
accuracy = correct predictions / total predictions * 100
现在,我想预测一个值为1
或0
的变量。我的大多数预测属于1
和0
(0.85, 0.45, 0.95 etc..)
之间的范围,因此这些不被认为是正确的预测 - 使用上述结果导致0.42%
的准确度式。我知道我做的事情非常愚蠢和错误。我应该将预测值舍入到最接近的整数,然后计算指标吗?
此外,我进行了AUC
测试,结果是81%
的准确度。
答案 0 :(得分:1)
验证模型准确性的一个好方法是运行验证集方法(如您所做的那样)或交叉验证(K-Folds),更多内容如下:
https://en.wikipedia.org/wiki/Cross-validation_(statistics) https://en.wikipedia.org/wiki/Training,_test,_and_validation_sets
对于变量,这似乎是一个分类问题(您的输出变量可以是0或1)。
因此,一个好的方法是使用返回0或1(而不是中间的东西)的分类器。如果您将其设置为分类,则随机森林不应该给您这样的结果。
但是,您也可以根据需要设置不同值(0.5?0.8?)的阈值(您可以使用ROC曲线来帮助您确定最佳分类器。)
答案 1 :(得分:0)
是的,对于accurcay,您应该在0.5的阈值。即任何> = 0.5的预测变为1,任何预测都是< 0.5变为0.当然,您也可以选择任何其他阈值。例如。 numpy这可能是
class_predictions = np.where(prob_predictions >= 0.5, 1, 0)
这将返回整数1或0的数组。