首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我应该使用哪种集群技术?

问我应该使用哪种集群技术?
EN

Stack Overflow用户
提问于 2014-05-07 14:52:50
回答 2查看 243关注 0票数 0

我有一个数据矩阵,如下所示。

user access matrix..each行代表用户,每一列代表该用户访问的页面类别。

代码语言:javascript
复制
0    8    1    0    0    8    0    0    0    0    0    0    0    11    2    2    0  
1    0    7    0    0    0    0    0    1    1    0    0    0    0    0    0    1  
1    0    1    1    0    0    0    0    0    1    0    0    0    1    0    0    0  
6    1    0    0    0    2    6    0    0    0    0    1    0    0    0    0    0  
5    3    2    0    2    0    0    0    0    0    1    0    0    0    1    0    0  
2    3    0    1    0    1    0    0    0    0    0    1    0    3    0    0    0  
9    0    1    1    0    0    5    0    0    0    1    2    0    0    0    0    0  
5    1    4    0    0    0    1    0    0    2    0    0    0    9    0    0    0  
5    5    0    2    0    1    0    0    0    0    1    1    0    0    0    0    0  
1    2    0    0    2    3    3    0    0    1    1    0    0    0    4    0    0  
0    1    0    1    0    2    0    0    1    0    0    0    0    2    0    0    0  
5    4    0    0    1    0    0    0    0    0    1    0    0    2    0    0    0  
0    0    0    2    0    0    2    12    1    0    0    0    2    0    0    0    0  
6    1    0    0    0    0    58    15    7    0    1    0    0    0    0    0    0  
1    0    2    0    0    1    1    0    0    0    2    0    0    0    0    0    0 

我需要在它上面应用双簇技术。这种双聚类技术将首先生成用户集群,然后生成页面clusters.after,它将用户集群和页面集群结合起来生成双集群。现在,我不知道应该使用哪种集群技术来实现此目的。最好的聚类将从该矩阵生成一致的双色图。

EN

回答 2

Stack Overflow用户

发布于 2017-08-27 02:42:03

以下是几种可以帮助回答这个问题的聚类算法的摘要

“我应该使用哪种集群技术?”

没有客观上“正确”的聚类算法Ref

聚类算法可以根据它们的“集群模型”进行分类。为特定类型的模型设计的算法在不同类型的模型上通常会失败。例如,k-means不能找到非凸簇,只能找到圆形簇。

因此,理解这些“集群模型”成为理解如何在各种聚类算法/方法中进行选择的关键。典型的群集模型包括:

1连接模型:基于距离连接构建模型。例如,层次聚类。当我们需要根据树木采伐高度进行不同的分区时使用。R函数:在stats包中的hclust。

2质心模型:通过用单个均值向量表示每个集群来构建模型。当我们需要清晰的分区时使用(与后面描述的模糊聚类相反)。R函数: stats包中的kmeans。

3分布模型:基于统计分布构建模型,例如期望最大化算法使用的多变量正态分布。当簇形状可以是任意的时使用,不像k-means,它假定为圆形簇。R函数: emcluster包中的emcluster。

4密度模型:基于数据空间中连接的密集区域的集群构建模型。例如DBSCAN和光学。当群集形状可以是任意形状时使用,不像k-means算法那样假定为圆形群集。R dbscan包中的函数dbscan。

5个子空间模型:基于集群成员和相关属性构建模型。例如,双聚类(也称为共同聚类或双模式聚类)。当需要同时进行行和列聚类时使用。R函数biclust在biclust包中。

6分组模型:根据分组信息构建模型。例如协同过滤(推荐算法)。推荐实验室包中的R函数推荐器。

7基于图的模型:基于集团构建模型。社区结构检测算法试图在有向图或无向图中找到密集的子图。例如,图形包中的R函数cluster_walktrap。

8 Kohonen自组织特征映射:基于神经网络建立模型。R函数在kohonen包中。

9频谱聚类:基于非凸聚类结构构建模型,或者当中心的度量不是对完整聚类的合适描述时。R函数规范在kernlab包中。

10子空间聚类:对于高维数据,距离函数可能会有问题。集群模型包括集群的相关属性。例如,R包HDclassif中的hddc函数。

11序列聚类:相关的组序列。rBlast包。

12亲和性传播:基于数据点之间的消息传递构建模型。它不需要在运行算法之前确定集群的数量。对于某些计算机视觉和计算生物学任务,例如人脸图片的聚类和识别受调控的转录本,它比k-means,Ref Rpackage APCluster更好。

13流聚类:基于连续到达的数据建立模型,例如电话记录,金融交易等。例如R package BIRCH [https://cran.r-project.org/src/contrib/Archive/birch/]

14文档聚类(或文本聚类):基于奇异值分解构建模型。它已经应用于主题抽取中。例如,Carrot [http://search.carrot2.org]是一个开源的搜索结果聚类引擎,可以将文档聚类到主题类别中。

15潜在类模型:它将一组观察到的多变量与一组潜在变量联系起来。LCA可用于协同过滤。recommenderlab包中的R函数推荐具有协同过滤功能。

16双聚类:用于同时对双模式数据的行和列进行聚类。例如R函数在包中的biclust。

17软聚类(模糊聚类):每个对象在一定程度上属于每个簇。例如Fclust包中的R fclust函数。

票数 1
EN

Stack Overflow用户

发布于 2014-05-07 15:57:16

你不能仅仅通过看矩阵就知道哪种聚类算法是最好的。你必须尝试不同的算法(可能是k-means,贝叶斯,最近邻或你的库中的任何算法)。进行交叉验证(聚类只是将用户归类到聚类中心的一种分类类型)并评估结果。您甚至可以将其打印到图表中。那就做个决定。没有一个决定是完美的,你总会有错误。结果取决于你所期望的。也许错误更多的结果在你个人看来会有更好的结果。

你有没有尝试过任何算法?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23510748

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档