- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对如何在多类别一v / s休息分类的情况下如何使用留一法(LOO)方法来计算准确性感到困惑。
我正在使用YUPENN动态场景识别数据集,该数据集包含14个类别,每个类别中有30个视频(总共420个视频)。让我们将这14个类别命名为{A,B,C,D,E,F,G,H,I,J,K,L,M,N}。
我正在将线性SVM用于一个v / s休息分类。
可以说我想找到“ A”级的准确性结果。当我执行“ A”相对于“休息”时,我需要在训练时排除一个视频并在排除的视频上测试模型。我排除的该视频应该来自A类还是来自所有班级。
换句话说,为了找到“ A”类的准确性,我应该使用LOO执行30次SVM(将“ A”类中的每个视频完全保留一次)还是应该执行420次(所有类中的视频仅保留一次)? )。
我觉得我把这些混在一起了?谁能为我提供使用LOO进行多类分类的正确方法的简短示意图?
另外,如何在Matlab上使用libsvm执行此操作?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~
数据集中的视频数量很少,因此我无力创建单独的TEST集(应该将其发送给Neptune)。相反,我必须确保充分利用数据集,因为每个视频都提供一些新的/唯一的信息。在这样的场景中,我读到人们使用LOO来衡量准确性(当我们无法负担孤立的TEST集时)。他们称其为“留一视频播放实验”。
进行动态场景识别的人员已使用此方法测试准确性。为了将我的方法与他们的方法的准确性进行比较,我需要使用相同的评估过程。但是他们刚刚提到他们使用LOVO来提高准确性。除此之外,没有提供太多细节。我是该领域的新手,因此有点令人困惑。
根据我的想法,LOVO可以通过两种方式完成:
1)在420个视频中保留一个视频。使用419个视频作为训练集来训练14个``单-v / s-休息''分类器。 N'v / s“休息”)。
使用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
最佳答案
使用交叉验证时,请记住它适用于训练模型,而不是通常应用于诚实,全面的准确性度量,而保留这些度量用于度量训练过程中完全没有涉及或完全没有涉及的测试集的分类准确性。
让我们仅关注计划构建的单个分类器。 “ A vs. rest”分类器。您将把所有数据分成一个训练集和一个测试集,然后将测试集放在一个纸板箱中,装订起来,用胶带覆盖,放到钛金库中,并将其附加到NASA火箭上,然后将其存放在冰封的海王星海洋中。
然后让我们看一下训练集。当我们使用训练套件进行训练时,我们希望将一些训练数据留在一边,仅用于校准,而不是作为正式的海王星海洋测试套件的一部分。
因此,我们可以做的就是告诉每个数据点(在您的情况下,数据点似乎是一个视频值对象)停顿一次。我们不在乎它是否来自A类。因此,如果仅在“ A vs. rest”分类器的训练集中使用420个视频,那么您将适合420个不同的SVM。
实际上,如果要调整SVM的参数,则可以在此处进行。例如,如果您尝试选择多项式内核中的惩罚项或系数之类的东西,那么您将针对您想要的所有参数组合重复整个训练过程(是的,所有420种不同的训练过的SVM)。搜索。对于每个参数集合,您将与之相关联,这些信息来自420个受LOO训练的分类器的准确性得分之和。
完成所有步骤后,您选择具有最佳LOO得分的参数集,瞧,这就是您的“ A vs. rest”分类器。冲洗并重复“ B vs. rest”,依此类推。
随着所有这些的进行,理应非常担心您过度拟合了数据。尤其是如果必须在每个班级中重复许多“负”样本。
但是,这就是为什么您将测试集发送给海王星的原因。完成所有基于LOO的参数扫描SVM并完成最终分类器后,现在您将在整个实际测试集中执行该分类器(来自Neptune),这将告诉您整个过程是否正在显示对看不见的数据进行预测的功效。
整个练习显然在计算上是昂贵的。因此,人们有时会使用“ Leave-P-Out”(P远大于1),而不是重复该过程直到所有样本都花了一些时间才离开了小组,他们只是将其重复“合理”。次数,对于各种定义都是合理的。
在“离开-离开”的情况下,有一些算法可以使您采样以公平地表示类的方式遗漏的点。因此,如果“ A”样本占数据的40%,则您可能希望它们占据遗留集的40%。
这实际上不适用于LOO,这有两个原因:(1)您几乎总是要在每个训练数据点上执行LOO,因此,如果它们都将要结束,则尝试以奇特的方式对其进行采样将是无关紧要的。最多只能使用一次。 (2)如果计划使用LOO的次数小于样本数量(通常不建议使用),则仅从集合中随机抽取点自然会反映类的相对频率,因此如果您计划进行K次LOO,然后简单地从训练集的大小为K的随机子样本中进行定期的LOO就足够了。
关于machine-learning - 多分类准确度高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26289924/
基本上,我的问题是,由于无监督学习是机器学习的一种,是否需要机器“学习”的某些方面并根据其发现进行改进?例如,如果开发了一种算法来获取未标记的图像并找到它们之间的关联,那么它是否需要根据这些关联来改进
生成模型和判别模型似乎可以学习条件 P(x|y) 和联合 P(x,y) 概率分布。但从根本上讲,我无法说服自己“学习概率分布”意味着什么。 最佳答案 这意味着您的模型要么充当训练样本的分布估计器,要么
是否有类似于 的 scikit-learn 方法/类元成本 在 Weka 或其他实用程序中实现的算法以执行常量敏感分析? 最佳答案 不,没有。部分分类器提供 class_weight和 sample_
是否Scikit-learn支持迁移学习?请检查以下代码。 型号 clf由 fit(X,y) 获取 jar 头型号clf2在clf的基础上学习和转移学习 fit(X2,y2) ? >>> from s
我发现使用相同数据的两种交叉验证技术之间的分类性能存在差异。我想知道是否有人可以阐明这一点。 方法一:cross_validation.train_test_split 方法 2:分层折叠。 具有相同
我正在查看 scikit-learn 文档中的这个示例:http://scikit-learn.org/0.18/auto_examples/model_selection/plot_nested_c
我想训练一个具有很多标称属性的数据集。我从一些帖子中注意到,要转换标称属性必须将它们转换为重复的二进制特征。另外据我所知,这样做在概念上会使数据集稀疏。我也知道 scikit-learn 使用稀疏矩阵
我正在尝试在 scikit-learn (sklearn.feature_selection.SelectKBest) 中通过卡方方法进行特征选择。当我尝试将其应用于多标签问题时,我收到此警告: 用户
有几种算法可以构建决策树,例如 CART(分类和回归树)、ID3(迭代二分法 3)等 scikit-learn 默认使用哪种决策树算法? 当我查看一些决策树 python 脚本时,它神奇地生成了带有
我正在尝试在 scikit-learn (sklearn.feature_selection.SelectKBest) 中通过卡方方法进行特征选择。当我尝试将其应用于多标签问题时,我收到此警告: 用户
有几种算法可以构建决策树,例如 CART(分类和回归树)、ID3(迭代二分法 3)等 scikit-learn 默认使用哪种决策树算法? 当我查看一些决策树 python 脚本时,它神奇地生成了带有
有没有办法让 scikit-learn 中的 fit 方法有一个进度条? 是否可以包含自定义的类似 Pyprind 的内容? ? 最佳答案 如果您使用 verbose=1 初始化模型调用前 fit你应
我正在使用基于 rlglue 的 python-rl q 学习框架。 我的理解是,随着情节的发展,算法会收敛到一个最优策略(这是一个映射,说明在什么状态下采取什么行动)。 问题 1:这是否意味着经过若
我正在尝试使用 grisSearchCV 在 scikit-learn 中拟合一些模型,并且我想使用“一个标准错误”规则来选择最佳模型,即从分数在 1 以内的模型子集中选择最简约的模型最好成绩的标准误
我正在尝试离散数据以进行分类。它们的值是字符串,我将它们转换为数字 0,1,2,3。 这就是数据的样子(pandas 数据框)。我已将数据帧拆分为 dataLabel 和 dataFeatures L
每当我开始拥有更多的类(1000 或更多)时,MultinominalNB 就会变得非常慢并且需要 GB 的 RAM。对于所有支持 .partial_fit()(SGDClassifier、Perce
我需要使用感知器算法来研究一些非线性可分数据集的学习率和渐近误差。 为了做到这一点,我需要了解构造函数的一些参数。我花了很多时间在谷歌上搜索它们,但我仍然不太明白它们的作用或如何使用它们。 给我带来更
我知道作为功能 ordinal data could be assigned arbitrary numbers and OneHotEncoding could be done for catego
这是一个示例,其中有逐步的过程使系统学习并对输入数据进行分类。 它对给定的 5 个数据集域进行了正确分类。此外,它还对停用词进行分类。 例如 输入:docs_new = ['上帝就是爱', '什么在哪
我有一个 scikit-learn 模型,它简化了一点,如下所示: clf1 = RandomForestClassifier() clf1.fit(data_training, non_binary
我是一名优秀的程序员,十分优秀!