在R中定义距离度量

时间:2016-11-28 11:19:26

标签: r

这是我第一次参加论坛,请原谅任何不寻常的格式......

我目前正在研究混合数据类型的聚类算法,并且正在使用clustMixType包中实现的k-prototype方法。这完全没问题。 但是,我现在想为这种聚类方法推导出一些有效性措施。 R中可用的包需要数字输入数据或距离矩阵。因此,我试图使用Huang 1998中给出的等式推导出这个距离矩阵: d(X,Y)= sum(xj-yj)^ 2 +γ* sum(δ(xj,yj)) 我尝试了以下方法:

mat.f <- data.frame(runif(5),runif(5),factor(c("men","women","women","women","men"),levels = c("men","women")))
mat.m <- as.matrix(mat.f)
myfunction <- function(x,y){
    try(sum((x-y)^2))+lambda*try(sum(x!=y))
}
proxy::dist(mat.m,myfunction)

得到一个输出:

1  2  3  4
2 NA         
3 NA NA      
4 NA NA NA   
5 NA NA NA NA
Warning message:
In do.call(".External", c(list(CFUN, x, y, pairwise, if (!is.function(method)) get(method) else method),  :
  NAs introduced by coercion

这显然不是我想要的。 我的问题是: 我怎么能告诉R他应该根据数据的类型进行一次距离计算? 我可能也理解黄1998的定义中的错误。

如果你能帮助我解决这个问题,那就太棒了。

如果我需要提供更多详细信息,请询问。

谢谢你的帮助!

0 个答案:

没有答案