学习矢量量化。
k近邻的缺点是你需要维持整个数据集的训练。
学习矢量量化算法(简称LVQ)是一种人工神经网络算法,它允许你选择要挂在多少个训练实例上,并精确地了解这些实例应该是什么样子。
LVQ的表示是一个codebook 向量的集合。这些都是在开始时随机选择的,并根据学习算法的多次迭代对训练数据集进行最佳的总结。
在学习之后,codebook vector可以用来做出像k近邻那样的预测。通过计算每个codebook vector和新数据实例之间的距离,可以找到最相似的邻居(最佳匹配的codebook vector)。然后将最佳匹配单元的类值或(回归的实际值)作为预测返回。
如果您将数据重新缩放到具有相同的范围(比如0到1之间),就可以获得最佳结果。
如果发现KNN在数据集上提供了良好的结果,那么可以尝试使用LVQ来减少存储整个训练数据集的内存需求。