- 공유 링크 만들기
- 이메일
- 기타 앱
마할로비스(Mahalnobis) 거리 마할로비스(Mahalnobis) 거리 벡터인 한점과 분포 사이의 거리를 측정하는 효과적인 다변량 거리 메트릭스 이 지표는 다변량의 이상 탐지, 높은 불균형한 데이터 세트의 분류, 단일 클래스 분류, 새로운 데이터들의 예측에 효과적입니다.2차원의 두 점사이의 거리를 나타낼 경우 일반적으로 유클리드거리가 사용됩니다. 그 두점 (p1, p2), (q1, q2)라고 하면 유클리드 거리는 다음과 같이 계산됩니다. $$\tag{식 1}d(p, q) =\sqrt{(p_1-q_1)^2+(p_1-q_2)^2}$$ 식 1을 다차원으로 확장하면 즉, $(p_1, p_2, \cdots, p_n), \;(q_1, q_2, \cdots, q_n)$ 유클리드 거리는 식 2와 같이 계산됩니다. $$\tag{식 2}d(p, q) =\sqrt{(p_1-q_1)^2+(p_1-q_2)^2+ \cdots +(p_n-q_n)^2}$$ 식 2와 같이 다차원의 경우 모든 차원에 대한 가중치는 전혀 고려되지 않습니다. 즉, 차원들 사이에 영향이 없다는 가정이 성립되어야 합니다(모든 차원은 독립적). import numpy as np import numpy.linalg as la import pandas as pd from sklearn.preprocessing import StandardScaler import matplotlib.pyplot as plt import seaborn as sns sns.set_style("darkgrid") np.random.seed(3) X=np.random.normal(0, 1, 100) X1=np.linspace(-2,2, 100) y1=X1+np.random.randn(100) p1=(-1, 1) p2=(1, 1) fig, ax=plt.subplots(1, 2, figsize=(7, 3), sharey=True) ax[0].scatter(X1, X, s=5) ax[0].sc