【问题标题】:How to use the classifier obtained by PymlPyml得到的分类器如何使用
【发布时间】:2011-08-14 06:00:04
【问题描述】:

我是 Python 中 PyML 的新用户。使用the tutorial,我做了以下事情:

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

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

谢谢。

【问题讨论】:

    标签: python dataset svm libsvm pyml


    【解决方案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 方法获得)。

    【讨论】:

    • 如果你想检查每个数据点被预测为什么类,你需要使用 r.getPredictedLabels()
    • 抱歉重温一下,但在我看来 s.test 不能用于对新实例进行分类。另外,s.classify, s.decisionFunc 中的参数 i 是什么?
    猜你喜欢
    • 2021-07-29
    • 2023-04-01
    • 2013-04-01
    • 2013-08-17
    • 2020-01-08
    • 2018-08-28
    • 1970-01-01
    • 2015-09-27
    • 2012-04-02
    相关资源
    最近更新 更多