我了解空间数据kNN算法的前提。而且我知道我可以扩展该算法以用于任何连续数据变量(或具有汉明距离的标称数据)。但是,在处理高维数据时使用了哪些策略?
例如,假设我有一个数据表 (x[1], x[2], x[3], ..., x[n]),我想构建一组分类器来预测其中一个列(比如 x[n])。使用 kNN 算法,我将从剩余的列 (x[1]-x[n-1]) 中选择任意两列进行训练。所以说我可以选择 x[1] 和 x[2] 并根据它们构建一个分类器。或者我可以选择 x[1] 和 x[4],或者我可以选择 x[5] 和 x[8],等等。我什至可以只选择一个列并从中构建一个分类器,或者 3 个列并构建一个分类器关闭它。使用更高维度(2D、3D 等)是否有优势,还是应该构建 x-1 单维度分类器并以某种方式聚合它们的预测?
由于从变量的所有潜在组合构建所有这些分类器在计算上会很昂贵。我如何优化此搜索以从该集合中找到最佳的 kNN 分类器?而且,一旦我找到一系列分类器,将它们的输出组合到单个预测的最佳方法是什么?投票可能是这个问题最简单的答案。或者根据每个分类器的训练数据中的错误率对每个投票进行加权。
大多数实现如何将 kNN 应用于更通用的学习?