量化机器学习方法的性能



我是机器学习的新手,我刚刚完成了我的第一个方法(Random Forests(。现在我想分析一下这种方法实际上有多准确。我使用的第一个性能指标是使用以下公式计算进行了多少正确预测:

accuracy = correct predictions / total predictions * 100

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

此外,我进行了AUC测试,结果准确性为 81% .

验证模型准确性的一个好方法是运行验证集方法(就像您似乎正在做的那样(或交叉验证(K-Folds(,更多内容在这里:

https://en.wikipedia.org/wiki/Cross-validation_(统计(https://en.wikipedia.org/wiki/Training,_test,_and_validation_sets

至于变量,这似乎是一个分类问题(您的输出变量可以是 0 或 1(。

因此,一个好的方法是使用返回 0 或 1(而不是中间的东西(的分类器。如果您确实设置了随机森林进行分类,则不应为您提供此类结果。

但是,您也可以根据需要使用不同的值 (0.5 ? 0.8 ?( 设置主动权限(可以使用 ROC 曲线来帮助您确定最佳分类器(。

是的,为了准确起见,您应该将阈值设置为 0.5。 即,任何>= 0.5的预测都变为1,任何<0.5的预测变为0。当然,您也可以选择任何其他阈值。例如,对于 numpy,这可能是

class_predictions = np.where(prob_predictions >= 0.5, 1, 0)

这将返回整数 1 或 0 的数组。

最新更新