While our beacon selection strategy allows us to use a subset of less sensitive but more robust signals from selected beacons for similarity computation, it reduces the dimensionality of the observation vector and fingerprints to \(s = |B_s^{(l_i)}|\) . In Section , we examine the various configurations of \(s\)  during the training and validation before deciding the best configuration for \(s\) .
Such a dimensionality reduction induces another problem to similarity computation, especially when the linearly separable vectors now become linearly non-separable.
One solution is to map the vector in the current space to the high-dimensional space such that the vectors become linearly separable again.
However, it is computationally expansive to compute the similarity in the high-dimensional space, not to mention the additional mapping function to transform the vector from one space to another space.
To address this issue, this paper employs a kernel trick to compute the similarity between any two vectors in the high-dimensional space without literally visiting the space [1]}.
