I understand the premise of kNN algorithm for spatial data. And I know I can extend that algorithm to be used on any continuous data variable (or nominal data with Hamming Distance). However, what strategies are used when dealing with higher dimensional data?
For example, say I have a table of data (x[1], x[2], x[3], ..., x[n]) and I want to build a set of classifiers to predict one of those columns (say x[n]). Using kNN algorithm I would pick any two columns from the remaining columns (x[1]-x[n-1]) to train against. So say I could pick x[1] and x[2] and build a classifier off those. Or I could pick x[1] and x[4], or I could pick x[5] and x[8], etc. I could even pick just a single column and build a classifiers off that, or 3 columns and build a classifiers off that. Is there an advantage to using higher dimensions (2D, 3D, etc) or should you just build x-1 single dimension classifiers and aggregate their predictions in some way?
Since building all of these classifiers from all potential combinations of the variables would be computationally expensive. How could I optimize this search to find the the best kNN classifiers from that set? And, once I find a series of classifiers what's the best way to combine their output to a single prediction? Voting might be the simplest answer to this question. Or weighting each vote by error rates from the training data for each classifier.
How do most implementations apply kNN to a more generalized learning?