我尝试在OpenCV上使用SVM进行分类多类化(我使用openCV for python)。假设我有5个课程并且训练得很好。我一直在测试,结果很好。
当来自第6类的对象进入此分类时出现问题。虽然我以前没有训练过这门课,为什么我得到结果这个对象(来自第6课)认出来自我之前训练过的一个班级的对象(它被归类为第1或第2类的成员,等等)。虽然机器应该说从哪个班级都不知道它。 OpenCV的SVM没有返回概率,它只返回类的标签。
我有一个想法,它进行2次分类。首先使用biner分类,将所有样本作为训练集。其次,我把它归类为多类。 但问题是,我怎么能找到第一个分类的负样本,而我却不知道另一个对象(假设来自第6或第7类)。任何人都可以帮助我,我该怎么办?我应该使用哪些样品作为阴性样品?这是个好主意还是愚蠢的想法?还有其他方法可以解决这个问题吗?
答案 0 :(得分:1)
经典的SVM确实将n维特征空间与平面分开。这意味着空间中的每个点都位于其中一个分区中,因此属于其中一个训练过的类。没有异常检测。
然而,还有一类SVM 的概念,它试图封装“已知”空间并分类为“已知”和“未知”。 libSVM包也有概率,您可以尝试分析是否有帮助。您还可以尝试其他分类概念来检测最近邻居
等异常值