## 2 Materials and Methods  
Cluster analysis (CA) is a statistical method used to differentiate individual objects (observations) by creating specific and distinct clusters, each containing observations assigned based on their degree of similarity or dissimilarity. The goal of cluster analysis is to uncover patterns and structures within a dataset, providing insights into underlying relationships and associations [10]. Cluster analysis was initially defined in 1939 by [PERSON] as follows [8]: \"Cluster analysis is a general logical procedure, formulated as a procedure by which we group objects into groups based on their similarities and differences\". We have a data matrix \(X\) of type \(n\times p\), where \(n\) is the number of objects and \(p\) is the number of variables (characters and properties). Next, we have the decomposition \(S^{(k)}\) of a set of \(n\) objects into \(k\) certain groups (clusters), i.e., \(S^{(k)}=\{C_{1},C_{2},C_{3},\ldots,C_{k}\}\), while applying [18]  
\[C_{i}\
eq\varnothing,i=1,\ldots k,\]  
and \(\bigcup_{i=1}^{k}C_{i}\) covers the whole space. If the given set of objects \(o=\{A_{1},A_{2},\ldots,A_{n}\}\) and arbitrary coefficient of dissimilarity of objects is \(D\), then a subset \(p\) of the set of objects \(o\) is called a cluster for which [8] holds:  
\[\max_{i,j}\!D\big{(}A_{i};A_{j}\big{)}<\min_{k,l}\!D(A_{k};A_{l})\]  
where \(A_{i},A_{j},A_{l}\in o\) a \(A_{k}\
otin p\). This implies that the maximum distance between objects within a cluster must always be smaller than the minimum distance of any object from the cluster to an object outside of it [18]. Cluster analysis is a valuable tool for production segmentation, classified among design methods used to organize unstructured data based on similarities. At its core, clustering categorizes objects into groups or clusters, maximizing intra-group similarity and minimizing inter-group similarity. It is an unsupervised machine-learning algorithm that operates on unlabeled data [19]. Basic assumptions of using cluster analysis include characteristics of the data. The first assumption is that there should not be outlier observations or missing values in the selected dataset. To prevent data distortion due to measurement units, the data are scaled using methods such as min-max normalization or standardization using z-score. The size of the dataset, the number of observations, and the type of variables (ordinal or interval) influence the choice of the clustering method. Another assumption of cluster analysis is the degree of similarity. Various types of distances exist, including Euclidean distance, squared Euclidean distance, standardized Euclidean distance, Bray-Curtis distance, Manhattan distance, Chebyshev distance, Canberra distance, Hamming distance, Kulsinski distance, correlation distance, and many others [8]. There are many different algorithms used for cluster analysis, such as k-means, hierarchical clustering, and density-based clustering. The choice of algorithm will depend on the specific requirements of the analysis and the nature of the data being analyzed. Two basic types (algorithmic principles) are distinguished in clustering from a theoretical point of view (Figure 1) [20]:* _hierarchical algorithms_--the assignment of subjects to individual groups is stable and does not change during the algorithm;
* _non-hierarchical (partitioning) algorithms_--assignment of subjects to individual groups can change during the algorithm. Hierarchical agglomerative clustering operates on the 'bottom-up' principle. It begins by creating small clusters, initially consisting of single elements at the start of the algorithm. These small clusters are then gradually merged into larger clusters in a sequence of steps until a single cluster containing all observations is formed. The merging process in each step relies on the principle of mutual similarity, defined based on the distance metric used, whether it is between individual observations, between observations and clusters, or between clusters themselves [21].