[ML] Minkowski Distance (L-p Norm)

2024. 10. 2. 13:27·Programming/ML
728x90
728x90

Minkowski 거리는

  • L-p Norm의 한 형태
  • 두 개의 점 사이의 distance(거리)를 일반화한 metric.

distance의 개념은 다음 접은 글을 참고:

더보기

https://dsaint31.me/mkdocs_site/DIP/cv2/etc/dip_metrics/#distance-function-or-metric

 

BME228

Metrics for Image Quality Image restoration의 경우, image degradation의 원인을 modeling하고 해당 model을 통해 ideal image에 가깝게 복원하는 것을 의미함. 주관적인 화질을 개선하는 image enhancement와 달리, image resto

dsaint31.me



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참고:

더보기

https://bme808.blogspot.com/search?q=norm

 

bme808

 

bme808.blogspot.com



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  (2) 2024.09.28
[ML] Embedding의 수학적 정의 및 Embedding Layer  (0) 2024.09.28
'Programming/ML' 카테고리의 다른 글
  • [ML] scikit-learn: Pipeline 사용법
  • [ML] scikit-learn: ColumnTransformer
  • [ML] scikit-learn: Custom Transformer
  • [ML] Embedding
dsaint31x
dsaint31x
    반응형
    250x250
  • dsaint31x
    Dsaint31's blog
    dsaint31x
  • 전체
    오늘
    어제
    • 분류 전체보기 (748)
      • Private Life (13)
      • Programming (56)
        • DIP (112)
        • ML (26)
      • Computer (119)
        • CE (53)
        • ETC (33)
        • CUDA (3)
        • Blog, Markdown, Latex (4)
        • Linux (9)
      • ... (351)
        • Signals and Systems (103)
        • Math (172)
        • Linear Algebra (33)
        • Physics (42)
        • 인성세미나 (1)
      • 정리필요. (54)
        • 의료기기의 이해 (6)
        • PET, MRI and so on. (1)
        • PET Study 2009 (1)
        • 방사선 장해방호 (4)
        • 방사선 생물학 (3)
        • 방사선 계측 (9)
        • 기타 방사능관련 (3)
        • 고시 (9)
        • 정리 (18)
      • RI (0)
      • 원자력,방사능 관련법 (2)
  • 블로그 메뉴

    • Math
    • Programming
    • SS
    • DIP
  • 링크

    • Convex Optimization For All
  • 공지사항

    • Test
    • PET Study 2009
    • 기타 방사능관련.
  • 인기 글

  • 태그

    opencv
    linear algebra
    인허가제도
    Vector
    function
    SS
    signal_and_system
    Probability
    fourier transform
    Python
    Convolution
    signals_and_systems
    Optimization
    SIGNAL
    numpy
    cv2
    Programming
    Term
    DIP
    math
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
dsaint31x
[ML] Minkowski Distance (L-p Norm)
상단으로

티스토리툴바