首页 > 解决方案 > 如何在神经网络模式识别工具箱中使用多个标签作为目标?

问题描述

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

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

标签: matlabneural-networkdeep-learningpattern-recognition

解决方案


使用 Neural Net Pattern Recognition Toolbox 的第一步是将表格转换为数值数组,因为神经网络仅适用于数值数组,不能直接处理其他数据类型。将表视为my_table,可以使用将其转换为数值数组

my_table_array = table2array(my_table);

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

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

可以使用 one-hot 编码技术将字符串类型标签(分类)转换为数值,其中categorical,后跟ind2vec

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

现在,my_table_vector(最终目标)和输入(最终输入预测器)可以很容易地输入神经网络并用于目标标签的分类/预测。


推荐阅读