如何在Spark的LSH算法Bucketed Random Projection中以最佳方式选择铲斗长度?
使用.setBucketLength()设置此参数,例如来自Spark文档:
val brp = new BucketedRandomProjectionLSH()
.setBucketLength(2.0)
.setNumHashTables(3)
.setInputCol("keys")
.setOutputCol("values")
任何支持铲斗长度选择的理论参考都将受到赞赏。
我能在网上找到的唯一建议是this one,这并没有解释所选启发式的选择。
要指定bucketLength的值,如果输入向量被标准化,则1-10次pow(numRecords,-1 / inputDim)将是合理的值。
因此,我不确定为什么启发式算法应该起作用。