如何使用Pyml获得的分类器

时间:2011-04-27 22:08:47

标签: python dataset svm libsvm pyml

我是Python中PyML的新用户。使用the tutorial,我执行了以下操作:

from PyML import *
data = SparseDataSet("heart")
s = SVM()
s.train(data) 
r = s.cv(data,5)

我得到了结果集r,但我不明白如何使用这个结果集来用Python对一个全新的实例进行分类。任何更有经验的人能帮助我吗?任何建议将不胜感激。

感谢。

1 个答案:

答案 0 :(得分:1)

r = s.sv(data,5)中,您正在进行交叉验证,该验证用于通过在数据集的不同部分上进行5次训练和测试来衡量分类器性能。当您的目标是对新实例进行分类时,这不是必需的。

要对新实例进行分类,最好将它们放在不同的数据集中,并在训练后使用SVM对象的测试方法:

s = SVM()
s.train(trainingDataset)
r = s.test(testDataset)

然后,您将获得在testDataset中对新实例进行分类的结果。 使用s.test()的一个选项是使用s.classify(data, i)s.decisionFunc(data, i)在培训后对各个数据点进行分类,但在教程文档中不建议这样做,因为您不会获得包含的额外结果信息在结果对象中(例如,您来自s.tests.cvs.stratifiedCV方法)。