我试图使用二进制支持向量机对某些像素进行分类。我的训练数据库由28个数据文件组成,有两个类,class1的像素数为16571,class2的像素数为313.
测试数据(每个文件)有大约600个像素,只有6-10个像素是第2类的成员,其余像素在class1中。
我的问题是,在训练之后,当我尝试对数据进行分类时,SVM会对class1中的所有像素进行分类。
我认为这可能是因为它从class2中看到了很少的样本。但是可用数据文件的数量是有限的(大约35个数据文件)。
我如何训练svm并获得合理的结果?
感谢您的帮助。
答案 0 :(得分:0)
SVM可能确实对列车组大小的巨大差异很敏感。我建议尝试以下两种方法:
通过抽样限制1级列车的集合,使其大小与2级大小相当,并检查是否有任何改进(2级大小的1X到10X之间的大小可能适合)。
< / LI>使用SVM的'cost'参数(例如,使用'J'参数在SVMLight中),它可以帮助平衡各种类。
你当然可以同时使用这两种方法,即稍微限制第1类列车数据的大小,然后使用成本参数进一步平衡类。