如何使用Pyml获得的分类器
我刚开始使用Python中的PyML库。按照这个教程,我做了以下操作:
from PyML import *
data = SparseDataSet("heart")
s = SVM()
s.train(data)
r = s.cv(data,5)
我得到了一个结果集r
,但是我不太明白怎么用这个结果集来对一个全新的实例进行分类。有没有经验丰富的人能帮帮我?任何建议都非常感谢。
谢谢。
1 个回答
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.test
、s.cv
或 s.stratifiedCV
方法中可以得到)。