Weka之训练与测试数据

什么是训练数据和测试数据?
训练数据经过机器学习算法(ML Algorithm)可以得到分类器,再将测试数据放入分类器,则可得到评估结果。

Weka之训练与测试数据_第1张图片
训练集和测试集应来源于同一个数据集,但为两个不相交的集合。比如:将一个数据集的1/3作为测试集,2/3作为训练集。

接下来通过一个简单的实验进一步理解训练与测试数据:
1、打开Explorer界面,选择数据集segment-challenge.arff。
2、打开classify面板,选择J48分类器。
Weka之训练与测试数据_第2张图片

3、观察Test options面板,共有4种方式来评价模型效果,分别是:
Use traning set 使用训练集Supplied test set设置测试集Cross-validation交叉验证Percentage split按比划分
以下将介绍四种方法的区别。

●使用训练集

选择后,点击start。
Weka之训练与测试数据_第3张图片
Weka之训练与测试数据_第4张图片观察到产生了正确率为99%的结果。
这种方式使用得较少,得到的结果
误导性
很强。
因为这种方法中,训练集和测试集相同。

●设置提供的测试集

选择后,点击set并选中测试集segment-test.arff,点击start。
Weka之训练与测试数据_第5张图片
Weka之训练与测试数据_第6张图片观察到产生了正确率为96.1728%的结果。

●交叉验证

Weka之训练与测试数据_第7张图片

当Folds为10时,会将数据集随机分为10份。
假设分别为:S1、S2、S3、S4…S10。
将S1S9作为训练集创建模型M1,用S10作为测试集来评价模型的效果,并得到错误率F1;将S1S8及S10作为训练集创建模型M2,用S9作为测试集来评价模型的效果,并得到错误率F2;将S1S7及S9S10作为训练集创建模型M2,用S8作为测试集来评价模型的效果,并得到错误率F3…
如此循环共10次,得到10个错误率。最终将10份数据放在一起构建一个模型,错误率为10个错误率的平均值。

将Folds设置为10,并点击“Start”。
Weka之训练与测试数据_第8张图片
观察到产生了正确率为95.7333%的结果。

再将Folds设置为100,并点击“Start”。
Weka之训练与测试数据_第9张图片
观察到产生了正确率为96.8%的结果。正确率得到了提升。
此方法的准确性会比前几种高,但当数据量很大时,计算速度会较慢。

●按比划分

选择后,输入百分比(默认为66%),点击Start。
此方法将训练集分为两部分,一部分做数据训练,一部分做数据测试。
输入的百分比为做数据训练的部分。

Weka之训练与测试数据_第10张图片
Weka之训练与测试数据_第11张图片
观察到产生了正确率为95.098%的的结果。

你可能感兴趣的:(Weka)