## 4 Results
Three tests were performed to evaluate the performance of the system for each of the configurations, which corresponded to three different sets of data. In each run the system recommendations and the preferences of each user were used to estimate user measurements; measurements for each user led to the estimation of the system measurements. Figure 8: Extract from the knowledge graph. * [2021] Hybrid Recommender System
* [2021] Clustering / K-Means
* [2021] Semantic Recommender Output
* [2021] User Job Sectors: 001-03-07:03-02 : iOS Nativo User skills: ('20-10-01-*:01', 4, 2) : Xcode ('10-06-01-5:03', 4, 2) : ObjectiveC ('10-07-09-2:01', 3, 2) : MVC ('20-09-02-*:00', 3, 3) : Frontend Previous Job Sectors:  Related Job Sectors: 001-03-08:00-04 : Code Reviewer 001-03-07:03-02 : Native iOS 001-03-07:03-00 : Mobile Applications Related Skills: ('10-06-01-9:02', 3, 3) : Swift ('10-07-09-2:03', 3, 2) : MVVM ('10-07-09-2:04', 3, 2) : VIPER ('10-07-05-*:01', 3, 2) : Mantis ('10-06-01-5:05', 3, 3) : Kotlin ('10-07-09-2:02', 3, 3) : MVP ('20-10-02-*:01', 3, 2) : AndroidStudio ('10-06-01-5:03', 4, 3) : ObjectiveC Associated Skills: ('10-07-07-*:00', 0, 0) : Version management ('20-09-02-1:00', 0, 0) : Progressive ========================
* [2021] Developed in Android with Kotlin
* [2021] Developed in iOS with Swift
* [2021] Basic programming with Swift  
* [2021]  
According to [12], although there is a natural trade-off between precision and recall, an increase in recall does not always lead to a reduction in precision. One way to create a single measurement that summarises both precision and recall is the harmonic mean between precision and recall (F1), which is calculated with (7):  
\[F=\frac{2*Precision*Recall}{Precision+Recall} \tag{7}\]  
In order to evaluate our system, the harmonic mean was calculated for the three runs (Table 6). Taking into account mainly the measurements of precision, recall and errors, in general, on analysis of Table 3 (performance with training data) and Table 6 (harmonic mean comparison), it was observed that in relation to the baseline performance (hybrid recommender system with stored data based on taxonomy [11]), better performance was observed for the DBSCAN-based configuration (setting 6) and for the configuration based on semantic rules (setting 3), which suggests a good modeling of the data by the ontology and clustering performed by DBSCAN. K-means clustering showed poorer performance, which could be explained by the nature of the domain and the distribution of the positions in space. Better clustering (related positions) was generally found when using DBSCAN \begin{table}
\begin{tabular}{c c c c c c c c} \hline \hline
**Setting** & **MAE** & **RMSE** & **Coverage** & **Precision** & **Recall** & **Novelty** & **Serendipity** \\ \hline
1 & 0.59 & 11.05 & 0.61 & 0.99 & 0.37 & 0.11 & 0.06 \\
2 & 0.50 & 9.49 & 0.71 & 0.97 & 0.45 & 0.17 & 0.05 \\
3 & 0.25 & 5.16 & 0.94 & 0.82 & 0.87 & 0.39 & 0.06 \\
4 & 0.23 & 4.49 & 0.81 & 0.94 & 0.73 & 0.39 & 0.05 \\
5 & 0.34 & 7.03 & 0.87 & 0.84 & 0.75 & 0.34 & 0.06 \\
6 & 0.27 & 5.63 & 0.94 & 0.84 & 0.86 & 0.45 & 0.05 \\
7 & 0.51 & 11.72 & 0.94 & 0.62 & 0.65 & 0.25 & 0.04 \\
8 & 0.35 & 7.64 & 0.97 & 0.75 & 0.86 & 0.42 & 0.03 \\ \hline \hline \end{tabular}
\end{table} 
Table 4: RS performance measurements with total data. \begin{table}
\begin{tabular}{c c c c c c c c} \hline \hline
**Setting** & **MAE** & **RMSE** & **Coverage** & **Precision** & **Recall** & **Novelty** & **Serendipity** \\ \hline
1 & 0.58 & 9.13 & 0.64 & 1.00 & 0.36 & 0.14 & 0.09 \\
2 & 0.51 & 8.22 & 0.73 & 0.97 & 0.41 & 0.21 & 0.07 \\
3 & 0.25 & 4.44 & 0.91 & 0.83 & 0.82 & 0.46 & 0.07 \\
4 & 0.22 & 3.65 & 0.82 & 0.93 & 0.71 & 0.45 & 0.07 \\
5 & 0.38 & 6.62 & 0.91 & 0.80 & 0.74 & 0.39 than K-means in the graph analysis. Improvements in recall and serendipity measurements could be associated with use in the ontology and the estimation of associated skills or skills of interest and filtering of positions prior to the current one in the order relationship imposed by a hierarchy.