全部,
我有两个分类器(xgboost 和光梯度增强)来预测是否是癌症。当我使用 roc_auc 作为我的评分方法时,我得到 xgboost 为 0.75,光梯度提升为 0.76。显然他们非常接近!我如何评估它们在统计上是否不同?
我使用了 mcnemars 测试:
从 mlxtend.evaluate 导入 mcnemar_table 从 mlxtend.evaluate 导入 mcnemar
lgbm_pred = second_best.predict(x_test)
xg_pred = chosen_model.predict(x_test)
tb = mcnemar_table(y_target=y_test,
y_model1=lgbm_pred,
y_model2=xg_pred)
chi2, p = mcnemar(ary=tb, corrected=True)
print('chi-squared:', chi2)
print('p-value:', p)
输出为:卡方:2.25 p 值:0.13361440253771584,所以我不会拒绝模型性能相等的空值。(希望我正确使用它,所以如果我不是,请告诉我。)
我已经看到了一些关于使用“置换测试”等的线程。但我不确定如何解释这些,而且我认为这些测试只有在你的样本量很小的情况下才适用,而我没有。
基本上我如何评估哪个分类器更好?在理想的世界中,我想要一个能够预测癌症的分类器。我可以比较模型的精度吗?什么是最好的方法 - 有没有人也知道我可以如何使用置换测试?