## 7 Machine Learning Algorithms for Conversion of CVSS Base Score from 2.0 to 3.x  
The conversion from CVSS v2.0 base scores to CVSS v3.x involves facing several challenges simultaneously. Firstly, imbalanced data pose difficulties during the learning phase, leading to a deterioration in predictive accuracy. In addition, the final results of the calculation of the CVSS v3.x base score are related to a function expressed by 8 parameters (Attack Vector, Attack Complexity, Privileges Required, User Interaction,Scope, Confidentiality, Integrity, Availability), each of which is expressed by one of several values ranging from 2 to 4. The vector (AV, AC, PR, UI, S, C, I, A) and the values of each vector component, used to calculate the CVSS v3.x base scores, contain a total of 2592 combinations, assigned to 101 values, in the range of 0 to 10, with increments of 0.1. The CVSS v3.x base score is classified into five qualitative severity rating scales: informational, low, medium, high, and critical. These categories are not equally distributed, with proportions of 1:39:30:20:11, respectively. The asymmetry in the category range suggests that when the CVSS v3.x base score is 0, there is no risk of misjudgment when converting from the CVSS v2.0 base score to CVSS v3.x. In contrast, as the score increases, the deviation from critical to high values is less pronounced. The approach proposed in [6; 7] to solve the problem of base score conversion between the CVSS v2.0 and CVSS v3.x standards used the following steps. Once data is collected, training vectors are selected to obtain the classification precision for each of the eight components for the CVSS v3.x base score vector. For this purpose, two concepts were used that exploit the median and the correlation of the vectors. The median of vector concept aims to fully balance data with undersampling, while the correlation of the vector concept statistically binds all the CVSS v3.x vector parameters, thus allowing for training vectors that follow a constant rule. As a result, a common training set [6] was created. The next step was an extraction of the relevant features from the set of vectors obtained, using Principal Component Analysis (PCA). Several statistical classification methods, including the Support Vector Machine (SVM), Naive Bayes classifier, and K-nearest neighbor (kNN), were applied. Once the most efficient methods for classifying within a given parameter of the CVSS v3.x vector were determined, the classification attempts were carried out while increasing the number of vectors of the trained set from 100 to 1000. Thus, the authors were able to choose the best candidate for machine learning algorithms and optimize classification models. The research shown in [6; 7] indicates that the original CVSS v2.0 base score vectors were mapped to CVSS v3.x with low precision. To enhance accuracy, the original feature vector was augmented with an additional 50, 100, 500, and 1000 dimensions. These additional features were extracted from vulnerability descriptions, with the values computed by normalizing keyword frequencies (dividing the number of occurrences by 100). Text processing and feature extraction were performed using the Natural Language Toolkit (NLTK) [54] library. Finally, we note that since the obtained data are imbalanced, the undersampling method, discussed in [6], was implemented. The research was conducted with the following machine learning algorithms:  
* The k-Nearest Neighbors (kNN) algorithm with Euclidean metric (E) and cosine similarity (C),
* Naive Bayes classifier (NB),
* Probabilistic Neural Network (PNN),
* Soft Independent Modeling of Class Analogy (SIMCA),
* Kernel support vector machine (KSVM) consists of two configurations, namely, with a linear kernel function and Trained Gaussian Radial Basis Function (TGRBF) [55].