【问题标题】:why we use training data in weka evaluation function?为什么我们在 weka 评估函数中使用训练数据?
【发布时间】:2016-09-10 10:13:47
【问题描述】:

我正在使用 weka 进行分类。我正在使用不同的训练和测试数据集。我注意到在评估测试数据集时,我们在评估函数中使用训练数据。有谁知道我们为什么使用训练数据?为什么不测试数据?我的意思是在下面的代码中,为什么我们在第 6 行使用火车?为什么不测试?

        1.  trainsource = new DataSource(train_file_path);
        2.  trains = trainsource.getDataSet();
        3.  trains.setClassIndex(0);

        4.  testsource = new DataSource(test_file_path);
        5.  tests = testsource.getDataSet();


        6.  evaluation= new Evaluation(**trains**);     
        7. model.buildClassifier(trains);
        8. evaluation.evaluateModel(model, tests);

谢谢!提前!!

【问题讨论】:

    标签: java classification weka


    【解决方案1】:

    因为这是机器学习的方式。他们通过使用“训练数据”来训练分类器来学习。 WEKA 通常采用“arff 格式”的训练文件。 训练数据在属性下有很多数据。训练文件示例:

    @relation maitre
    
    @attribute patrons {none, some, full}
    @attribute waitEstation {0-10,10-30,30-60,>60}
    @attribute reservation {TRUE, FALSE}
    @attribute bar {TRUE, FALSE}
    @attribute alternative {TRUE, FALSE}
    @attribute sit {yes, no}
    
    @data
    some,0-10,TRUE,FALSE,TRUE,yes
    full,30-60,FALSE,FALSE,TRUE,no
    some,0-10,FALSE,TRUE,FALSE,yes
    full,10-30,FALSE,FALSE,TRUE,yes
    full,>60,TRUE,FALSE,TRUE,no
    some,0-10,TRUE,TRUE,FALSE,yes
    none,0-10,FALSE,TRUE,FALSE,no
    some,0-10,TRUE,FALSE,FALSE,yes
    full,>60,FALSE,TRUE,FALSE,no
    full,10-30,TRUE,TRUE,TRUE,yes
    none,0-10,FALSE,FALSE,FALSE,no
    full,30-60,FALSE,TRUE,TRUE,no
    

    现在分类器可以是任何类型,例如:朴素贝叶斯分类器、J48、SVM 等。当使用训练数据集训练分类器时,它会根据 WEKA 创建一个“模型”。现在您可以使用这个创建的“模型”来验证您的“测试集”。所以“测试数据”用于验证模型。

    现在,如果您使用上述训练数据集训练分类器,您现在可以预测未知类别。例如,如果您想预测属性“坐”。您将需要以下测试数据:

    @relation maitretest
    
    @attribute patrons {none, some, full}
    @attribute waitEstation {0-10,10-30,30-60,>60}
    @attribute reservation {TRUE, FALSE}
    @attribute bar {TRUE, FALSE}
    @attribute alternative {TRUE, FALSE}
    @attribute sit {yes, no}
    
    @data
    some,0-10,TRUE,FALSE,TRUE,?
    full,30-60,FALSE,FALSE,TRUE,?
    

    注意 ?标记代替属性“坐”。您现在可以预测未知类别。希望这可以消除您的疑虑:)

    【讨论】:

      猜你喜欢
      • 2015-12-12
      • 2023-04-06
      • 1970-01-01
      • 2019-04-05
      • 2013-12-06
      • 1970-01-01
      • 2019-02-07
      • 2013-08-30
      • 2012-08-27
      相关资源
      最近更新 更多