gpt4 book ai didi

java - 为什么我们在weka评估函数中使用训练数据?

转载 作者:行者123 更新时间:2023-12-01 09:55:55 25 4
gpt4 key购买 nike

我正在使用 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);

谢谢!提前!!

最佳答案

因为这就是机器学习的方式。他们通过使用“训练数据”来训练分类器来学习。 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 创建一个“模型”。现在您可以使用此创建的“模型”验证您的“测试集”。所以“测试数据”是为了验证模型。

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

@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,?

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

关于java - 为什么我们在weka评估函数中使用训练数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37223141/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com