Minkowski 거리는
- L-p Norm의 한 형태
- 두 개의 점 사이의 distance(거리)를 일반화한 metric.
distance의 개념은 다음 접은 글을 참고:
L-p Norm 정의:
L-p Norm은 vector의 크기(길이)를 측정하는 방식으로, 일반적으로 아래와 같이 정의:
$$| \mathbf{x} |_p = \left( \sum_{i=1}^{n} |x_i|^p \right)^{\frac{1}{p}}$$
where:
- $\mathbf{x} = (x_1, x_2, \dots, x_n)$: 벡터 $\mathbf{x}$의 각 좌표.
- $p$: Norm의 차수(order)를 나타내는 파라미터, 양의 실수.
Norm에 대한 보다 자세한 것은 다음 접은 글의 url참고:
Minkowski 거리와 L-p Norm의 관계:
Minkowski 거리는
- 두 점 $\mathbf{x} = (x_1, x_2, \dots, x_n)$와 $\mathbf{y} = (y_1, y_2, \dots, y_n)$ 사이의
- distance를 측정할 때 L-p Norm을 사용.
$$D(\mathbf{x}, \mathbf{y}) = \left( \sum_{i=1}^{n} |x_i - y_i|^p \right)^{\frac{1}{p}}$$
이는 두 벡터 사이의 차이 벡터 $\mathbf{x} - \mathbf{y}$의 p-Norm을 구하는 것과 동일함.
Minkowski 거리는 L-p Norm을 기반으로
두 점 간의 distance를 generalizaton한 공식이라고 할 수 있음.
특수한 경우:
p = 1:
Manhattan Norm 또는 Manhattan Distance로, 벡터의 각 좌표 차이의 절댓값을 더한 값을 의미.
$$| \mathbf{x} |_1 = \sum_{i=1}^{n} |x_i|$$
p = 2:
Euclidean Norm 또는 Euclidean Distance로, 벡터의 각 좌표 차이의 제곱을 더한 후 그 값을 제곱근한 값입니다.
$$|\mathbf{x} |_2 = \left( \sum_{i=1}^{n} |x_i|^2 \right)^{\frac{1}{2}}$$
p = $\infty$:
Chebyshev Norm으로, 벡터의 각 좌표 차이 중 가장 큰 절댓값을 의미합니다.
$$| \mathbf{x} |_\infty = \max(|x_1|, |x_2|, \dots, |x_n|)$$
응용사례: KNeighborsClassifier or KNeighborsRegressor
from sklearn.neighbors import KNeighborsClassifier
# KNN 모델을 Minkowski 거리를 사용하여 생성 (p=2는 유클리드 거리)
knn = KNeighborsClassifier(
n_neighbors=3,
metric='minkowski',
p=2,
)
# 모델 학습 및 예측
knn.fit(X_train, y_train)
y_pred = knn.predict(X_test)
'Programming > ML' 카테고리의 다른 글
[ML] scikit-learn: Pipeline 사용법 (0) | 2024.10.03 |
---|---|
[ML] scikit-learn: ColumnTransformer (0) | 2024.10.03 |
[ML] scikit-learn: Custom Transformer (2) | 2024.10.01 |
[ML] Embedding (0) | 2024.09.28 |
[ML] Embedding의 수학적 정의 및 Embedding Layer (0) | 2024.09.28 |