# High-Dimensional Data Analysis Using Parameter Free Algorithm Data Point Positioning Analysis
## 3 Overview of Clustering Algorithms
### Affinity Propagation
For each data point, the algorithm counts the number of neighboring data points that fall within a specified distance range and builds a neighbor-link (Table 1) that includes information about the 1-NN and Max-NN of each data point. The algorithm then sorts the data points based on the number of neighbors in ascending order, and clusters the data points, starting with the data point with the fewest neighbors and following its Max-NN, until no more points can be added to the cluster. The algorithm repeats this process for all remaining data points until all have been assigned to a cluster. The Algorithm 3 presented below outlines the complete set of steps involved in the DPPA clustering algorithm:

1. \(d(p_{i},p_{i+1})=\) \((\sqrt{(p_{i}^{x}-p_{i+1}^{x})^{2}+(p_{i}^{y}-p_{i+1}^{y})^{2}+(p_{i}^{z}-p_{ i+1}^{z})^{2}})\)
2. For \(\forall p_{i}\) determine \(min(d(p_{i},p_{i+1})),i=\{1\ldots m\}\xrightarrow{\mathit{store}}\phi(min(d(p _{i})),\ldots,min(d(p_{m})))\)
3. Calculate the range of radius, denoted by \(\lambda\), between the minimum and maximum values of a scalar value \(\phi\). 4. For each point \(p_{i}\epsilon\delta\), 1. Compute \(n_{pi}\), which is the count of neighboring data points within the specified radius range \(\lambda\), for a given data point \(p_{i}\). The calculation involves summing up a series of ones or zeros, depending on whether the distance between \(p_{i}\) and a particular neighboring data point is within or outside the specified range. 2. Construct a table (Table 1) that shows the nearest neighboring data points for each data point \(d_{pi}\), including the nearest neighbor (1-\(NN\)) and maximum neighbor (\(Max\)-\(NN\)): \begin{table}
\begin{tabular}{c c c} \hline \hline
**Data Point** & **1-NN** & **Max-NN** \\ \hline \(p_{i}\) & \(p_{a}\) where a is some index & \(p_{i}\to p_{a}\to p_{d}\to p_{e}\) \\ \hline \(p_{i}\) & \(p_{b}\) where b is some index & \\ \hline \(p_{i}\) & \(p_{c}\) where c is some index & \\ \hline \(p_{i}\) & \(p_{d}\) & \\ \hline \(p_{i}\) & \(p_{e}\) & \\ \hline \hline \end{tabular} Note: In the context of this statement, 1-NN refers to a data point \(p_{i}\), where the distance \(d(p_{i})\) falls within a certain range defined by the scalar values \(min(\phi)\) and \(max(\phi)\). This condition applies to each data point \(p_{i}\), where \(i\) is an index ranging from \(1\) to \(m\). Max-NN refers to a process of linking data points, starting with a particular point \(p_{i}\), including the 1-NN of \(p_{i}\), and continuing the linkage process until \(p_{i}\) has no 1-NN left to be included in the linkage.

\end{table} 
Table 1: Details about the nearest neighboring data points. Arrange the data points \(p_{i}\) in the neighbor-link table in a manner such that they are sorted in ascending order based on the value of their corresponding \(n_{pi}\). 1. To form a cluster \(C_{i}\), first place the data point \(p_{i}\), and then add all the data points \(p_{k}\) that are in the Max-NN linkage of \(p_{i}\). 2. Add all the data points \(p_{j}\) that are 1-NN (nearest neighbors) of \(p_{i}\) to the cluster \(C_{i}\). 3. If the next data point \(p_{i+1}\) belongs to cluster \(C_{k}\), then assign \(C_{k}\) to \(C_{i}\) and set \(p_{i}\) to \(p_{i+1}\), and repeat the process, starting from step a. 4. Continue the process until there are no more data points left. ```
**Algorithm 3**Data point positioning analysis algorithm.