如何使用Pyml获得的分类器

3 投票
1 回答
1007 浏览
提问于 2025-04-16 16:33

我刚开始使用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.tests.cvs.stratifiedCV 方法中可以得到)。

撰写回答