gpt4 book ai didi

artificial-intelligence - 帮助--LibSVM 的准确率达到 100%?

转载 作者:行者123 更新时间:2023-11-30 08:22:35 25 4
gpt4 key购买 nike

名义上这是一个好问题,但我很确定这是因为发生了一些有趣的事情......

作为上下文,我正在研究面部表情/识别空间中的一个问题,因此获得 100% 的准确度似乎令人难以置信(并不是说在大多数应用程序中这是合理的......)。我猜测数据集中存在一些一致的偏差,这使得 SVM 过于容易地得出答案,=或者=,更有可能的是,我在 SVM 方面做错了一些事情。

我正在寻找建议来帮助理解正在发生的事情 - 是我(=我对 LibSVM 的使用)吗?还是数据?

详细信息:

  • 大约 2500 个标记数据向量/实例(转换后的个人视频帧 - 总共 <20 个个人),二元分类问题。 ~900 个功能/实例。数据集比例不平衡,比例约为 1:4。
  • 运行subset.py 将数据分为测试(500 个实例)和训练(剩余)。
  • 运行“svm-train -t 0 ”。 (注意:显然不需要“-w1 1 -w-1 4”...)
  • 对测试文件运行 svm-predict。准确率=100%!

尝试过的事情:

  • 检查了大约 10 次,发现我没有通过一些无意的命令行参数错误对相同的数据文件进行训练和测试
  • 多次重新运行subset.py(即使使用-s 1)并仅训练/测试多个不同的数据集(以防我随机选择最神奇的训练/测试数据集
  • 运行一个简单的类似 diff 的检查,以确认测试文件不是训练数据的子集
  • 数据上的 svm-scale 对准确性没有影响(准确性 = 100%)。 (尽管支持向量的数量确实从 nSV=127、bSV=64 下降到 nBSV=72、bSV=0。)
  • ((奇怪))使用默认的 RBF 内核(副线性 - 即删除“-t 0”)会导致准确度变得垃圾(?!)
  • (健全性检查)使用针对未缩放数据集在缩放数据集上训练的模型运行 svm-predict 会导致准确度 = 80%(即,它总是猜测主导类)。这严格来说是一次健全性检查,以确保 svm-predict 名义上在我的机器上正常运行。

暂定结论?:

数据中的某些东西是奇怪的——不知何故,在数据集中,SVM 发现了一种微妙的、由实验者驱动的效应。

(然而,这并不能解释为什么 RBF 内核在第一次传递时会给出垃圾结果。)

非常感谢以下方面的建议:a)如何修复我对 LibSVM 的使用(如果这确实是问题)或 b)确定 LibSVM 发现的数据中哪些微妙的实验者偏差。

最佳答案

另外两个想法:

确保您没有使用相同的数据进行训练和测试。这听起来有点愚蠢,但在计算机视觉应用程序中,您应该注意:确保您没有重复数据(例如同一视频的两帧落在不同的折叠上),您不是在同一个人上进行训练和测试等等。它比听起来更微妙。

确保搜索 RBF 内核的 gamma 和 C 参数。有很好的理论(渐近)结果证明线性分类器只是一个退化的 RBF 分类器。所以你应该寻找一个好的(C,gamma)对。

关于artificial-intelligence - 帮助--LibSVM 的准确率达到 100%?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7155055/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com