如何在神经网络模式识别工具箱中使用多个标签作为目标?

How to use multiple labels as targets in Neural Net Pattern Recognition Toolbox?

我正在尝试使用 MATLAB 中的神经网络模式识别工具箱来识别数据集中不同类型的 类。我有一个 21392 x 4 table,第 1-3 列我想用作预测变量,第 4 列有 14 个不同类别的标签(字符串,如愤怒、悲伤、快乐、中性等) .与 MATLAB 分类学习器工具箱不同,神经网络模式识别工具箱似乎不允许我导入 table 并从中自动提取预测变量和响应。此外,我无法手动指定神经网络的输入和目标,因为它没有显示在选项中。

我研究了 Iris 数据集、Wine 数据集、癌症数据集等示例,但它们都只有 2-3 类 作为正在识别的输出(并以二进制编码,如 000 , 010, 011 等)并且标签不是字符串类型,不像我的 Angry、Sad、Happy、Neutral 等(总共 14 个不同 类)。我想知道如何使用我的 table 作为神经网络模式识别工具箱的输入,或者如何从我的 table 中提取数据并在工具箱中使用它.我是使用工具箱的新手,所以在这方面的任何帮助将不胜感激。谢谢!

使用神经网络模式识别工具箱的第一步是将 table 转换为数值数组,因为神经网络只能处理数值数组,不能直接处理其他数据类型。将 table 视为 my_table,可以使用

将其转换为数值数组
my_table_array = table2array(my_table);

my_table_array,可以提取输入(预测变量)和outputs/targets。但是,必须要提到的是输入和输出需要转置(因为工具箱需要数据为列格式,每一列是一个数据点,每一行是特征),这很容易实现使用:-

inputs = inputs'; %(now of dimensions 3x21392)
labels = labels'; %(now of dimensions 1x21392)

字符串类型标签(分类)可以使用 categorical 的单热编码技术转换为数值,然后是 ind2vec:

my_table_vector = ind2vec(double(categorical(labels)));

现在,my_table_vector(最终目标)和输入(最终输入预测变量)可以很容易地馈送到神经网络并用于 classification/prediction 个目标标签。