1

我正在尝试使用 spark 2.2.0 中的 KNN 算法。我想知道我应该如何设置我的桶长度。记录数/特征数各不相同,因此我认为最好根据某些条件设置长度。我应该如何设置存储桶长度以获得更好的性能?我将向量中的所有特征重新调整为 0 到 1。

另外,有什么方法可以保证 KNN 算法返回最小数量的元素?我发现有时桶内的元素数量小于查询的 k,结果我可能想要至少一两个邻居。

谢谢~

https://spark.apache.org/docs/latest/api/python/pyspark.ml.html#pyspark.ml.feature.BucketedRandomProjectionLSH

4

1 回答 1

2

根据Scaladocs

如果输入向量被归一化,1-10 倍pow(numRecords, -1/inputDim)是一个合理的值

于 2017-10-02T10:46:34.623 回答