## 3 Preliminaries
### Traditional Birch Algorithm  
In the following, we describe the traditional BIRCH algorithm step by step [48]. First, all job postings converted to an instance format are converted to a \(CF\) form using the formula \(CF\) = (\(N\), \(LS\), \(SS\)). When these instances are converted to a \(CF\) format, a \(CF\)-Tree is run to aggregate several of the created \(CF\)s. At this stage, the algorithm requires the \(B\) (Branching number) parameter. Before evaluating any instance from the dataset, the initial \(CF\)-tree threshold must be determined. This threshold value is used for each new entry and is static during the clustering process. In a traditional BIRCH, the L value denotes the number of leaves. Additionally, the parameters m and b are included for use in further calculations, where \(b\) denotes the counter value for branches on non-leaf \(CF\)s, and \(m\) denotes the counter value for the branches on the leaf \(CF\)s. In the next step, for each instance given, the location of the record is compared with the location of each \(CF\) at the root node, either using the average \(CF\) or a linear number. The algorithm continues, running the entry to the \(CF\) root node closest to the entry. Finally, the node is included with the non-leaf child node of the \(CF\) nodes chosen in the previous step. The locations of instances are compared with the location of each non-leaf \(CF\). The algorithm continues running the routine, with respect to the non-leaf \(CF\) node closest to the entry. Figure 1 shows the process of locating a new centroid in the \(CF\) Tree.  
Figure 1: Locating a new centroid in a \(CF\) Tree.  
The cluster size affects the accuracy of BIRCH. The selection of an appropriate threshold is necessary to increase this accuracy. In addition, the performance of BIRCH is affected by the connection methods used to create the nodes in the tree and can vary greatly with the distance measurements used to calculate the distance between data points and centroids [48].  
The \(CF\) properties contain parameters that directly affect the flow of the algorithm. The descriptions of these properties are given as follows:  
* \(CF\) properties: \(N\), number of samples for a given data point (\(x\)); \(LS\), linear sum of data points; \(SS\), square sum of the data points. While \(LS\) consists of vectorial summation of the data points in an entity, \(SS\) is the vectorial summation of the squares of the data points in an entity. \(LS\) and \(SS\) are defined by Equations (1) and (2), respectively: \[LS =\sum_{i=0}^{N}x_{i}\] (1) \[SS =\sum_{i=0}^{N}x_{i}^{2}\] (2)
* Centroid: Can be calculated from the data in a \(CF\) at run-time, defined as Equation (3): \[x_{0}=\sum_{i=0}^{N}x_{i}=\frac{LS}{N}\] (3)
* Radius (\(R\)): As shown in Equation (4), this is the sum of the distances from the data points in any cluster to the centroid of the cluster, dividing the result by \(N\), and taking the overall square root. This is calculated for each cluster. The radius of the current cluster is obtained as: \[R=\sqrt{\frac{\sum_{i=0}^{N}(x_{i}-x_{0})^{2}}{N}}=\sqrt{\frac{N*SS-2*LS^{2}+N* LS}{N^{2}}}\] (4)
* Diameter (\(D\)): As in Equation (5), this is taken as the sum of the distances from a data point in any cluster to every other data point of the current cluster, repeated for all clusters, dividing the result by \(N\) and its square root. For each cluster, it is calculated. Thus, the diameter of the current cluster is obtained as: \[D=\sqrt{\frac{\sum_{i=0}^{N}\sum_{j=0}^{N}(x_{i}-x_{j})^{2}}{N}}=\sqrt{\frac{2* N*SS-2*LS^{2}}{N^{2}-N}}\] (5)
* Equation (6) indicates the change of \(CF\) when two clusters, \(C1\) and \(C2\), are merged. When a new cluster is joined into an entity, this formula is used, and the \(N\), \(LS\), and \(SS\) values are summed separately. Only all sub-parameters in CFs are summed separately: \[CF=CF1+CF2=(N1+N2,LS1+LS2,SS1+SS2)\] (6)