首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中具有虚拟编码变量的聚类分析

R中具有虚拟编码变量的聚类分析
EN

Stack Overflow用户
提问于 2016-09-01 13:59:47
回答 2查看 1.9K关注 0票数 0

我正在尝试对一组数据运行聚类分析,但无法找到适当的洞察力。例如:我有一组100个资源(列)中的50个变量(行)。每种资源都有一些作为优势的变量和另一些作为劣势的变量。因为每个资源可能只有10个变量作为强度,5个变量作为弱点,所以其他被遗漏的变量被标记为零。现在,我希望找到具有共同优势和劣势的资源集群。

我使用了分层聚类和k-means,通过转置dataset,使资源按行排列。k-means图显示了不同聚类之间的太多重叠,因此只使用层次聚类。我已经用+10替换了1(强度),用-10替换了2(弱点),看看集群算法是否有不同的响应,但仍然没有多大帮助。

有没有改进这个方法的意见和处理这个问题的替代方法?

非常感谢!

EN

回答 2

Stack Overflow用户

发布于 2016-09-01 14:30:07

下面的代码应该可以帮助您创建伪/二进制变量。

代码语言:javascript
复制
settingStrength <- as.numeric(setting.g == "Strength")
settingWeakness   <- as.numeric(setting.g == "Weakness")

我调用了专注于数据集的第3列和第4列的分层集群。不能将100个尺寸聚集在一起,然后在二维绘图中绘制它们。你必须首先进行降维。您选择分层聚类是正确的,因为k-means要求您知道聚类的数量,而您并不知道它们

代码语言:javascript
复制
CLUSTER <- hclust(dist(YOURDATA[, 3:4]))
plot(CLUSTER)

然而,如果你使用k-means,你不应该只看图。在以下内容中,我选择了三组聚类。

代码语言:javascript
复制
KMEANSCLUSTER <- kmeans(YOURDATASET[,3:4],3)
KMEANSCLUSTER[1]

现在您应该看到一个长度为15 (数据长度)的向量,值为1、2和3。变量属于集群"1“、集群"2”还是集群"3“的值。

票数 0
EN

Stack Overflow用户

发布于 2016-09-01 23:33:41

聚类二进制数据(以及低基数和分类虚拟编码数据)的问题在于它的二进制信息。

像k-means这样的方法是为连续变量设计的,其中平均值是有意义的,并且几乎每个距离都是唯一的。

对于二进制数据,一切往往会同时发生变化。您有许多重复的记录。您的记录在1个位置、2个位置等方面存在差异-在您的情况下,它们最多可以在30个位置不同,因此您有31个相似级别。

解决方案通常是从集群转移到项目集挖掘视图。这与聚类没有本质上的不同,但它始于一个二元假设:一个项目要么存在于事务中,要么不存在。然后,结果项集对应于频繁的组合,例如,具有A和B的行往往具有C。

尝试一下,频繁项集和关联规则。

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

https://stackoverflow.com/questions/39263708

复制
相关文章

相似问题

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