Mar*_*een 17 statistics pattern-recognition similarity data-mining social-networking
我正在做一个社区网站,要求我计算任何两个用户之间的相似性.使用以下属性描述每个用户:
年龄,皮肤类型(油性,干性),头发类型(长,短,中),生活方式(活跃的户外爱好者,电视垃圾)等.
任何人都可以告诉我如何解决这个问题或指向我一些资源?
Geo*_*tas 14
另一种计算(在R中)数据集中观察值之间的所有成对不相似度(距离)的方法.原始变量可以是混合类型.通过使用Gower的一般相异系数(Gower,JC(1971),一般相似系数及其一些属性,Biometrics 27,857-874)来实现对名义,序数和(a)对称二元数据的处理.有关详细信息,请参阅第47页.如果x包含这些数据类型的任何列,则Gower的系数将用作度量标准.
例如
x1 <- factor(c(10, 12, 25, 14, 29))
x2 <- factor(c("oily", "dry", "dry", "dry", "oily"))
x3 <- factor(c("medium", "short", "medium", "medium", "long"))
x4 <- factor(c("active outdoor lover", "TV junky", "TV junky", "active outdoor lover", "TV junky"))
x <- cbind(x1,x2,x3,x4)
library(cluster)
daisy(x, metric = "euclidean")
Run Code Online (Sandbox Code Playgroud)
你会得到 :
Dissimilarities :
1 2 3 4
2 2.000000
3 3.316625 2.236068
4 2.236068 1.732051 1.414214
5 4.242641 3.741657 1.732051 2.645751
Run Code Online (Sandbox Code Playgroud)
如果您对分类数据的降维方法感兴趣(也是将变量排列到同类簇中的方法),请检查此项