基于共现的聚类

时间:2015-12-09 15:07:58

标签: r cluster-analysis hierarchical-data hierarchical-clustering hclust

我想基于使用R的共现关键字对数据进行聚类。与other posts相比,我遇到了2个难点。

  1. 单词具有不同的层次结构
  2. 关键字不一定按顺序或层次结构级别显示
  3. 实施例

    Keywords
    Food;Fruit;Banana
    Food;Fruit;Apple
    Fruit;Food;Orange
    Food;Bread;Toast
    Food;Bread;Whole Grain
    Bed;Bedroom;Furniture
    Furniture;Bedroom;Bed
    Furniture;Living Room;Chair
    Furniture;Bedroom;Chair
    

    我希望结果是关键字在第一级分支到食品和家具。在第二个和第三个,还有另外的分支,例如卧室,起居室。如果我使用像

    这样的层次聚类分析
    hc <- hclust(dist(data))
    plot(hc)
    

    我最终会选择&#34; Furniture&#34;作为最低级别的一个类别,但它是一个&#34;节点和#34;在我的例子中。

    有解决这个问题的功能吗?

    最佳

    皮特

2 个答案:

答案 0 :(得分:1)

评论太长了,但也许不是你想要的:

df <- read.csv2(header=F, comment.char="#", text="
Food;Fruit;Banana
Food;Fruit;Apple
#Fruit;Food;Orange
Food;Bread;Toast
Food;Bread;Whole Grain
#Bed;Bedroom;Furniture
Furniture;Bedroom;Bed
#Furniture;Living Room;Chair
Furniture;Bedroom;Chair")

library(data.tree)
df$pathString <- with(df, paste("root", V1, V2, V3, sep="/"))
dt <- as.Node(df)
dt
#                  levelName
# 1  root                   
# 2   ¦--Food               
# 3   ¦   ¦--Fruit          
# 4   ¦   ¦   ¦--Banana     
# 5   ¦   ¦   °--Apple      
# 6   ¦   °--Bread          
# 7   ¦       ¦--Toast      
# 8   ¦       °--Whole Grain
# 9   °--Furniture          
# 10      °--Bedroom        
# 11          ¦--Bed        
# 12          °--Chair  

查看data.tree vignette

答案 1 :(得分:0)

您所描述的是与群集分析不相似

执行以下操作:

  1. 计算每个学期的频率。
  2. 按术语频率按行排序。
  3. 将每一行插入树中。
  4. 树将分支到最常用的术语,下面有更具体的术语。

    除了计算+按频率排序外,没有任何分析发生 - 因此没有任何进展或花哨但直截了当的分析。