有没有办法选择scikits中的k个最近邻居学习用户定义的距离度量?

时间:2012-04-12 14:01:23

标签: python machine-learning scikits scikit-learn

我必须使用K个最近邻居来使用余弦相似性度量和一些其他用户定义的度量。如何使用scikits学习?我找到了sklearn.neighbors.KNeighborsClassifier,但我无法找出用户定义指标的任何选项。我目前正在使用最新版scikits学习0.11。

1 个答案:

答案 0 :(得分:3)

将预先计算或延迟计算的用户定义距离函数传递给kNN模型是不是(还可能?)。

然而,在主分支中,现在您可以使用任意p来表示p-Minkowsky距离:

https://github.com/scikit-learn/scikit-learn/pull/742

可以很容易地为蛮力方法传递任意用户定义的距离函数,但是球树实现(对于低维数据)不能轻易地适应一般情况。

对于稀疏正数据和余弦相似性,倒排索引将是更好的数据结构,请参阅:http://metaoptimize.com/qa/questions/9691/efficient-nearest-neighbors-in-a-very-sparse-settings