我刚开始学习机器学习,并且刚刚完成了我的第一个方法(随机森林
)的实现。现在我想分析这个方法的准确性。我使用的第一个性能指标是计算正确预测的数量,使用以下公式:
准确率 = 正确预测数 / 总预测数 * 100
现在,我想预测一个变量,其值为1
或0
。我的大部分预测结果介于1
和0
之间(例如0.85, 0.45, 0.95
等),因此这些预测不被视为正确预测——使用上述公式计算出的准确率为0.42%
。我知道我做了一些非常愚蠢和错误的事情。我应该将预测值四舍五入到最接近的整数,然后再计算指标吗?
另外,我运行了一个AUC
测试,结果准确率为81%
。
回答:
验证模型准确性的一种好方法是使用验证集方法(看起来你已经在这样做了)或交叉验证(K折),更多信息请参见:
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曲线来帮助你确定最佳分类器)。