【发布时间】:2012-02-24 15:01:20
【问题描述】:
作为我课程的一部分,我一直在将 MATLAB 用于我的时间序列数据集(用于电力数据集)。它由 40,000 多个样本组成。神经网络形成后,我想测试它的准确性。我对 MAPE(平均绝对百分比误差)和 RMS(均方根)误差更感兴趣。为了计算它们,我使用了以下代码行。
mape_res = zeros(N_TRAIN);
mse_res = zeros(N_TRAIN);
for i_train = 1:N_TRAIN
Inp = inputs_consumption(i_train );
Actual_Output = targets_consumption( i_train + 1 );
Observed_Output = sim( ann, Inp );
mape_res(i_train) = abs(Observed_Output - Actual_Output)/Actual_Output;
mse_res(i_train) = Observed_Output - Actual_Output;
end
mape = sum(mape_res)/N_TRAIN;
mse = sum(power(mse_res,2))/N_TRAIN;
sprintf( 'The MSE on training is %g', mse )
sprintf( 'The MAPE on training is %g', mape )
上述编码的问题在于,对于大型数据集(40K 样本),遍历所有这些循环需要将近 15 分钟,并且等待获得错误率结果的时间相当长;没有其他有效的计算方法吗?
【问题讨论】:
-
分析器分析说什么?代码的关键部分在哪里?
标签: machine-learning neural-network matlab