## 3 Background
### Modified Density Peak Clustering Algorithm
#### 3.1.2 Determination of Clustering Categories  
For the dataset \(S=\{\vec{x}_{i}\}_{i=1}^{N}\), the corresponding index set is \(I_{S}=\{1,2,\cdots,N\}\), and the distance between two data points \(\vec{x}_{i}\) and \(\vec{x}_{j}\) is noted as \(d_{ij}=dist(\vec{x}_{i},\vec{x}_{j})\). These distances can be expressed as Euclidean distances or distances based on kernel functions. The local density of data point \(\vec{x}_{i}\) in dataset \(S\) is defined as \(\rho_{i}\), which includes cut-off kernel or Gaussian kernel. Cut-off kernel:  
\[\rho_{i}=\sum_{j\in I_{S}\setminus\{i\}}X(d_{ij}-d_{c}),\text{and}\ X(x)= \left\{ \begin{array}{l}1,x<0\\ 0,x\geq 0\end{array} \right., \tag{6}\]  
where \(d_{c}\) is a cut-off distance that must be specified in advance. Gaussian kernel:  
\[\rho_{i}=\sum_{j\in I_{S}\setminus\{i\}}e^{-(\frac{d_{ij}}{d_{c}})^{2}}. \tag{7}\]  
The local density \(\rho_{i}\) in Equation (6) is equal to the number of data points that are closer than \(d_{c}\) around the specific data point \(\vec{x}_{i}\), thus the \(\rho_{i}\) in Equation (6) is a discrete value. However, the local density \(\rho_{i}\) in Equation (7) is calculated by using the Gaussian kernel, thus the \(\rho_{i}\) in Equation (7) is a continuous value. As a result, the latter is less likely to conflict (that is, different data points have the same local density). The distance \(\delta_{i}\) for each data point \(\vec{x}_{i}\) is defined as the minimum distance between the data point \(\vec{x}_{i}\) and any other data point with a higher local density. For the data point \(\vec{x}_{i}\) with the highest local density, we conventionally take the maximum distance between the point \(\vec{x}_{i}\) and any other pointswith a lower local density. We assume that \(\{q_{i}\}_{i=1}^{N}\) represents the descending order index set of local density set \(\{\rho_{i}\}_{i=1}^{N}\), that is, it satisfies:  
\[\rho_{q_{1}}\geq\rho_{q_{2}}\geq\cdots\geq\rho_{q_{N}}. \tag{8}\]  
The distance \(\delta_{i}\) of data point \(\vec{x}_{i}\) in dataset \(S\) is calculated as follows:  
\[\delta_{q_{i}}=\left\{ \begin{array}{ll}\min_{j<i}\left\{d_{q_{i}q_{j}} \right\}&,i\geq 2\\ \max_{j\geq 2}\left\{\delta_{q_{j}}\right\}&,i=1\end{array} \right.. \tag{9}\]  
The cluster centers are defined as those points with higher \(\delta_{i}\) and relatively higher \(\rho_{i}\) at the same time. To find cluster centers, we consider the \(\rho_{i}\) and the \(\delta_{i}\) together to define a value \(\gamma_{i}\). The \(\gamma_{i}\) value of each point \(\vec{x}_{i}\) is calculated as follows:  
\[\gamma_{i}=\rho_{i}\delta_{i},i\in I_{S}. \tag{10}\]  
We define \(\{m_{i}\}_{i=1}^{N}\) as the descending order index set of \(\{\gamma_{i}\}_{i=1}^{N}\), that is:  
\[\gamma_{m_{1}}\geq\gamma_{m_{2}}\geq\cdots\geq\gamma_{m_{N}}. \tag{11}\]  
Obviously, the greater is the \(\gamma_{i}\) value, the more likely it is a cluster center. We assume that the number of clusters in the dataset \(S\) is \(K\), so we can select the data points corresponding to the \(K\) maximum values of \(\{\gamma_{i}\}_{i=1}^{N}\) as the clustering centers. The cluster centers that have been selected can be denoted as follows:  
\[C=\{C_{i}|C_{i}=x_{m_{i}},\;i=1,2,\cdots,K\}, \tag{12}\]  
where \(C_{i}\) is the center of the \(i\)th cluster, \(K\) represents the number of clusters. After the cluster centers have been found, MDPCA assigns each remaining point to the same cluster as its nearest neighbor of higher density. After obtaining cluster labels of all data points, the training dataset \(S\) is divided into \(K\) subsets \(DC_{1},DC_{2},\cdots,DC_{K}\). The next step is to use the K subsets to train K different DBN classifiers. The MDPCA algorithm is described in Algorithm 1. ```
0: Training dataset \(S=\{\vec{x}_{1},\vec{x}_{2},\cdots,\vec{x}_{N}^{*}\}\), the number of clusters \(K\), Gaussian Kernel parameter \(\sigma\). 0: the K subsets \(DC_{1}\), \(DC_{2}\), \(\cdots\), \(DC_{K}\).