Как использовать несколько меток в качестве целей в Neural Net Pattern Recognition Toolbox? - PullRequest
0 голосов
/ 09 декабря 2018

Я пытаюсь использовать набор инструментов Neural Net Pattern Recognition в MATLAB для распознавания разных типов классов в моем наборе данных.У меня есть таблица 21392 x 4 со столбцами 1-3, которые я хотел бы использовать в качестве предикторов, а в 4-м столбце есть метки с 14 различными категориями (строки, такие как Angry, Sad, Happy, Neutral и т. Д.).Кажется, что набор инструментов Neural Net Pattern Recognition, в отличие от набора инструментов MATLAB Classification Learner, не позволяет мне импортировать таблицу и автоматически извлекать предикторы и ответы из нее.Более того, я не могу указать входы и цели для нейронной сети вручную, так как они не отображаются в опциях.

Я рассмотрел примеры, такие как набор данных Iris, набор данных Wine, набор данных рака и т. Д., Но все они имеют только 2-3 класса в качестве выходных данных, которые идентифицируются (и кодируются в двоичном виде, как 000, 010,011 и т. Д.) И метки не являются строковым типом в отличие от моих, таких как Angry, Sad, Happy, Neutral и т. Д. (Всего 14 различных классов).Я хотел бы знать, как я могу использовать свою таблицу в качестве входных данных для панели инструментов распознавания образов нейронной сети, или каким-либо другим способом, каким образом я могу извлечь данные из своей таблицы и использовать их в панели инструментов.Я новичок в использовании набора инструментов, поэтому любая помощь в этом отношении будет высоко оценена.Спасибо!

1 Ответ

0 голосов
/ 01 марта 2019

Первым шагом для использования 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)

Метки строкового типа (категориальные) можно преобразовать в числовые значения, используя метод горячего кодирования с categorical, за которым следует ind2vec:

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

Теперь my_table_vector (конечные цели) и входные данные (конечные предикторы ввода) могут быть легко переданы в нейронную сеть и использованы для классификации / прогнозирования целевых меток.

...