使用分类学习应用程序中的测试集检查分类器性能
这个例子展示了如何在分类学习器中训练多个模型,并根据它们的验证精度确定表现最佳的模型。检查在完整数据集(包括训练和验证数据)上训练的表现最佳的模型的测试准确性。
在MATLAB中®命令窗口,加载
电离层
数据集,并创建一个包含该数据的表。将表分成训练集和测试集。负载电离层tbl = array2table(X);资源描述。Y= Y; rng(“默认”)%用于数据分割的再现性分区= cvpartition(Y,“坚持”, 0.15);idxTrain =训练(分区);%训练集的指数tblTrain = tbl(idxTrain,:);tblTest = tbl(~idxTrain,:);
或者,您可以稍后在将数据导入应用程序时创建一个测试集。有关更多信息,请参阅(可选)为测试预留数据.
开放分类学习者。单击应用程序选项卡,然后单击右侧的箭头应用程序部分打开应用程序库。在机器学习和深度学习组中,单击分类学习者.
在分类学习者选项卡,在文件部分中,点击新会话并选择从工作空间.
在“从工作区新建会话”对话框中,选择
tblTrain
表中的数据集变量列表。如对话框所示,应用程序选择响应和预测变量。默认响应变量为
Y
.为了防止过度拟合,默认的验证选项是5倍交叉验证。对于本例,不要更改默认设置。若要接受默认选项并继续,请单击开始会议.
训练所有预设模型。在分类学习者选项卡,在模型部分,单击箭头打开图库。在开始组中,单击所有.在火车部分中,点击火车都并选择火车都.该应用程序训练每种预设模型类型中的一种,以及默认的精细树模型,并在模型窗格。
请注意
如果您有并行计算工具箱™,那么应用程序有使用并行按钮默认开启。点击之后火车都并选择火车都或选择火车,该应用程序会打开一个并行的员工池。在此期间,您无法与该软件进行交互。泳池开放后,你可以继续与应用程序互动,而模型则并行训练。
如果你没有并行计算工具箱,那么应用程序有使用背景培训中的复选框。火车都默认选择的菜单。在你点击训练模型后,应用程序会打开一个后台池。泳池开放后,当模特在后台训练时,你可以继续与应用程序互动。
根据验证精度对训练模型进行排序。在模型窗格,打开排序列出并选择
准确性(验证)
.在模型窗格中,单击具有最高验证精度的三个模型旁边的星形图标。该应用程序通过在方框中概述来突出最高的验证准确性。在这个例子中,训练有素的中等高斯支持向量机模型具有最高的验证精度。
该应用程序显示第二个精细树模型(模型2.1)的验证混淆矩阵。蓝色值表示正确的分类,红色值表示错误的分类。的模型左边的窗格显示了每个模型的验证精度。
请注意
验证在结果中引入了一些随机性。您的模型验证结果可能与本示例中显示的结果不同。
检查性能最好的模型的测试集性能。首先将测试数据导入应用程序。
在分类学习者选项卡,在测试部分中,点击测试数据并选择从工作空间.
在“导入测试数据”对话框中,选择
tblTest
表中的测试数据集变量列表。如对话框所示,应用程序识别响应和预测变量。
点击进口.
计算精度的最佳预设模型上
tblTest
数据。为方便起见,一次性计算所有模型的测试集精度。在分类学习者选项卡,在测试部分中,点击测试所有并选择测试所有.该应用程序计算在完整数据集(包括训练和验证数据)上训练的模型的测试集性能。根据测试集精度对模型进行排序。在模型窗格,打开排序列出并选择
准确性(测试)
.该应用程序仍然概述了具有最高验证精度的模型的度量,尽管显示了测试精度。可视化地检查模型的测试集性能。对于每个带星号的模型,在模型窗格。在分类学习者选项卡,在情节部分,单击箭头打开图库,然后单击混淆矩阵(测试)在测试结果组。
重新排列图的布局,以便更好地进行比较。首先,关闭的摘要和绘图选项卡模型1和2.1模型.然后,单击位于模型绘图选项卡最右边的Document Actions箭头。选择
瓷砖都
选项并指定1 × 3的布局。单击隐藏图形选项按钮在图的右上方为图腾出更多的空间。在这个例子中,训练有素的中等高斯支持向量机模型仍然是测试集数据上表现最好的模型之一。
若要返回原始布局,可单击布局按钮。情节部分并选择单型号(默认).
比较被训练者的验证和测试准确性中等高斯支持向量机模型。在模型窗格中,双击模型。在模型中总结选项卡,比较准确性(验证)值下培训结果到准确性(测试)值下测试结果.在本例中,验证精度高于测试精度,这表明验证精度可能高估了该模型的性能。