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%
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.