# Prediction of Wind Power with Machine Learning Models
## 3 Results and Discussion  
This section examines the performance results obtained based on the ML models developed in previous areas. All models were tested and explained in a Jupiter Notebook development environment running Python 3.9.5. The machine had hardware specifications, including a dual-core Intel(R) Xeon(R) CPU at 2.20 GHz processor, 32 GB 3200 MHz DDR3 RAM, and a 16 GB Nvidia Tesla P100 GPU. The TensorFlow 2.x library was used to build DL architectures. TensorFlow is a library that facilitates the efficient processing of large data sets, especially the flow of multidimensional arrays or tensors from one layer to another in neural networks. The model trained competently with the ANN, CNN, RNN, and LSTM methods, demonstrating their ability to accurately predict the test data set, as shown in Figure 7. Figure 7 shows linear regression plots for the methods. A linear regression plot is a graph that visually represents the relationship between two variables. Upon examining the graphs, it was observed that the LSTM method exhibited the best prediction performance, with an R\({}^{2}\) value of 0.9574. By comparing the initial 100 samples of the test data and the first 100 samples predicted by the ANN, CNN, RNN, and LSTM models, it was established that there exists a  
Figure 7: Regression plot of test data and predicted values by (**a**) ANN, (**b**) CNN, (**c**) RNN, and (**d**) LSTM models. concordant relationship between the model's predictions and the test data. This correlation is demonstrated in Figure 8.  
Figure 9 depicts a scatterplot illustrating the correlation between wind speed (m/s) and the turbine's active power generation (kW). The plot also includes the estimated functional power value and the theoretical power curve. Upon closer examination of the graph, it becomes evident that the four models' predicted active power values exceeded the turbine's maximum power output, particularly when wind speeds exceeded approximately 13 m/s. The main reason for the higher prediction accuracy provided by CNNs compared to ANNs was due to the feature extraction capabilities of CNNs. Notably, under low wind speed conditions, CNNs exhibited a high level of performance in generating more accurate results. In contrast, the prediction values showed lower accuracy under challenging conditions like high wind speeds. Figure 8: Comparison of test data with predicted test data by (**a**) ANN, (**b**) CNN, (**c**) RNN, and (**d**) LSTM methods. Figure 9: _Cont._  
Consequently, during low wind speeds, CNNs effectively leveraged their advanced feature extraction proves to discern pivotal data patterns, thereby enhancing the precision of predictions. However, within intricate contexts like high wind speeds, the projections sometimes carried a decreased level of accuracy. These findings underscore CNNs as proficient instruments for addressing problems contingent on temporal fluctuations, as seen in wind power prediction. Nonetheless, it is discernible that the extent of this efficacy can fluctuate based on the wind speed magnitude in specific cases. This situation provides a significant perspective on how CNNs' feature extraction capabilities prove impactful in applications like wind power prediction. Figure 10 graphically shows the comparison of MSE, RMSE, and MAE error metrics for the four methods. When the graphs are examined, it is observed that the lowest error metrics belong to LSTM. Table 5 presents the R\({}^{2}\), MSE, RMSE, and MAE outcomes for the testing and training data sets that predicted wind power. Figure 10: Error metric comparison of methods. Figure 9: Active power, estimated active power, and theoretical power curve by (**a**) ANN, (**b**) CNN, (**c**) RNN, and (**d**) LSTM methods. As a result, since the RNN architecture could heal itself with the outputs from the previous layer, it performed more successfully than ANNs and CNNs, especially in sequential data sets. This finding indicates that upon examination of the graphs, the estimated values tended to be closer to the actual values.