2013-03-13 1 views
2

R의 히트 맵 기능의 덴도 그램 (Colv, Rowv)에있는 정보 자료를 감사하게 생각합니다. 클러스터링이 작동하는 방식 (유클리드 거리인가?) 당신은 오랜 설명을 게시 할 필요가 없습니다, 나는 온라인 연구를 할 수 있도록 올바른 길로 인도 할 수있는 몇 가지 키워드에 대해 이미 만족할 것입니다.히트 맵 덴도 그램 클러스터링에 대한 이해 R

다음은 도움말 설명서의 일부입니다. 조금 혼란 스럽습니다. 이 문맥에서 "존경받는"의미는 무엇이며 재정렬과 다른 점은 무엇입니까?

Rowv 또는 Colv가 dendrogram 인 경우 해당 값이 적용됩니다 ( 은 재정렬되지 않음). 매뉴얼에서

+2

그냥 당신이 자신의 dendrograms (Rowv 및/또는 Colv 전달) 중 하나를 제공 할 수 또는 당신은 heatmap 계산 dendrograms 수 있습니다 것을 의미합니다. 그래서 '존경하는'은 여러분이 자신의 멍멍 그램을 공급할 경우 히트 맵이 그들을 '존경'할 것이라는 의미입니다. – joran

답변

3

RowvColv 데이터 세트의 행과 열을 재정렬해야하는지 여부를 제어합니다.

가능한 값은 TRUE, NULL, FALSE, 정수 벡터 또는 dendrogram 개체입니다. 기본 모드에서 TRUE

  • 는 heatmap.2는 hclustfundistfun 및 파라미터를 이용하여 클러스터링을 수행한다. 유클리드 거리 측정을 사용하여 링크 클러스터링을 완료하는 것이 기본값입니다. 그런 다음 행/열 방법을 사용하여 멘 드로 그램을 재정렬합니다. 다른 기능을 hclustfun 또는 distfun으로 지정하여이를 제어 할 수 있습니다. 예를 들어이 euclidiean 거리가 아닌 맨하탄 거리를 사용하기 위해 당신이 할 것 :

    heatmap.2(x,...,distfun=function (y) dist(y,method = "manhattan")) 
    

    점검을 ?dist?hclust을. 클러스터링에 대해 더 자세히 알고 싶다면 "거리 측정"및 "응집 방법"으로 시작할 수 있습니다. Rowv/Colv 다음 NULL 또는 FALSE이다

  • 경우에는 재정렬 또는 클러스터링이 행해지 지 않고, 그대로 매트릭스가 도시된다.

  • Rowv/Colv는 숫자 벡터 다음 클러스터링 TRUE 용으로 계산된다 Dendrogram이 상기의 재정렬 Rowv/Colv 공급 된 벡터를 사용하여 수행되는 인 경우.

  • Rowv/Colv이 dendrogram 개체 인 경우이 dendrogram을 사용하여 행렬을 재정렬합니다. 로우 의해 지시 맨해튼 거리에 전체 클러스터를 생성

    rowDistance = dist(x, method = "manhattan") 
    rowCluster = hclust(rowDistance, method = "complete") 
    rowDend = as.dendrogram(rowCluster) 
    rowDend = reorder(rowDend, rowMeans(x)) 
    

    : Dendrogram이 오브젝트는, 예를 들어, 생성 될 수있다. 이제 rowDendRowv에 전달할 수 있습니다.

    heatmap.2(x,...,Rowv = rowDend) 
    

    예를 들어 서로 다른 방식으로 행과 열을 클러스터, 또는 다른 사람이 당신에게 주신 클러스터링을 사용하려는 경우이 유용 할 수 있습니다, 또는 당신에 의해 수용 될 수없는 뭔가 펑키하고 싶어 그냥 hclustfun과 distfun을 지정하면됩니다. 이것은 "dendrogram is honored"가 의미하는 것입니다 : hclustfun 및 distfun에 의해 지정된 것 대신에 사용됩니다.

+0

철저한 설명에 감사드립니다! heatmap()과 heatmap()의 동작이 다소 혼란 스럽습니다. 나에게 히트 맵에서 보인다 .2 Rowv = TRUE가 기본값이고, heatmap()에서 Rowv = NULL이 기본값이다. 하지만 두 기본 옵션 모두 유클리드 거리를 기반으로 완전한 링키지 클러스터링을 계산하고 있습니까? –

+1

예. 히트 맵에서 Rowv = NULL은 히트 맵에서 Rowv = TRUE와 같습니다 .2. 두 경우 모두 유클리드 거리에 기반한 완전한 링크 클러스터링은 결과를 플롯하는 데 사용되는 함수와 별개로 Rs 기본 클러스터링 모드이기 때문에 기본 클러스터링입니다. –

+0

그래, 고마워, 나는 지금 그것을 얻은 것 같아! –

0

:

distfun : 행과 열 모두 간의 거리 (비유 사도)를 산출하는 데 사용되는 함수. 기본값은 dist입니다.

hclustfun : Rowv 또는 Colv가 dendrograms가 아닌 경우 계층 적 클러스터링을 계산하는 데 사용되는 함수입니다. 기본값은 hclust입니다. 인수를 distfun으로 가져와 as.dendrogram을 적용 할 수있는 객체를 반환해야합니다.

dist()은 기본적으로 유클리드 거리와 hclust() 완전한 연결 방법을 가지고 있습니다.

+0

'만약 Rowv 나 Colv가 dendrogram이면, 그것들은 존중되고 재정렬되지 않는다. 그렇지 않으면 dendrogram은 dd <- as.dendrogram (hclustfun (distfun (X)))으로 계산됩니다. 여기서 X는 x 또는 t (x)입니다 .' 나는 아직도 혼란 스럽습니다 : Colv = NA를 설정하지 않고 Rowv = NA를 설정하지 않으면 그것은 유클리드 거리 또는 완전한 연결 방법일까요? as.dendrogram은 올바르게 이해할 경우 hclustfun과 distfun을 모두 호출하기 때문에 –

+1

Not 'or'is is 'and'! eclidean 거리 행렬에 대한 완벽한 링 크래이 징 클러스터링. 계층 적 클러스터링에 대해 조금 읽으십시오. – EDi

+0

감사합니다. 그렇게하겠습니다! 편집 : 나는 계층 적 집괴 클러스터링과 올바른 경로에? –

2

Rowv/Colv를 정확히 처리하는 방법을 살펴 보려면 body(heatmap)을 사용하여 소스를 표시 할 수도 있습니다.

+0

고마워, 몸은 나에게 새로운 기능이다;) – Jetse