您的位置:首页 > 其它

一个使用 latent space clustering model 和 NMF 进行Bicluster 聚类的实例

2017-01-07 16:38 831 查看
NMF = nonnegative matrix  factorization 

具体介绍请看拙文


使用NMF模型进行消费者行为分析

本文将举例介绍如何综合使用  latent clustering model 和 NMF 模型 对消费者进行聚类。

我们这次演示用的数据是 Davis 数据集, 这是个18 * 14 的小数据集, 每一行是一位女性,总共18位女性,每一列是一个活动,总共有14个活动。 每一个cell可以取1或者0, 取值之为1时,代表该行代表的女士参加了该列的活动。你可以把每个活动想象成不同的电影或者在不同的餐馆就餐。 这里有个关于使用latent
clustering model的教程,也是使用的Davis 数据集。

以下是具体数据:



我们使用R package latentnet  进行聚类

library(latentnet)

data(davis)

davis.fit<-ergmm(davis~bilinear(d=2)+rsociality)

plot(davis.fit,pie=TRUE,rand.eff="sociality",labels=TRUE)




从图中的结果看,活动似乎被分为了两个大 cluster, 上面的E1 -E6, 以及下方的E9 - E14。 女士们也能大致分为上下两个组。 

我们再来看一下 NMF模型的结果,我们依旧使用我们的NMF  R 包。 根据上面的结果我们把Basis 设为2。

library(NMF)
data_matrix<-as.matrix.network(davis)
fit<-nmf(data_matrix, 2, "lee", nrun=20)
par(mfrow = c(1, 2))
basismap(fit)
coefmap(fit)




我们可以看到, NMF的结果更为清晰,从右边的 Mixture coefficients 图中, 我们可以看到,NMF把E1 -E6 分为一类, E9 -E12 归为另一类。右边的basis components 图也清晰的显示出绝大多数女士被单独的归到了一类中。 两种模型所得出的结果一致。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