Как использовать Sequence to Sequence Classification в MATLAB с использованием табличных данных? - PullRequest
0 голосов
/ 07 мая 2019

Я имею в виду https://uk.mathworks.com/help/deeplearning/examples/sequence-to-sequence-classification-using-deep-learning.html, в котором приведен подробный пример классификации последовательности от последовательности для данных акселерометра.Тем не менее, я пытаюсь сделать Seqeunce to Sequence Classification в другом контексте, для моей собственной проблемы.У меня есть входные данные с 1973 функциями, которые я хотел бы использовать, и цели в основном предложения.Итак, используя входные предикторы, я хотел бы предсказать предложения.Мои входные данные в основном временные ряды, обычно с 10-минутными интервалами.Итак, изначально мои входные данные имели размерность 21392 x 1976, которую я разделил на данные обучения и испытаний.Однако проблема заключается в том, что я не могу продолжить процедуру построения и визуализации данных последовательности и обучения сети LSTM в соответствии с этим примером, поскольку в отличие от массивов ячеек, используемых для распознавания человеческой деятельности в этом примере, мои данныесовершенно другой формат, как и типичные структурированные табличные данные, с 21392 строками, каждая из которых обычно проходит через 10 минут, и в настоящий момент я использовал некоторый пример синтаксиса, чтобы попытаться использовать его для моей проблемы.Тем не менее, главная сбивающая с толку часть заключается в том, что в моем случае зачем вообще использовать массив ячеек?Но если я не использую массив ячеек, обучение LSTM не будет успешным, так как требует, чтобы данные обучения были массивом ячеек.Буду признателен за любую помощь или предложения в этом отношении.Код, который я использую (с некоторыми модификациями, которые я пробовал) приведен ниже.Ура!

XTrain = all_data_withdescription(:,1:1973); %These are the features from my input data I would like to use

    XTrain = table2cell(XTrain); % Converting the input training data to a cell array to replicate the example
    XTrain = XTrain'; % At this point XTrain becomes 1973x21392 cell
    YTrain = all_data_withdescription(:,1976); % The 1976th column contains sentences which I would be using as targets
    YTrain = table2cell(YTrain);
    YTrain = YTrain'; % At this point, YTrain is 1x21392 cell
    classes = categories(YTrain{1}); % At this point, I can see that classes is 136x1 cell
    X = XTrain(542,:); 
    X = cell2mat(X); %At this point X is 1x21392 double
    figure
    for j = 1:numel(classes)
        label = classes(j); 
        idx = find(YTrain{1:21392} == label);
        hold on
        plot(idx,X(idx))
    end
    hold off
    xlabel("Time Step")
    ylabel("Feature 1")
    title("Training Sequence 1, Feature 1")
    % % legend(classes,'Location','northwest')
...