量化机器学习方法的性能

时间:2018-03-06 09:19:18

标签: python performance machine-learning random-forest

我是机器学习的新手,我刚刚完成了我的第一种方法(随机森林)。现在我想分析一下这种方法的准确程度。我使用的第一个性能指标是使用以下公式计算正确预测的数量:

accuracy = correct predictions / total predictions * 100

现在,我想预测一个值为10的变量。我的大多数预测属于10 (0.85, 0.45, 0.95 etc..)之间的范围,因此这些不被认为是正确的预测 - 使用上述结果导致0.42%的准确度式。我知道我做的事情非常愚蠢和错误。我应该将预测值舍入到最接近的整数,然后计算指标吗?

此外,我进行了AUC测试,结果是81%的准确度。

2 个答案:

答案 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的数组。