作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我希望能够通过分层集群“行走”(迭代)(见下图和代码)。我想要的是:
splitme <- function(matrix, minH){
##Some code
}
minH
, 每当有新的 split 时就开始切割。这是第一个问题。如何检测新的分割以获得高度 h
. h
,有多少个簇?检索集群mycl <- cutree(hr, h=x);#x is that found h
count <- count(mycl)# Bad code
minH
已到达 # Generate data
set.seed(12345)
desc.1 <- c(rnorm(10, 0, 1), rnorm(20, 10, 4))
desc.2 <- c(rnorm(5, 20, .5), rnorm(5, 5, 1.5), rnorm(20, 10, 2))
desc.3 <- c(rnorm(10, 3, .1), rnorm(15, 6, .2), rnorm(5, 5, .3))
data <- cbind(desc.1, desc.2, desc.3)
# Create dendrogram
d <- dist(data)
hc <- as.dendrogram(hclust(d))
# Function to color branches
colbranches <- function(n, col)
{
a <- attributes(n) # Find the attributes of current node
# Color edges with requested color
attr(n, "edgePar") <- c(a$edgePar, list(col=col, lwd=2))
n # Don't forget to return the node!
}
# Color the first sub-branch of the first branch in red,
# the second sub-branch in orange and the second branch in blue
hc[[1]][[1]] = dendrapply(hc[[1]][[1]], colbranches, "red")
hc[[1]][[2]] = dendrapply(hc[[1]][[2]], colbranches, "orange")
hc[[2]] = dendrapply(hc[[2]], colbranches, "blue")
# Plot
plot(hc)
最佳答案
我认为您基本上需要的是树状图的cophenetic相关系数。
它会告诉你所有 split 点的高度。从那里您可以轻松地穿过树。
我在下面进行了尝试并将所有子矩阵存储到列表“子矩阵”中。这是一个嵌套列表。第一层是来自所有 split 点的子矩阵。第二级是来自 split 点的子矩阵。
例如,如果你想要第一个 split 点(灰色和蓝色簇)的所有子矩阵,它应该是子矩阵[[1]]。如果你想要子矩阵[[1]]的第一个子矩阵(红色簇),它应该是子矩阵[[1]][1]。
splitme <- function(data, minH){
##Compute dist matrix and clustering dendrogram
d <- dist(data)
cl <- hclust(d)
hc <- as.dendrogram(cl)
##Get the cophenetic correlation coefficient matrix (cccm)
cccm <- round(cophenetic(hc), digits = 0)
#Get the heights of spliting points (sps)
sps <- sort(unique(cccm), decreasing = T)
#This list store all the submatrices
#The submatrices extract from the nth splitting points
#(top splitting point being the 1st whereas bottom splitting point being the last)
submatrices <- list()
#Iterate/Walk the dendrogram
i <- 2 #Starting from 2 as the 1st value will give you the entire dendrogram as a whole
while(sps[i] > minH){
membership <- cutree(cl, h=sps[i]) #Cut the tree at splitting points
lst <- list() #Create a list to store submatrices extract from a splitting point
for(j in 1:max(membership)){
member <- which(membership == j) #Get the corresponding data entry to create the submatrices
df <- data.frame()
for(p in member){
df <- rbind(df, data[p, ])
colnames(df) <- colnames(data)
dm <- dist(df)
}
lst <- append(lst, list(dm)) #Append all submatrices from a splitting point to lst
}
submatrices <- append(submatrices, list(lst)) #Append the lst to submatrices list
i <- i + 1
}
return(submatrices)
}
关于r - 走层次树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20086807/
我正在尝试将多个水平链接的 Button 和 TextView 垂直链接为 View 集,但仍保持平面 View 层次结构。这是我的初始布局和代码:
到目前为止,我已经在Google BigQuery上训练了几种模型,目前我需要查看模型的外观(即架构,损失函数等)。 有没有办法获取这些信息? 最佳答案 仔细阅读文档后,我可以说该功能尚不存在。我什至
本文实例讲述了PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)。分享给大家供大家参考,具体如下: 前言: 深度优先遍历:对每一个可能的分支路径深入到不能再深入为止,而且每个
我是一名优秀的程序员,十分优秀!