我正在使用线性SVM进行一个对剩余分类。假设我想要找到类“A”的准确性结果。当我执行“A”对“rest”时,我需要在训练过程中排除一个视频,并在我排除的视频上测试模型。我应该从A类中排除这个视频还是从所有类中排除这个视频?
换句话说,为了找到类“A”的准确性,我应该使用留一法和SVM 30次(每次精确排除类“A”中的一个视频),还是使用留一法和SVM 420次(每次精确排除所有类中的一个视频)。
我有一种感觉自己搞混了。有人可以向我提供一份正确使用留一法进行多类别分类的简短示意图吗?同时,我如何在Matlab上使用libsvm进行此操作?
数据集中的视频数量很少,因此我无法创建单独的测试集(本应发送到Neptune)。相反,我必须确保充分利用数据集,因为每个视频都提供了一些新的/独特的信息。在这种情况下,我已经阅读到人们使用留一法作为准确度的度量(当我们无法承担隔离的测试集时)。他们称之为“留出一个视频实验”。
曾经从事过动态场景识别工作的人们已经使用了这种方法来测试准确性。为了将我的方法与他们的方法进行比较,我需要使用相同的评估过程。但是,除了他们正在使用LOVO以外,没有提供更多详细信息。我是这个领域的新手,所以有点困惑。
根据我所思考的,LOVO可以通过两种方式完成:
1)排除420个视频中的一个视频。使用419个视频作为训练集来训练14个“一个对剩余”分类器。(“A”对“rest”,“B”对“rest”,……“N”对“rest”)。
使用14个分类器评估剩余视频。使用得分最高的类别标记它。因此,一个视频被分类。我们对所有420个视频采用相同的程序进行标记。使用这些420个标签,我们可以找到混淆矩阵,找出假阳性/阴性、精度、召回率等。
2) 我从14个类别中各选一个视频,这意味着我选择了406个视频进行训练和14个用于测试。使用这406个视频,我找出了14个“一对多”分类器。我在测试集中评估每一个14个视频,并根据最大置信度对它们进行标记。在下一轮中,我再次留下14个视频,每个类别一个。但这次的14个视频集与上一轮不重复。我再次训练和评估这14个视频,并找出标签。通过这种方式,我进行30次操作,每次都是一个不重复的14个视频集。最终,所有420个视频都被标记。同样,在这种情况下,我计算混淆矩阵、准确率、精度和召回率等。
除了这两种方法,LOVO可以以许多其他不同的方式进行。在有关动态场景识别的论文中,他们没有提及如何执行LOVO。可以认为他们正在使用第一种方法吗?是否有任何方法可以确定哪种方法更好?两种方法获得的准确性是否存在显著差异?
以下是一些最近的动态场景识别论文供参考,其中他们提到了LOVO。
1)http://www.cse.yorku.ca/vision/publications/FeichtenhoferPinzWildesCVPR2014.pdf
2)http://www.cse.yorku.ca/~wildes/wildesBMVC2013b.pdf
3)http://www.seas.upenn.edu/~derpanis/derpanis_lecce_daniilidis_wildes_CVPR_2012.pdf
4)http://webia.lip6.fr/~thomen/papers/Theriault_CVPR_2013.pdf
5)http://www.umiacs.umd.edu/~nshroff/DynScene.pdf