Python Numpy 가 각종 거 리 를 계산 하 는 방법

상세:
1.민 코 프 스키 거리(Minkowski 거리)
2.오 씨 거리(유클리드 거리)
3.맨 해 튼 거리(맨 해 튼 거리)
4.체 비 쉐 프 거리(Cheby shev 거리)
5.협각 코사인(Cosine)
6.한 명 거리(Hamming distance)
7.제 카드 유사 계수(Jaccard similarity coefficient)
8.베 일 스 공식
1.민 씨 거리의 정의:
두 n 차원 변수 A(x11,x12,...,x1n)와 B(x21,x22,...,x2n)사이 의 민 코 프 스키 거 리 는 다음 과 같이 정의 된다.

그 중에서 p 는 변 화 된 매개 변수 이다.
p=1 시 맨 해 튼 거리
p=2 시 에 오 씨 거리 입 니 다.
p→표시 시 체 비 설 부 거리
변 화 된 매개 변수 에 따라 민 씨 거 리 는 같은 거 리 를 나 타 낼 수 있다.

np.linalg.norm #         
2.오 씨 거리(유클리드 거리)
오 씨 거리(L2 범 수)는 가장 이해 하기 쉬 운 거리 계산 방법 으로 오 씨 공간 에서 두 점 간 의 거리 공식(그림 1.9)에서 기원 된다.

python 유럽식 거리 공식 실현:

vector1 = np.array([1,2,3])
vector2 = np.array([4,5,6])
 
op1=np.sqrt(np.sum(np.square(vector1-vector2)))
op2=np.linalg.norm(vector1-vector2)
print(op1)
print(op2)
#  :
#5.19615242271
#5.19615242271
3.맨 해 튼 거리(맨 해 튼 거리)
이름 에서 이 거리의 계산 방법 을 알 아 맞 힐 수 있다.맨 해 튼 에서 한 사거리 에서 다른 사거리 로 운전 해 야 한다 고 상상 해 보 세 요.운전 거 리 는 두 점 사이 의 직선 거리 입 니까?분명히 그렇지 않다.네가 빌딩 을 통과 할 수 있 는 한.실제 운전 거 리 는 바로 이'맨 해 튼 거리'(L1 범 수)다.이것 도 맨 해 튼 거리 명칭 의 출처 이 고 맨 해 튼 거 리 는 도시 거리 거리(City Block distance)(그림 1.10)라 고도 부른다.

python 맨 해 튼 거리 실현:

vector1 = np.array([1,2,3])
vector2 = np.array([4,5,6])
 
op3=np.sum(np.abs(vector1-vector2))
op4=np.linalg.norm(vector1-vector2,ord=1)
#  
#9
#9.0
4.체 비 쉐 프 거리(Cheby shev 거리)
체스 해 봤 어 요?국왕 은 한 걸음 걸 으 면 인접 한 8 개의 격자 중 어느 하나 로 이동 할 수 있다(그림 1.11).그렇다면 왕 은 체크(x1,y1)에서 체크(x2,y2)까지 최소 몇 걸음 이 필요 합 니까?혼자 걸 어 봐.최소 걸음 수 는 항상 max(|x2-x1|,|y2-y1|)걸음 을 발견 할 수 있 습 니 다.체 비 설 프 거리(L 표시 범 수)라 는 비슷 한 거리 측정 방법 이 있다.

 Python 체 비 설 프 거리 구현:

vector1 = np.array([1,2,3])
vector2 = np.array([4,7,5])
op5=np.abs(vector1-vector2).max()
op6=np.linalg.norm(vector1-vector2,ord=np.inf)
print(op5)
print(op6)
#  :
#5
#5.0
5.협각 코사인(Cosine)
기 하 에서 협각 코사인 은 두 벡터 방향의 차 이 를 평가 할 수 있 고 기계 학습 에서 이 개념 을 빌려 견본 벡터 간 의 차 이 를 평가 할 수 있다(그림 1.12).

(1)2 차원 공간 에서 벡터 A(x1,y1)와 벡터 B(x2,y2)의 협각 코사인 공식:

(2)두 개의 n 차원 견본 점 A(x11,x12,...,x1n)와 B(x21,x22,...,x2n)의 협각 코사인
유사 한 것 은 두 개의 n 차원 견본 점 A(x11,x12,...,x1n)와 B(x21,x22,...,x2n)에 대해 협각 코사인 과 유사 한 개념 으로 그들의 유사 도 를 평가 할 수 있다.

협각 코사인 의 수치 범 위 는[-1,1]이다.협각 코사인 이 클 수록 두 벡터 의 협각 이 작 을 수록 협각 코사인 이 작 을 수록 두 벡터 의 협각 이 크다 는 것 을 나타 낸다.두 벡터 의 방향 이 겹 칠 때 협각 코사인 은 최대 치 1 을 취하 고 두 벡터 의 방향 이 완전히 반대 되 는 협각 코사인 은 최소 치-1 을 취한 다.
python 협각 코사인 실현

vector1 = np.array([1,2,3])
vector2 = np.array([4,7,5])
 
