我必须使用余弦相似性度量和其他一些用户定义的度量,对一组向量使用 K 最近邻。我怎样才能使用scikits学习来实现这一点?我找到了sklearn.neighbors.KNeighborsClassifier
,但我无法找出用户定义指标的任何选项。我目前正在使用最新版本的scikits学习0.11。
还?)不可能将预先计算或延迟计算的用户定义距离函数传递给 kNN 模型。
但是在主分支中,现在您可以使用任意 p 表示 p-闵可夫斯基距离:
https://github.com/scikit-learn/scikit-learn/pull/742
为蛮力方法传递任意用户定义的距离函数非常容易,但是球树实现(用于低维数据)不能轻易适应一般情况。
同样对于稀疏正数据和余弦相似性,倒排索引将是更好的数据结构,请参阅:http://metaoptimize.com/qa/questions/9691/efficient-nearest-neighbors-in-a-very-sparse-settings