728x90
Minkowski 거리는
- L-p Norm의 한 형태
- 두 개의 점 사이의 distance(거리)를 일반화한 metric.
distance의 개념은 다음 접은 글을 참고:
L-p Norm 정의:
L-p Norm은 vector의 크기(길이)를 측정하는 방식으로, 일반적으로 아래와 같이 정의:
|x|p=(n∑i=1|xi|p)1p
where:
- x=(x1,x2,…,xn): 벡터 x의 각 좌표.
- p: Norm의 차수(order)를 나타내는 파라미터, 양의 실수.
Norm에 대한 보다 자세한 것은 다음 접은 글의 url참고:
Minkowski 거리와 L-p Norm의 관계:
Minkowski 거리는
- 두 점 x=(x1,x2,…,xn)와 y=(y1,y2,…,yn) 사이의
- distance를 측정할 때 L-p Norm을 사용.
D(x,y)=(n∑i=1|xi−yi|p)1p
이는 두 벡터 사이의 차이 벡터 x−y의 p-Norm을 구하는 것과 동일함.
Minkowski 거리는 L-p Norm을 기반으로
두 점 간의 distance를 generalizaton한 공식이라고 할 수 있음.
특수한 경우:
p = 1:
Manhattan Norm 또는 Manhattan Distance로, 벡터의 각 좌표 차이의 절댓값을 더한 값을 의미.
|x|1=n∑i=1|xi|
p = 2:
Euclidean Norm 또는 Euclidean Distance로, 벡터의 각 좌표 차이의 제곱을 더한 후 그 값을 제곱근한 값입니다.
|x|2=(n∑i=1|xi|2)12
p = ∞:
Chebyshev Norm으로, 벡터의 각 좌표 차이 중 가장 큰 절댓값을 의미합니다.
|x|∞=max(|x1|,|x2|,…,|xn|)
응용사례: 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 |