我目前正在研究来自 Kaggle 的 Titanic 数据集。数据集不平衡,几乎 61.5% 的负类和 38.5% 的正类。
我将我的训练数据集分为 85% 的训练集和 15% 的验证集。我选择了一个支持向量分类器作为模型。我在训练集上做了 10-fold Stratified cross-validation,我试图找到最佳阈值来最大化每个折叠的 f1 分数。平均在验证折叠上获得的所有阈值,阈值的平均值为 35% +/- 10%。
之后,我在验证集上测试了模型,并估计了在验证集上最大化 F1 分数的阈值。验证集的阈值约为 63%,与交叉验证时得到的阈值相差甚远。
我在 Kaggle 的保持测试集上测试了模型,但我无法在两个阈值上都获得好分数(35% 来自训练集的交叉验证,63% 来自验证集。)
如何从可用数据集中确定可以很好地处理看不见的数据的最佳阈值?我是选择从交叉验证获得的阈值还是从验证集获得的阈值?还是我做错了?我将不胜感激有关此的任何帮助和建议。
对于这个数据集,我希望通过获得最高精度来最大化我在记分板上的分数。
谢谢你。