## 5 Results and Discussion
### Feedforward Artificial Neural Network Parameter Selection and Result Analysis  
A feedforward neural network was developed to predict the load for the considered days. The input variables were designed from the MATLAB environment using the MATLAB 2018 Neural Networks Toolbox. Model training, testing, and validation are three major parts of ANN modeling, and each dataset is divided into three layers: the first 70% of the data is used to train the data, 15% for the test, and 15% for validation. In the initial time series models, only time series data were considered, ignoring the effect of a nonlinear temperature and similar day effects, while the FF-ANN model \begin{table}
\begin{tabular}{c c c c} \hline \hline
**No.** & **Model** & **MAPE \%** & **MAPE \%** \\  & & **(Weekdays)** & **(Weekends)** \\ \hline
1 & Moving Average & 3.33 & 13.42 \\
2 & Weighted Moving Average & 3.4 & 13.66 \\
3 & Exponential Smoothing & 3.56 & 12.59 \\
4 & Holt’s (Double Exponential) & 3.44 & 12.57 \\ \hline \hline \end{tabular}
\end{table} 
Table 2: MAPE comparison of time series models. Figure 10: Actual vs. predicted forecasts achieved by conventional time series models. (**a**) Weekday forecasting. (**b**) Week-end forecasting. Additionally considered the temperature data to catch the non-linear relation between the temperature and the relation to similar day effects such that each day was separately marked, including variables like the month, day of the month, day of the week, hours of the day, same day of the previous week, and flag indicators for weekdays and weekends. The variables selected can be seen in Table 3.  
A network was trained with the historical data and other factors considered. The variables were assigned with numerical values as indicated in Table 3. These allowed the ANN to trace similar day effects. In the case of the months, the calendar considered the B.S. calendar; hence, 1 indicated the first month of the B.S. calendar, which is 'Baishakh'. The test was performed for various structures, consisting of up to three hidden layers with different nodes as discussed in Table 4. The same test data were considered for both weekdays and weekends. Considering the difference in nature of the demand on weekends and weekdays, two different networks were modeled. Multiple nodes and layer structures were tested, and from Table 3, it can be observed that a single-layer structure with eight nodes showed the best MAPE of 2.99% for weekdays, and a two-layer structure with 16 \(\times\) 16 nodes presented the best MAPE of 4.69% for the weekend load forecasting. From Figure 10(a),b, it can be seen that while training the model using the Levenberg-Marquardt backpropagation algorithm, the model converged with less than 20 epochs for weekdays for the model and the single hidden layer having 8 neurons, and it also converged before 16 epochs for the weekend, which was modeled with the double hidden layer having 16 \(\times\) 16 neurons. The implemented model configuration showed no overshoot before or after converging and maintained stability (no increase or decrease after converging), with its best validation performance at epoch 12 and epoch 10 for the test dataset. \begin{table}
\begin{tabular}{c c c c} \hline \hline \multirow{2}{*}{**No. of Hidden Layers**} & \multirow{2}{*}{**No. of Neurons**} & \multicolumn{1}{c}{**MAPE \%**} & \multicolumn{1}{c}{**MAPE \%**} \\  & & **(Weekends)** & **(Weekdays)** \\ \hline \multirow{8}{*}{**1**} & 32 & 4.89 & 3.22 \\  & 16 & 4.699 & 3.14 \\  & 8 & 5.08 & 2.99 \\  & 4 & 6.07 & 3.04 \\  & 2 & 7.16 & 4.77 \\  & 1 & 13.38 & 12.08 \\ \hline \multirow{8}{*}{**2**} & 2 \(\times\) 2 & 7.06 & 3.96 \\  & 4 \(\times\) 4 & 4.76 & 3.26 \\ \cline{1-1}  & 8 \(\times\) 8 & 4.76 & 3.63 \\ \cline{1-1}  & 16 \(\times\) 16 & 4.53 & 3.04 \\ \hline \multirow{2}{*}{**3**} & 8 \(\times\) 8 & 4.90 & 3.39 \\  & 16 \(\times\) 16 \(\times\) 16 & 4.54 & 3.35 \\ \hline \hline \end{tabular}
\end{table} 
Table 4: Selection of the hidden layer.