## 4 Comparison of ML Models
### Comparative Evaluation  
We employ a comparative evaluation method to identify the most suitable model for our dataset based on its performance metrics. Moreover, we assess all 10 machine learning models using the metrics of mean squared error (MSE), mean absolute error (MAE), median absolute error (MedAE), explained variance score, and R-squared. Additionally, this experiment aims to demonstrate the impact of features constructed using various techniques on the overall model accuracy. To this end, we employ two comparisons: First, we used the GitHub dataset [28] and evaluate it with all 10 machine learning models. Second, we incorporate features that we construct using three methods and replicated the first approach. Our primary objective is to select the most efficient and dependable model for our study, striking an optimal balance of performance across various factors while reducing potential biases. To achieve this, we conducted a comparative analysis of all 10 machine learning models. Below is a brief explanation of the metrics we used and what results are considered acceptable:  
* Mean squared error (MSE): Measures the average of the squares of the errors between the predicted and actual values. A lower MSE indicates better model performance. * Mean absolute error (MAE): Calculates the average of the absolute differences between the predicted and actual values. A lower MAE is desirable as it signifies a model's accuracy in predictions. * Median absolute error (MedAE): Finds the median of the absolute errors, offering a robust measure of central tendency that is less affected by outliers. Lower values indicate more accurate predictions. * Explained variance score (EVS): Indicates the proportion of variance in the target variable that is explained by the model's predictions. A higher explained variance score is preferable, as it suggests better model performance. * R-squared (R_2): Represents the proportion of variance in the target variable that is explained by the model. R-squared ranges from 0 to 1, with higher values indicating better model fit. * Root mean squared error (RMSE): It quantifies the difference between the predicted values generated by the model and the actual values observed in the dataset. A lower RMSE indicates better model performance. Table 7 presents the results of two comparisons.The first comparison focuses on evaluating the machine learning models' performance using only the baseline feature set, while the second comparison includes the extended feature set. This allows us to observe the impact of incorporating the additional features on model performance. In the table, 'without' is used as a shorthand for the baseline feature set, and 'with' represents the extended feature set. This choice helps keep the table concise and more readable without sacrificing  
the clarity of the presented comparisons. In examining the results across various models, we see a spectrum of performance changes influenced by the introduction of constructed features. For instance, gradient boosting shows only marginal improvements, with its mean squared error (MSE) decreasing slightly from 0.0568 to 0.0563. This minimal change indicates that the model's complexity and regularization may have limited its responsiveness to the added features. Conversely, some models like AdaBoost and K-nearest neighbors (KNN) experience significant declines in performance after incorporating new features. The MSE of AdaBoost increases from 0.5739 to 0.6821, indicating a detrimental effect from the added complexity, while the performance of KNN also worsens, indicating that these models may not effectively handle the enriched dataset. Notably, ridge regression stands out as the most effective model in this context. After integrating the constructed features, ridge regression's MSE decreases from 0.0019 to 0.0006, a significant reduction of 0.0013. This improvement is echoed in its mean absolute error (MAE), which drops from 0.0225 to 0.0096, representing a decrease of 0.0128.