我想知道是否有任何可能的方法可以使用矩阵乘法来计算Jaccard系数。
我用了这段代码
jaccard_sim <- function(x) {
# initialize similarity matrix
m <- matrix(NA, nrow=ncol(x),ncol=ncol(x),dimnames=list(colnames(x),colnames(x)))
jaccard <- as.data.frame(m)
for(i in 1:ncol(x)) {
for(j in i:ncol(x)) {
jaccard[i,j]= length(which(x[,i] & x[,j])) / length(which(x[,i] | x[,j]))
jaccard[j,i]=jaccard[i,j]
}
}
在R中实现这一点是完全可以的。我完成了骰子的相似性,但是被Tanimoto / Jaccard所卡住。有人可以帮忙吗?
vegan
软件包中已经实现了许多相似性索引(包括Jaccard)。我认为它们在速度上也趋于很好地优化。