如何使用Pyml得到的分类器
我是 Python 中 PyML 的新用户。使用 教程,我执行了以下操作:
from PyML import *
data = SparseDataSet("heart")
s = SVM()
s.train(data)
r = s.cv(data,5)
我得到了结果集 r
,但我不明白如何使用这个结果集来用Python对一个全新的实例进行分类。有更有经验的人可以帮助我吗?任何建议将不胜感激。
谢谢。
I am a new user of PyML in Python. Using the tutorial, I did the following:
from PyML import *
data = SparseDataSet("heart")
s = SVM()
s.train(data)
r = s.cv(data,5)
I got the resultset r
, but I don't understand how to use this resultset to classify a totally new instance with Python. Can anyone more experienced help me? Any suggestions will be appreciated.
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在 r = s.sv(data,5) 中,您正在进行交叉验证,用于通过在数据集的不同部分上训练和测试 5 次来衡量分类器性能。当您的目标是对新实例进行分类时,这不是必需的。
要对新实例进行分类,您最好将它们放在不同的数据集中,并在训练后使用 SVM 对象的测试方法:
然后您将在 testDataset 中获得对新实例进行分类的结果。
使用 s.test() 的一个选项是使用 s.classify(data, i) 和 s.decisionFunc(data, i)用于在训练后对各个数据点进行分类,但在教程文档中不建议这样做,因为您将无法获得结果对象中包含的额外结果信息(就像从
s.test
中获得的那样,s.cv
或s.stratifiedCV
方法)。In
r = s.sv(data,5)
you are doing crossvalidation, which is used to measure classifier performance by training and testing 5 times on different parts of the dataset. This is not necessary when your objective is to classify new instances.To classify new instances, you should preferably have these in a different dataset and use the test method of the SVM object after training:
You will then have the results from classifying new instances in testDataset.
An option to using
s.test()
is to uses.classify(data, i)
ands.decisionFunc(data, i)
for classifying individual data points after training, but this is not recommended in the tutorial documentation as you will not get the extra result information contained in a result object (like you get froms.test
,s.cv
ors.stratifiedCV
methods).