# An Empirical Evaluation of Ensemble Models for Python Code Smell Detection
## 2 Related Work
[25] proposed a semi-supervised learning method to identify code smells using both widely used labeled and manually collected unlabeled data. They demonstrated this method through a clustering-based approach for class-level and a label propagation-based approach for method-level code smell detection. They observed that the semi-supervised learning method resulted in an accuracy increase of up to 8.4% for class-level and method-level code smells. [PERSON] et al. [26] used six code smells using the MLP method and obtained a 99.25% accuracy score. Bayesian Belief Networks were suggested by [PERSON] et al. [27] and [PERSON] et al. [28] as a means of detecting the GC. Similarly, [PERSON] et al. [29] applied these models to find duplicate code smells. With Chi-square FST and SMOTE, [PERSON] et al. [14] achieved 100% accuracy for the LM dataset via ensemble and deep learning. [PERSON] et al. [30] proposed multi-objective genetic programming (MOGP) to find the best combination of metrics that maximizes the detection of code smell examples and minimizes the detection of well-designed code examples. They evaluated proposals on seven large open-source systems and found that, on average, most of the three different Code smell types were detected with an average of 86% precision and 91% recall. [PERSON] et al. [31] proposed the system's effectiveness with widely used BERT, CodeBERT, and GraphCodeBERT pre-trained models to create code embedding for the code classification task of code smell detection. They observed that the proposed system may offer improvements in accuracy, an average of 8% and a maximum of 13% for models. In their study, [PERSON] et al. [32] used five ML techniques with principal component analysis (PCA) FST to identify the severity of Code smell across four datasets. The Decision Tree and Random Forest approaches achieved an accuracy score of 0.99 for the LM dataset. [PERSON] et al. [33] proposed different ML methods for code smell detection in C++ projects. The hyperparameter optimization was used to determine the optimal parameters for each model. The KNN model found an accuracy of 93.902% and a F1 score of 82.758%. [PERSON] et al. [34] explored ensemble methods incorporating both supervised and unsupervised classification techniques combined with information gain and chi-square FST. The reported accuracy for the Pits C dataset ranged from 79.85% to 89.80%. Their study focused on bug severity reporting in closed-source datasets. [PERSON] et al. [35] proposed a multi-label approach for classifying and detecting method-level code smells. A rule-based technique was developed for multi-label code smell detection, achieving a maximum accuracy of 99.54% using the Decision Tree model. [PERSON] et al. [36] studied the different types of programming languages and their code qualities, further enriching the knowledge base of software engineering. [PERSON] et al. [37] built the two models based upon stacked autoencoders, employing a hybrid architecture that combines bidirectional long short-term memory and convolutional neural network components for code smell detection. The research conducted by [PERSON] et al. [38] introduces a Deep Convolutional Neural Network (D-CNN) model integrated with SMOTE for the identification of bad code smells within a set of Java projects. For the evaluation, four code smell datasets were used. The results demonstrate that the proposed model, when applied with oversampling techniques, enhances performance in code smell detection. [PERSON] et al. [3] introduced a Python code smell dataset containing instances of Long Methods and Large Classes for smell detection. Six ML methods were applied in this study. The MCC and accuracy percentage were computed, with the DT model achieving the best MCC rate of 0.89 and accuracy of up to 96%. Their study lacked ensemble methods, did not address class imbalance, and offered limited insight into feature importance or selection.