在MATLAB中,分类学习器用于构建和评估分类模型。MATLAB提供了一些工具和功能,帮助你进行分类任务,例如分类学习器应用程序、统计和机器学习工具箱中的函数等。
导入数据
我们在打开应用程序之前的第一步将是导入我们将在工作区使用的数据。包含数据的 features.xlsx 文件已被提取到工作区。
启动分类学习器应用程序
点击 MATLAB 中的应用程序选项卡中可用的分类学习器。
我们也可以启动分类学习器应用程序通过输入classificationLearner
来打开该应用程序。
打开一个名为“新会话”的新窗口。由于数据已经在工作区中,它将显示在选项中,我们需要选择它。
在数据集部分选择特征时,它会自动识别响应和预测变量。这里指示的响应是我们将分类数据的参数。在这里,由于“Character”被选为响应,并且它显示有三个唯一值:“J”、“M”和“V”。预测变量是我们用来将它们分类到各自类别的特征。其他两个列方面比率和持续时间将自动成为预测变量。
在进入验证部分之前,我们要了解什么是验证及其组成部分。在验证中,训练数据被分为训练部分和验证部分。验证部分用于在测试之前检查训练好的模型,以确保模型不出现过拟合。验证过程有两种不同类型:
·交叉验证:在此,折数是训练数据随机划分的部分数量。其一部分将用于验证,其余部分用于训练。
·保留验证:我们可以选择保留作为测试数据集的百分比数据,其余数据用于训练。这通常推荐用于大型数据集。
选择数据集和验证方法后,应用程序的外观就是这样。训练数据特征的散点图将在会话打开时显示。散点图的 X 轴和 Y 轴可以在右侧进行更改。
对测试数据进行训练
由于我们不知道哪个模型适合该数据集,因此我们将在此选择所有选项,以对所有可用模型的测试数据进行训练。
我们可以在左侧看到多个模型的训练准确度结果。中间是所选模型的预测散点图和验证混淆矩阵。
导出模型到工作区
现在可以选择最高精度的模型。在这里,加权KNN和朴素贝叶斯的准确率最高。
点击导出选项,我已将它们分别导出到工作区,命名为 trainedModel 和 trainedModel1。导出有以下选项:
我们可以用测试数据测试这两个模型,并检查准确性以找到最佳模型。
导出后,命令窗口将显示如下:
测试导出的模型
使用 trainedModel.predictFcn(readtable(“features.xlsx”))命令将获得导出模型的预测输出。以下代码用于查找模型的准确性。
testdata=readtable("testdata.xlsx");
predictions = char(trainedModel.predictFcn(testdata));
% accuracy
iscorrect=predictions==cell2mat(string((testdata.Character)));
iscorrect=iscorrect(:,2);
accuracy = sum(iscorrect)*100/20;
需要测试的数据集:
类似地,我们也需要尝试剩下的导出模型。最终,我们获得了 模型的测试准确率分别为 70%和 85%。因此,我们可以使用 KNN,因为它是最适合该数据集的模型。通过这种方式,我们可以更快地找到最适合数据集的模型。