我有一个数据集,其中每一行代表广告/横幅展示。 某些展示属于+1级 - 这意味着用户在此次展示后点击了广告,其他则属于-1级。 数据集包含1%的+1行和99%的-1行。行总数约为600万。
我做了两次实验:
你能否告诉我每节课应该在训练集中加入多少行? 应该有多大的训练集(总计)? 如何在我的情况下正确训练模型?
答案 0 :(得分:0)
在此设置中通常会执行各种操作,称为不平衡数据。计算机科学中有许多重要的问题是这样的:搜索引擎有数百万个文档,只有少数文档与搜索词有关,人脸探测器必须在没有脸的情况下进行数百万次无法检测(自然场景和这样)。可以做很多事情。
首先,您需要稍微改变一下测量精度的方法。正如您已经看到的那样,只要说所有数据点都是负类,就可以达到99.5%的准确率,但从预测的角度来看,这个分类器仍然是无用的。
常用的一种技术是构建ROC curve或precision-recall curve以确定分类器的合理操作点。
在许多情况下,问题的目标决定了LIBSVM支持的每个类的不同权重。例如,让一个积极的东西混淆100倍,而不是让积极的东西混淆?训练SVM时可以使用w1 100 w-1 1。
当然不要忘记找到好的C(或者如果使用RBF那么好的C和伽玛)的重要性。
一般情况下,选择要训练的子集不是一件事,而是调整训练和测试机制,使其在您的设置中合理运行。