我是机器学习的初学者,我正面临一种情况。我正在使用 IPinYou 数据集解决实时出价问题,并且正在尝试进行点击预测。
问题是,您可能知道,数据集非常不平衡:大约 1300 个负例(非点击)对应 1 个正例(点击)。
这就是我所做的:
- 加载数据
- 将数据集分成 3 个数据集:A = 训练 (60%) B = 验证 (20%) C = 测试 (20%)
- 对于每个数据集(A、B、C),对每个负类进行欠采样,以使比率为 5(5 个负例对应 1 个正例)。这给了我 3 个更平衡的新数据集:A' B' C'
然后我用数据集 A' 和逻辑回归训练我的模型。
我的问题是:
我必须使用哪个数据集进行验证?B 还是 B'?
我必须使用哪个数据集进行测试?C 或 C'
哪些指标与评估我的模型最相关?F1Score 似乎是一个很好用的指标。但是这里由于不平衡类(如果我使用数据集 B 和 C),精度很低(低于 0.20),并且 F1Score 受低召回率/精度的影响很大。使用 aucPR 或 aucROC 会更准确吗?
如果我想绘制学习曲线,我应该使用哪些指标?(如果我使用 B' 数据集进行验证,则知道 %error 不相关)
在此先感谢您的时间 !
问候。