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