我是 Python 中 PyML 的新用户。使用教程,我做了以下事情:
from PyML import *
data = SparseDataSet("heart")
s = SVM()
s.train(data)
r = s.cv(data,5)
我得到了结果集r
,但我不明白如何使用这个结果集用 Python 对一个全新的实例进行分类。有经验的人可以帮帮我吗?任何建议将不胜感激。
谢谢。
在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
)。