我想使用 Jaccard 计算距离矩阵距离。并尽快这样做。我曾经使用 scikit-learn's pairwise_distances功能。但是 scikit-learn 并不打算支持 GPU,甚至还有一个 known bug这会使函数在并行运行时变慢。
我唯一的限制是生成的距离矩阵可以被馈送到 scikit-learn's DBSCAN聚类算法。我正在考虑使用 tensorflow 实现计算,但找不到一种简单好用的方法。
PS:我有理由预先计算距离矩阵,而不是让 DBSCAN 根据需要进行计算。
请您参考如下方法:
嘿,我遇到了同样的问题。
考虑到 jaccard 相似度是真阳性 (tp) 与真阳性、假阴性 (fn) 和假阳性 (fp) 之和的比率,我想出了这个解决方案:
def jaccard_distance(self):
tp = tf.reduce_sum(tf.mul(self.target, self.prediction), 1)
fn = tf.reduce_sum(tf.mul(self.target, 1-self.prediction), 1)
fp = tf.reduce_sum(tf.mul(1-self.target, self.prediction), 1)
return 1 - (tp / (tp + fn + fp))
希望这对您有所帮助!
