## 1 The first stage of the study involves preprocessing the data  
The initial data are prepared for further analysis at this stage, including eliminating the distribution's asymmetry and bringing the features to a single scale. First, a logarithmic transformation is  
Figure 1: Geographical location of areas with different soil types in Kazakhstan. Figure 2: Stages of data processing and construction of a model for predicting soil salinity. applied, which reduces the impact of outliers and the skewness of the distribution. Next, the data are normalized so all features have values in the range [0, 1]. This improves subsequent algorithms' convergence and ensures each feature's uniform influence on the model. **2. Logarithmic transformation (1):**  
\[X_{ij}^{\prime}=\log\bigl{(}1+X_{ij}\bigr{)} \tag{1}\]  
where \(X_{ij}\)--is the original value of the \(j\)-th feature of object \(i\), where \(X\in Rnt\times d\), \(X_{ij}^{\prime}\)--prime is the transformed value after applying the logarithm, \(Xt\in R_{n}\times d\). **3. Normalization (2):**  
\[X_{ij}^{\text{norm}}=\frac{X_{ij}^{\prime}-\min(X^{\prime})}{\max(X^{\prime}) -\min(X^{\prime})} \tag{2}\]  
where \(X_{ij}^{\prime}\)--prime is the feature matrix after logarithmic transformation; \(X_{ij}^{\text{norm}}\)--is the normalized feature matrix, where the values are brought to the range from 0 to 1. **4. After data preprocessing, pseudo-labels are generated using the K-Means algorithm. ** At this stage, the K-Means algorithm is used to initially split the normalized data \(\text{X}_{\text{norm}}\) into two clusters. The algorithm calculates the cluster centers and assigns a label to each point based on the minimum distance to the nearest center. The resulting pseudo-labels are used as a guide for further training the XGBoost model, providing the initial data splitting (3) and label assignment (4). \[d(x_{i},\mu_{k})=|x_{i}-\mu_{k}\mid^{2} \tag{3}\]  
where \(x_{i}\)--is the feature vector of the i-th object from \(\text{X}_{\text{norm}}\); \(\mu_{k}\)--is the center of cluster \(k\), where \(k=1\), \(2\), \(d(x_{i},\mu_{k})\)--is the square of the Euclidean distance between \(x_{i}\) in \(\mu_{k}\). \[y_{i}=\underset{k}{\text{argmin}}d(x_{i},\mu_{k}) \tag{4}\]  
where \(d(x_{i},\mu_{k})\)--are the calculated distances for each object \(x_{i}\) to the cluster centers, \(k\)--is the cluster index, and \(k\in\{1,2\}\), y_i--is the pseudo-label assigned to the \(i\)-th object, \(Y\in\{0,1\}\). **5. In this step, XGBoost is trained on normalized data \(\text{X}^{\text{norm}}\) with pseudo-labels \(\boldsymbol{Y}\) to obtain probabilistic membership estimates in a particular cluster. ** These probabilities reflect hidden patterns in the data that are not captured by simple clustering methods. Result (probability \((y=1\mid x)\) (5) is added to the original features, forming an extended feature space \(X^{\text{enh}}\) (6). \[P(y=1\mid x)=\frac{1}{1+e^{-(w^{\text{T}}x+b)}} \tag{5}\]  
where \(x\)--is a feature vector from \(X^{\text{norm}}\), \(w\)--is a vector of model weights, \(b\)--is (bias), and \(P(y=1\mid x)\)--is the probability of object \(x\) belonging to class 1; the value is in the range [0, 1]. \[X^{\text{enh}}=X^{\text{norm}},\ (y=1\mid X) \tag{6}\]  
where \(X^{\text{norm}}\)--is the normalized data, \(P(y=1\mid X)\)--is the probability vector for each object obtained by formula (6), and \(X^{\text{enh}}\)--is the extended feature matrix containing the original features and an additional probability feature, \(X^{\text{enh}}\in R_{n}\times(d+1)\). **6. The next step is to apply ensemble clustering. ** In this step, the extended feature space \(X^{\text{enh}}\) is used to apply three clustering methods in parallel: K-Means, agglomerative clustering, and DBSCAN. Each method independently assigns labels to objects, and then the results are combined using a voting procedure, where the final label for an object is determined as the most frequently occurring value.