반응형
    
    
    
  축약 된 거리 행렬 Y를 반환합니다. 각 및 (여기서)에 대해 메트릭 dist (u = X [i], v = X [j])가 계산되고 항목 ij에 저장됩니다.
 in 은  i * j 를 의미한다고 생각했습니다. 하지만 내가 틀렸을지도 모른다고 생각합니다. 치다
X = array([[1,2], [1,2], [3,4]])
dist_matrix = pdist(X)
문서에는  dist (X [0], X [2]) 가  dist_matrix [0 * 2]  여야한다고 나와 있습니다. 그러나  dist_matrix [0 * 2] 는 2.8이 아닌 0입니다.
 i 와  j 가 주어 졌을 때 두 벡터의 유사성에 접근하기 위해 사용해야하는 공식은 무엇입니까?
해결 방법
다음과 같이 볼 수 있습니다.  x 가 m x n이라고 가정합니다. 한 번에 두 개씩 선택할 수있는  m  행의 가능한 쌍은  itertools.combinations (range (m), 2) 입니다 (예 :  m = 3 <). / 코드> :
>>> import itertools
>>> list(combinations(range(3),2))
[(0, 1), (0, 2), (1, 2)]
따라서  d = pdist (x)  인 경우  combinations (range (m), 2)) 의  k  번째 튜플은  d [k] 와 관련된  x  행.
예:
>>> x = array([[0,10],[10,10],[20,20]])
>>> pdist(x)
array([ 10.        ,  22.36067977,  14.14213562])
첫 번째 요소는  dist (x [0], x [1]) , 두 번째 요소는  dist (x [0], x [2]) , 세 번째 요소는  dist (x [1], x [2]) .
또는 정사각형 거리 행렬의 위쪽 삼각형 부분에있는 요소로 1D 배열로 함께 연결되어 볼 수 있습니다.
예 :
>>> squareform(pdist(x)) 
array([[  0.   ,  10.   ,  22.361],
       [ 10.   ,   0.   ,  14.142],
       [ 22.361,  14.142,   0.   ]])
>>> y = array([[0,10],[10,10],[20,20],[10,0]])
>>> squareform(pdist(y)) 
array([[  0.   ,  10.   ,  22.361,  14.142],
       [ 10.   ,   0.   ,  14.142,  10.   ],
       [ 22.361,  14.142,   0.   ,  22.361],
       [ 14.142,  10.   ,  22.361,   0.   ]])
>>> pdist(y)
array([ 10.   ,  22.361,  14.142,  14.142,  10.   ,  22.361])
참조 페이지 https://stackoverflow.com/questions/13079563
반응형
    
    
    
  '파이썬' 카테고리의 다른 글
| 파이썬 Python __str__ 대 __unicode__ (0) | 2021.02.03 | 
|---|---|
| 파이썬 목록에서 상위 N 개 값의 인덱스 가져 오기 (0) | 2021.02.03 | 
| 파이썬 Flask보기에서 JSON 응답 반환 (0) | 2021.02.02 | 
| 파이썬 Python 전역 / 지역 변수 (0) | 2021.02.02 | 
| 파이썬 문자열의 유니 코드 문자를 다른 파이썬으로 바꾸는 방법은 무엇입니까? (0) | 2021.02.02 | 
댓글