Создайте вектор для каждого столбца матрицы, а также создайте матрицу, но с этим удаленным столбцом - PullRequest
0 голосов
/ 05 ноября 2011

Я импортировал некоторые данные из файла CSV в Matlab.Это все временные ряды, которые выровнены (факт, что они являются временными рядами, не важен, просто каждый столбец представляет отдельную сущность, а строки являются наблюдениями для этой сущности).Это, скажем, матрица парных чисел 2500x50 с именем data и массив ячеек 1x50 с именем colheaders.

Я пытаюсь использовать набор инструментов нейронной сети для прогнозирования каждого объекта (т. Е. Столбца).) от всех остальных.Инструмент нейронной сети принимает в качестве входных данных «цель» (один столбец матрицы) и «вход» (исходная матрица, но с тем же столбцом, который используется в качестве «цели», удаленного из матрицы).

Предположим, чтозаписи в colheaders имеют форму Col1, Col2, Col3 и т. д. Я хотел бы автоматизировать процесс обучения модели и составления прогнозов для каждого столбца исходной матрицы, чтобы в качестве выходных данных я получил несколько прогнозов.столбцы, помеченные Predicted_Col1, Predicted_Col2 и т. д.

Я думаю, что могу разобраться в части нейронной сети, но я просто не знаю, как начать манипулирование матрицей и перекрестные ссылки на массив colheaders.Кажется, это обычная вещь, которую хочется делать, поэтому я предполагаю, что кто-то знает простой, прямой способ сделать это, который является вычислительно эффективным.Благодарю.

1 Ответ

0 голосов
/ 05 ноября 2011

Предполагая, что colheaders является ячейкой строк, а data является вашим входным массивом 2500x50, код ниже проходит через все столбцы data , отделяет цель от ввода , передает его в псевдокод для NN и постепенно создает прогнозируемую матрицу, одновременно создавая собственные заголовки столбцов в out_colheaders:

predicted = zeros(size(data));
for i = 1:size(data, 2)
    target = data(:, i);
    training_input = data;
    training_input(:, i) = [];
    // assuming the following function returns a column of 2500x1
    // given training_input of size 2500x49 and target 2500x1
    predicted(:, i) = pseudo_neural(training_input, target);
    out_colheaders{i} = ['Predicted_' colheaders{i}];
end
...