[p, q] = get_products(); % quantity sum over a day %plot(sum(q')); train_data = q( 1:28, :); real_data = q(29:42, :); mean_data = mean_pred(p, train_data); regress_data = regress_pred(p, train_data); quad_data = quad_regress_pred(p, train_data); log_data = log_regress_pred(p, train_data); sevenday_data = sevenday_pred(p, train_data); random_data = rand_pred(p, train_data); regress2_data = regress_frequency_removal(p, train_data); pred_list = {mean_data regress_data quad_data log_data sevenday_data random_data regress2_data}; opt_data = opt_pred(real_data, pred_list); % plot prediction quallity [meqerr, meterr] = calc_error('mean', real_data, mean_data); [reqerr, reterr] = calc_error('regress', real_data, regress_data); % quadratic just for reference, it sucks more than mean-predicition [quqerr, quterr] = calc_error('quad reg.',real_data, quad_data); [loqerr, loterr] = calc_error('log reg.', real_data, log_data); [seqerr, seterr] = calc_error('sevenday', real_data, sevenday_data); [raqerr, raterr] = calc_error('random', real_data, random_data); [opqerr, opterr] = calc_error('optimize', real_data, opt_data); [re2qerr, re2terr] = calc_error('regress2', real_data, regress2_data); qerr = [meqerr reqerr quqerr loqerr seqerr raqerr opqerr re2qerr]; terr = [meterr reterr quterr loterr seterr raterr opterr re2terr]; bar(qerr); bar(terr); mean_err = sum(abs(real_data - mean_data)); regress_err = sum(abs(real_data - regress_data)); quad_err = sum(abs(real_data - quad_data)); log_err = sum(abs(real_data - log_data)); sevenday_err = sum(abs(real_data - sevenday_data)); random_err = sum(abs(real_data - random_data)); opt_err = sum(abs(real_data - opt_data)); regress2_err = sum(abs(real_data - regress2_data)); err = [mean_err;regress_err;quad_err;log_err;sevenday_err;random_err;regress2_err]; [min_err, err_idx] = min(err); printf('global min. error: %d\n', sum(min_err)); printf('local min count:'); local_min_count=[]; for i=1:size(err,1) local_min_count = [ local_min_count sum(sum(err_idx == i)) ]; printf(' %d', local_min_count(i)); end printf('\n');