Answers:
从概念上讲
拟合分类器意味着将数据集作为输入,然后输出分类器,该分类器是从可能的分类器空间中选择的。在许多情况下,通过一组参数来标识分类器(即与其他可能的分类器区分开)。通常通过解决优化问题或某些其他数值过程来选择参数。但是,在knn的情况下,分类器由训练数据本身识别。因此,在抽象级别上,拟合knn分类器仅需要存储训练集。
在实施层面
在新数据点上评估knn分类器需要在训练集中搜索其最近的邻居,这在训练集中较大时可能是一项昂贵的操作。正如RUser所提到的,有多种技巧可以加快搜索速度,通常可通过基于训练集创建各种数据结构来起作用。一般的想法是,分类新点所需的一些计算工作实际上是跨点通用的。因此,这项工作可以提前完成,然后重新使用,而不是针对每个新实例重复进行。使用这些技巧的knn实施将在培训阶段完成这项工作。例如,scikit-learn可以在fit()
函数调用期间构造kd树或球树。