상당히 큰 행렬 (예 : 10000 x 100
)을 시각화하려고했습니다. 어떤 열이나 행 (차원이 높기 때문에 문제가 될 수 있음)에서 수행 된 추가 클러스터링에 관심이 없다고 가정하면 어느 것이 가능할 것으로 보입니다.히트 맵과 히트 맵 간의 실행 시간 차이.
gplots
패키지의 향상된 heatmap.2
으로 시작했습니다. 나는 문서 및 스택 제안 (예 heatmap.2 specify row order OR prevent reorder)에 따라, 클러스터링 또는 재정렬을 무시하려는 때문에, 나는 실행 시간이 매우 긴 것을이 것처럼이 밝혀졌다,
heatmap.2(some_data, Rowv = FALSE, Colv = FALSE, dendrogram = "none", trace="none")
그러나 적절한 매개 변수를 설정 행의 수에 따라 2 차수가인데, 실제로 그렇습니다. 아래 그림의 종속성을 참조하십시오. I는 stats
에서 기본 heatmap
함수를 사용하여 Dendrogram이 실행 시간이 선형 절대적 무시할
heatmap(same_data, Rowv = NA, Colv = NA)
계산을 억제 한 반면
. 다음은 실행 시간 비교입니다.나는 위의 플롯에 대한 데이터를 생성하는 데 사용되는 코드는 마지막으로
num.rows <- c(100, 500, 1000, 1500, 2000, 2500, 3000)
times.heatmap.2 <- sapply(num.rows, function(rown){
m <- matrix(rnorm(rown*50), rown, 50)
system.time(tmp <- gplots::heatmap.2(m, Rowv = FALSE, Colv = FALSE, dendrogram = "none", trace="none"))
})
times.heatmap <- sapply(num.rows, function(rown){
m <- matrix(rnorm(rown*50), rown, 50)
system.time(tmp <- heatmap(m, Rowv = NA, Colv = NA))
})
질문입니다.
- 사람이
heatmap.2
는 어떤 차 작업 (예를 들어, 클러스터링)을 무시한다하더라도, 너무 오래 실행 시간과 데이터 크기에 아마도 차 의존도가 왜 생각이 있습니까? - 사용해야 할 매개 변수가 있습니까? 아니면 문제를 진단하기 위해 함수의 소스 코드를 살펴 봐야합니까?
감사합니다. 그러나 질문은 더 나아갑니다 : 왜 히트 맵 2가 2 차적인 연산을 수행해야하는지 명확히하지 않아야합니다. * 대답은 '히트 맵 2가 사용되지 않습니다.'또는 '히트 맵 3'을 사용하는 것입니까? – storaged