Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Machine learning 如何为LibSVM选择合适的训练数据?_Machine Learning_Svm_Libsvm - Fatal编程技术网

Machine learning 如何为LibSVM选择合适的训练数据?

Machine learning 如何为LibSVM选择合适的训练数据?,machine-learning,svm,libsvm,Machine Learning,Svm,Libsvm,我有一个数据集,其中每一行代表广告/横幅印象。 一些印象属于+1类-这意味着用户在这个印象之后点击了广告,其他的属于-1类。 数据集包含1%的+1行和99%的-1行。总行数约为600万行 我做了两个实验: 当我将数据集分成两个大小相同的部分时,我得到99,95% 总精度,但+1级的精度为0% 当我拿走一半的时候 +将1行添加到训练集中,并附加相同数量的-1行(因此训练集中包含50%的+1行和50%的-1行),然后将其余的 测试数据中+1行的一部分和-1行的另一部分 设置-我获得95%的准确率。但

我有一个数据集,其中每一行代表广告/横幅印象。 一些印象属于+1类-这意味着用户在这个印象之后点击了广告,其他的属于-1类。 数据集包含1%的+1行和99%的-1行。总行数约为600万行

我做了两个实验:

  • 当我将数据集分成两个大小相同的部分时,我得到99,95% 总精度,但+1级的精度为0%
  • 当我拿走一半的时候 +将1行添加到训练集中,并附加相同数量的-1行(因此训练集中包含50%的+1行和50%的-1行),然后将其余的 测试数据中+1行的一部分和-1行的另一部分 设置-我获得95%的准确率。但是当我试着用火车模型 更大的数据集(99%的-1行和1%的+1行)-我只得到了3% 精度不足以满足生产使用
  • 你能告诉我每节课我应该在训练集中放多少行吗? 培训集(总共)应该有多大?
    在我的例子中,如何正确地训练模型?

    在这种设置中,通常会做很多事情,称为不平衡数据。计算机科学中有许多重要的问题是这样的:搜索引擎有数百万个文档,只有少数与搜索词相关,人脸检测器必须在没有人脸的地方(自然场景等)进行数百万次无检测。可以做很多事情

    第一件事是你需要改变一下你测量准确度的方式。正如您已经看到的,只要说所有数据点都是负类,就可以获得99.5%的准确率,但是从预测的角度来看,这个分类器是绝对无用的

    一种常用的技术是构建或确定分类器的合理操作点

    在许多情况下,问题的目标决定了LIBSVM支持的每个类的不同权重。例如,将正片和负片混淆比将负片和正片混淆要贵100倍吗?训练SVM时,可以使用w1 100 w-1 1

    当然,不要忘记找到一个好的C(或者如果使用RBF,找到一个好的C和gamma)的重要性

    一般来说,这不是选择要训练的子集,而是调整训练和测试机制,使其在设置中合理工作