op7=np.dot(vector1,vector2)/(np.linalg.norm(vector1)*(np.linalg.norm(vector2)))
print(op7)
#  
#0.929669680201
6.한 명 거리(Hamming distance)
(1)한 명 거리의 정의
두 개의 등장 문자열 s1 과 s2 사이 의 한 명 거 리 는 그 중 하 나 를 다른 문자열 로 바 꾸 는 데 필요 한 최소 교체 횟수 로 정의 합 니 다.예 를 들 어 문자열'1111'과'1001'사이 의 한 명 거 리 는 2 이다.
응용:정보 인 코딩(잘못 사용 성 을 강화 하기 위해 서 는 인 코딩 간 의 최소 한 명 거 리 를 가능 한 한 크게 해 야 합 니 다).
(2)python 한 명 거리 구현:

v1=np.array([1,1,0,1,0,1,0,0,1])
v2=np.array([0,1,1,0,0,0,1,1,1])
smstr=np.nonzero(v1-v2)
print(smstr) #   0       
sm= np.shape(smstr[0])[0] 
print( sm )
#  
#(array([0, 2, 3, 5, 6, 7]),)
#6
7.제 카드 유사 계수(Jaccard similarity coefficient)
(1)제 카드 유사 계수
두 집합 A 와 B 의 교 집합 원소 가 A,B 의 병집 에서 차지 하 는 비례 를 두 집합의 제 카드 유사 계수 라 고 부 르 며 기호 J(A,B)로 표시 한다.

(2)제 카드 거리
제 카드 와 유사 계수 가 반대 되 는 개념 은 제 카드 거리(Jaccard distance)다.제 카드 거 리 는 다음 과 같은 공식 으로 표시 할 수 있다.

제 카드 거 리 는 두 집합 에서 서로 다른 원소 가 모든 원소 에서 차지 하 는 비율 로 두 집합의 구분 도 를 평가한다.
(3)제 카드 의 유사 계수 와 제 카드 거리의 응용
제 카드 의 유사 계 수 를 견본 의 싱크로 율 을 평가 하 는 데 사용 할 수 있다.
샘플 A 와 샘플 B 는 두 개의 n 차원 벡터 이 고 모든 차원 의 수 치 는 0 또는 1 이다.예 를 들 어 A(0111)와 B(1011).우 리 는 견본 을 하나의 집합 으로 본다.1 은 집합 이 이 요 소 를 포함 하고 0 은 집합 이 이 요 소 를 포함 하지 않 는 다 는 것 을 나타 낸다.
P:샘플 A 와 B 는 모두 1 의 차원 의 개수 입 니 다.
q:견본 A 는 1 이 고 견본 B 는 0 의 차원 의 개수 이다.
r:견본 A 는 0 이 고 견본 B 는 1 의 차원 의 개수 이다.
s:견본 A 와 B 는 모두 0 의 차원 의 개수 이다.
그러면 견본 A 와 B 의 제 카드 유사 계 수 는 다음 과 같다.
여기 p+q+r 는 A 와 B 의 병 합 된 원소 개수 로 이해 할 수 있 으 며,p 는 A 와 B 의 교 집합 원소 개수 이다.
샘플 A 와 B 의 제 카드 거 리 는 다음 과 같다.

 Python 제 카드 거리 실현:

import scipy.spatial.distance as dist
 
v1=np.array([1,1,0,1,0,1,0,0,1])
v2=np.array([0,1,1,0,0,0,1,1,1])
 
matv=np.array([v1,v2])
print(matv)
ds=dist.pdist(matv,'jaccard')
print(ds)
 
#  
#[[1 1 0 1 0 1 0 0 1] [0 1 1 0 0 0 1 1 1]]
 
# [ 0.75]
8.클래식 베 일 스 공식
원본: P(AB)=P(A | B)・P(B)=P(B | A)・P(A)

이 예 에서 우 리 는 노란색 사과 와 노란색 배가 어떤 차이 가 있 는 지 연구 하지 않 는 다.사과 가 빨간색 일 확률 은 0.8 이 고 사과 가 노란색 일 확률 은 1-0.8=0.2 이 며 배 는 노란색 일 확률 은 0.9 로 선험 확률 로 한다.이 선험 확률 이 있 으 면 표본 추출 을 이용 할 수 있다.즉,과일 하 나 를 선택 하 는 것 이다.전 제 는 표본 추출 이 전체적인 확률 분포 에 영향 을 주지 않 고 그의 특정한 특징 을 통 해 소속 유형 을 구분 하 는 것 이다.노란색 은 사과 와 배가 공유 하 는 특징 이기 때문에 사과 일 수도 있 고 배 일 수도 있 으 며 확률 계산의 의 미 는 이 과일 을 얻 는 것 이 더 가능 하 다 는 데 있다.
조건:사과 10 개,배 10 개
수학의 언어 로 표현 하 는 것 은 이미 알 고 있 는 것 이다.

# P(  )=10/(10+10),P( )=10/(10+10),P(  |  )=20%,P(  | )=90%,P(  )= 20% * 0.5 + 90% * 0.5 = 55%
구 P(배|노란색):

# = P(  | )P( )/P(  )
 
# = 81.8%
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기