lab:手写数字识别,训练集60000张图片
使用svm进行多分类,我使用高斯核函数,经过多次使用,返现我的lab中ovo用时62s,ovr用时65s左右,一般来说不是ovr比ovo要快的吗?为什么我的情况相反,有没有大佬帮忙分析一下
还有为什么用ovo和ovr两个在测试集上面得到的准确度一样,这两个没差别吗,QAQ
首先,关于你在手写数字识别任务中使用SVM进行多分类的疑问:
OvO(One-vs-One)和 OvR(One-vs-Rest)的运行时间差异: 通常情况下,OvO的运行时间会比OvR更长,因为OvO需要训练 $C_k^2$ 个二元分类器,其中 $C_k$ 是类别数。然而,实际的运行时间也受到数据集的特性和具体实现的影响。在你的情况下,OvO的运行时间比OvR短,这可能是由于具体的实验环境、硬件配置或数据集特性等因素。
OvO和OvR在测试集上准确度相同的原因: 在某些情况下,特别是当数据集相对均衡或类别之间的分界相对清晰时,OvO和OvR的性能可能非常接近,导致在测试集上的准确度相同。在实际应用中,它们之间的性能差异可能更加明显,尤其是在处理不平衡类别或存在重叠的类别时。
对于为什么在你的情况下结果相反,可能的原因有:
具体实现差异: 不同的机器学习库和工具包对OvO和OvR的实现可能有细微的差异,这可能导致不同的性能表现。
数据集特性: 手写数字识别的问题可能导致某些类别对于高斯核的SVM而言比较容易区分,这可能使得OvO在你的数据集上表现更好。
如果你希望更深入地了解为什么在你的实验中OvO比OvR快,你可能需要考虑具体的实验设置、数据集特性以及所使用的机器学习库的实现细节。尝试调整超参数、使用不同的核函数、检查模型的收敛情况等,可能会有助于理解这一现象。
另外,确保你的实验过程中采用了良好的交叉验证和评估方法,以确保结果的稳定性和可靠性。