为矩阵的每列创建向量,并构造矩阵但删除该列

时间:2011-11-05 02:13:10

标签: arrays matlab matrix neural-network

我已经在matlab中从CSV文件中导入了一些数据。它们是全部对齐的时间序列(事实上它们是时间序列并不重要,只是每列代表一个实体,而行是该实体的观察)。这就是说,一个名为data的2500x50双精度矩阵和一个名为colheaders的1x50单元阵列。

我要做的是使用神经网络工具集来预测所有其他实体(即列)。神经网络工具将"目标"作为输入。 (矩阵的一列)和"输入" (原始矩阵,但使用相同的列作为"目标"从矩阵中删除)。

假设colheaders中的条目具有Col1,Col2,Col3等形式。我希望自动化训练模型并对原始矩阵的每列进行预测的过程,以便我有一堆标记为Predicted_Col1,Predicted_Col2等的预测列作为输出。

我想我可以找出神经网络部分,但我不知道如何开始矩阵操作和交叉引用colheaders数组。这似乎是一个常见的事情,我想这样做,我猜有人知道一个简单,直接的方式来做这个计算效率。谢谢。

1 个答案:

答案 0 :(得分:0)

假设 colheaders 是字符串的单元格而数据是您的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