Minkowski দূরত্ব কী?
Minkowski দূরত্ব একটি মেট্রিক যা নর্মড ভেক্টর স্পেসে দুটি ভেক্টরের সাদৃশ্য বা দূরত্ব নাপে। এটি Euclidean (p=2) এবং Manhattan (p=1) দূরত্বের জেনারেলাইজড রূপ।
সূত্র: (Σ|xᵢ - yᵢ|ᵖ)^(1/p)
SciPy ব্যবহার করে
from scipy.spatial import distance
# উদাহরণ
print(distance.minkowski([1, 0, 0], [0, 1, 0], 1)) # Manhattan = 2.0
print(distance.minkowski([1, 0, 0], [0, 1, 0], 2)) # Euclidean ≈ 1.414
print(distance.minkowski([1, 0, 0], [0, 1, 0], 3)) # p=3 ≈ 1.260
print(distance.minkowski([1, 1, 0], [0, 1, 0], 1)) # 1.0
print(distance.minkowski([1, 1, 0], [0, 1, 0], 2)) # 1.0
print(distance.minkowski([1, 1, 0], [0, 1, 0], 3)) # 1.0
কাস্টম ইমপ্লিমেন্টেশন (বिना লাইব্রেরি)
from math import *
from decimal import Decimal
def p_root(value, root):
"""value^(1/root) হিসাব করে, ৩ দশমিক পর্যন্ত রাউন্ড"""
root_value = 1 / float(root)
return round(Decimal(value) ** Decimal(root_value), 3)
def minkowski_distance(x, y, p):
"""দুই ভেক্টরের মধ্যে Minkowski দূরত্ব"""
return p_root(sum(pow(abs(a - b), p) for a, b in zip(x, y)), p)
# ড্রাইভার কোড
vector1 = [0, 2, 3, 4]
vector2 = [2, 4, 3, 7]
p_value = 5
print("The Distance is::", minkowski_distance(vector1, vector2, p_value))
# আউটপুট: The Distance is:: 3.144
ব্যবহারিক টিপস
p=1→ Manhattan distancep=2→ Euclidean distancep→∞→ Chebyshev distance- মেশিন লার্নিং-এ KNN, ক্লাস্টারিং-এ ব্যবহার হয়।