Last chance! 50% off DataCamp Premium
Sale ends in
Jarak Euclidean, sebuah konsep yang berakar pada matematika Yunani kuno, kini menjadi alat penting dalam data science, machine learning, dan analisis spasial modern. Dinamai menurut Euclid yang terkenal, metrik ini memberikan cara mendasar untuk mengukur jarak garis lurus antara titik-titik di ruang, baik dalam dua dimensi maupun lebih banyak lagi.
Jarak Euclidean merepresentasikan jalur terpendek antara dua titik di ruang Euclidean. Ini adalah jarak yang akan Anda ukur dengan penggaris, diperluas ke sejumlah dimensi berapa pun. Konsep ini berakar kuat pada teorema Pythagoras, yang menyatakan bahwa pada segitiga siku-siku, kuadrat panjang sisi miring sama dengan jumlah kuadrat dari dua sisi lainnya.

“Filsuf mengajar jarak Euclidean.” Gambar oleh Dall-E
Mari kita uraikan rumus jarak Euclidean untuk berbagai dimensi:
Dalam bidang dua dimensi, jarak Euclidean antara titik A(x₁, y₁) dan B(x₂, y₂) diberikan oleh:

Sebagai contoh, mari hitung jarak antara titik A(1, 2) dan B(4, 6):

Untuk lebih memahami jarak Euclidean 2D, mari memvisualisasikannya:

Jarak Euclidean 2D. Gambar oleh Penulis
Visualisasi ini menunjukkan jarak Euclidean antara dua titik pada bidang 2D. Garis merah mewakili jarak langsung, sementara garis putus-putus membentuk segitiga siku-siku, menggambarkan teorema Pythagoras yang bekerja.
Diperluas ke tiga dimensi, untuk titik A(x₁, y₁, z₁) dan B(x₂, y₂, z₂), rumusnya menjadi:

Mari memvisualisasikan jarak Euclidean 3D:

Jarak Euclidean 3D. Gambar oleh Penulis
Plot 3D ini menunjukkan jarak Euclidean antara dua titik dalam ruang tiga dimensi. Garis putus-putus hijau mewakili jarak langsung antara titik-titik tersebut.
Dalam ruang dengan n dimensi, jarak Euclidean antara titik A(a₁, a₂, ..., aₙ) dan B(b₁, b₂, ..., bₙ) adalah:

Ini dapat dituliskan lebih ringkas menggunakan notasi penjumlahan:

Memahami jarak Euclidean tidak hanya sebatas mengetahui cara mengukur jalur terpendek antara dua titik. Ini juga tentang melihat jarak-jarak tersebut melalui lensa aljabar linear, bidang yang membantu kita mendeskripsikan dan memecahkan masalah tentang ruang dan dimensi menggunakan vektor serta sifat-sifatnya. Untuk wawasan lebih lanjut, jelajahi kursus Linear Algebra for Data Science in R, yang membahas konsep-konsep ini secara komprehensif.
Jarak Euclidean mengukur seberapa jauh dua titik di ruang. Bayangkan Anda memiliki dua titik, satu di awal jalur pendakian dan satu lagi di puncak bukit. Jalur garis lurus yang Anda tempuh dari awal ke puncak dapat dianggap sebagai jarak Euclidean. Dalam aljabar linear, ini seperti menemukan panjang sebuah panah (atau vektor) yang menunjuk langsung dari awal jalur (titik A) ke puncak bukit (titik B). Panjang ini disebut "norma" vektor, istilah lain untuk panjang jalur garis lurus tersebut.
Saat berurusan dengan arah, perkalian titik (dot product) membantu kita memahami sudut antara dua panah mana pun. Misalnya, jika Anda berada di persimpangan dua jalan, dot product akan memberi tahu seberapa banyak satu jalan mengarah ke jalan lainnya. Ini dihitung menggunakan panjang masing-masing jalan (seperti norma yang kita bahas) dan sudut di antara keduanya. Semakin mendekati 0 nilainya, dua jalan tersebut semakin mendekati saling tegak lurus. Jika dikaitkan dengan jarak, rumus dot product membantu menguraikan jarak Euclidean menjadi komponen yang lebih mudah ditangani, menunjukkan bagaimana perubahan arah memengaruhi jarak keseluruhan.
Untuk menemukan jarak Euclidean antara dua titik menggunakan vektor, pada dasarnya Anda mengurangkan satu titik dari titik lainnya untuk membuat vektor baru. Vektor baru ini menunjuk langsung dari satu titik ke titik lainnya dan panjangnya adalah jarak Euclidean yang Anda minati. Ini seperti memetakan rute langsung di peta dari rumah Anda ke toko kelontong terdekat dengan mengurangkan koordinatnya; ini memberi Anda garis lurus (atau vektor) yang menunjukkan jalur terpendek yang dapat Anda ambil.
Mari jelajahi implementasi perhitungan jarak Euclidean menggunakan Python dan R. Kita akan melihat cara membuat fungsi kustom dan memanfaatkan pustaka bawaan untuk meningkatkan efisiensi.
Di Python, kita dapat memanfaatkan kekuatan NumPy untuk operasi array yang efisien dan SciPy untuk perhitungan jarak khusus. Berikut cara kita mengimplementasikan jarak Euclidean:
import numpy as np
from scipy.spatial.distance import euclidean
def euclidean_distance(point1, point2):
return np.sqrt(np.sum((np.array(point1) - np.array(point2))**2))
# 2D example
point_a = (1, 2)
point_b = (4, 6)
distance_2d = euclidean_distance(point_a, point_b)
print(f"2D Euclidean distance: {distance_2d:.2f}")
# 3D example
point_c = (1, 2, 3)
point_d = (4, 6, 8)
distance_3d = euclidean_distance(point_c, point_d)
print(f"3D Euclidean distance: {distance_3d:.2f}")
# Using SciPy for efficiency
distance_scipy = euclidean(point_c, point_d)
print(f"3D Euclidean distance (SciPy): {distance_scipy:.2f}")
Ketika kita menjalankan kode ini, kita berharap melihat keluaran seperti:
2D Euclidean distance: 5.00
3D Euclidean distance: 7.07
3D Euclidean distance (SciPy): 7.07
Fungsi SciPy umumnya lebih cepat dan lebih optimal, terutama untuk data berdimensi tinggi, tetapi fungsi kustom kita membantu mengilustrasikan perhitungan dasarnya.
R menyediakan beberapa cara untuk menghitung jarak Euclidean. Kita akan membuat fungsi kustom dan membandingkannya dengan fungsi dist() dari pustaka stats.
euclidean_distance <- function(point1, point2) {
sqrt(sum((point1 - point2)^2))
}
# 2D example
point_a <- c(1, 2)
point_b <- c(4, 6)
distance_2d <- euclidean_distance(point_a, point_b)
print(paste("2D Euclidean distance:", round(distance_2d, 2)))
# 3D example
point_c <- c(1, 2, 3)
point_d <- c(4, 6, 8)
distance_3d <- euclidean_distance(point_c, point_d)
print(paste("3D Euclidean distance:", round(distance_3d, 2)))
# Using the dist() function from stats
distance_builtin <- stats::dist(rbind(point_c, point_d), method = "euclidean")
print(paste("3D Euclidean distance (built-in):", round(as.numeric(distance_builtin), 2)))
Menjalankan kode R ini seharusnya menghasilkan keluaran seperti:
[1] "2D Euclidean distance: 5"
[1] "3D Euclidean distance: 7.07"
[1] "3D Euclidean distance (built-in): 7.07"
Fungsi kustom euclidean_distance memanfaatkan operasi tervektorisasi di R, sehingga ringkas dan efisien. Fungsi dist() dari stats mengembalikan hasil yang sama, memvalidasi fungsi kustom kita. Kedua metode mengembalikan sebuah matriks.
Jarak Euclidean adalah cara yang lugas untuk mengukur seberapa jauh benda-benda terpisah. Ini digunakan di berbagai bidang untuk menangani masalah yang melibatkan ruang dan jarak.
Dalam algoritma k-nearest neighbors, jarak Euclidean membantu menemukan tetangga terdekat ke suatu titik. Ini membantu memutuskan cara mengklasifikasikan data baru—seperti menentukan apakah sebuah email adalah spam berdasarkan kemiripannya dengan email lain, atau merekomendasikan produk yang mirip dengan yang sudah disukai pelanggan.
Dalam k-means clustering, jarak Euclidean membantu mengelompokkan titik data dengan mengaitkan setiap titik ke pusat klaster terdekat. Ini membantu mengorganisasi data ke dalam kategori yang memiliki kesamaan, bermanfaat dalam segmentasi pelanggan atau saat penelitian untuk mengelompokkan subjek yang serupa.
Multidimensional scaling menggunakan jarak Euclidean untuk menyederhanakan data kompleks menjadi sesuatu yang lebih mudah divisualisasikan dan dipahami. Ia mengambil data yang biasanya memiliki banyak detail (dimensi) dan menguranginya agar lebih sederhana untuk dilihat dan dianalisis, membantu menyoroti tren dan pola dengan lebih jelas.
Dalam tugas seperti mendeteksi tepi pada gambar atau mengenali objek, jarak Euclidean mengukur seberapa besar perubahan warna piksel, yang membantu menandai objek atau mengidentifikasi fitur penting dalam gambar. Ini bermanfaat dalam hal seperti pencitraan medis untuk mengidentifikasi penyakit, atau dalam sistem keamanan untuk mengenali wajah atau objek.
Bagi robot, seperti drone atau mobil tanpa pengemudi, jarak Euclidean membantu menghitung rute paling sederhana dari satu titik ke titik lainnya. Ini membantu robot dan sistem otomatis bergerak secara efisien dan aman, menghindari rintangan dan menghitung jalur termudah ke tujuan mereka.
Jarak Euclidean adalah salah satu dari banyak cara untuk mengukur seberapa jauh titik-titik terpisah, tetapi situasi yang berbeda memerlukan metode yang berbeda. Berikut perbandingannya dengan metrik jarak umum lainnya:
Juga dikenal sebagai jarak "city block", jarak Manhattan mengukur jumlah total selisih absolut di sepanjang setiap dimensi. Bayangkan Anda berjalan melalui jalanan kota yang berbentuk kisi; jarak yang Anda tempuh blok demi blok adalah jarak Manhattan Anda. Metode ini sangat berguna di lingkungan yang menyerupai kisi, seperti menavigasi jalan kota atau dalam beberapa jenis gim. Ini juga bermanfaat saat Anda berurusan dengan data berdimensi sangat tinggi, di mana jarak Euclidean bisa menjadi kurang andal. Untuk mempelajari lebih lanjut, lihat tutorial kami tentang jarak Manhattan.
Jarak kosinus melihat sudut antara dua titik atau vektor. Alih-alih berfokus pada panjang garis di antara keduanya, ia mempertimbangkan bagaimana keduanya berorientasi satu sama lain. Ini sangat berguna di bidang seperti analisis teks atau sistem rekomendasi, di mana arah data (seperti jumlah kata dalam artikel atau preferensi pengguna) lebih penting daripada magnitudo (seberapa banyak). Untuk pemahaman lebih dalam, lihat artikel kami tentang jarak kosinus.
Jarak Chebyshev adalah cara lain untuk mengukur jarak, berfokus pada perbedaan terbesar di sepanjang dimensi mana pun. Ini seperti bermain catur: raja bergerak ke petak yang paling jauh dengan jumlah langkah minimum, terlepas dari apakah itu horizontal, vertikal, atau diagonal. Metrik ini sangat berguna dalam skenario di mana Anda perlu mempertimbangkan hanya yang paling signifikan dari beberapa perbedaan. Pelajari lebih lanjut dengan membaca tutorial kami tentang jarak Chebyshev.
Meskipun jarak Euclidean banyak digunakan karena sifatnya yang intuitif dan perhitungannya yang sederhana, ia memiliki beberapa keterbatasan penting. Memahaminya dapat membantu dalam memilih ukuran jarak yang tepat atau menyesuaikan data untuk mengurangi masalah ini.
Jarak Euclidean dapat sangat dipengaruhi oleh skala fitur. Misalnya, dalam dataset yang berisi pendapatan dan usia, rentang pendapatan biasanya jauh lebih besar (mungkin ribuan atau puluhan ribu) dibandingkan usia (biasanya hanya sampai sekitar 100). Ketimpangan ini dapat membuat pendapatan mendominasi perhitungan jarak, sehingga hasilnya condong ke skalanya.
Mitigasi: Normalisasi atau standarisasi data dapat membantu menyeimbangkan skala berbagai fitur, memastikan tidak ada satu fitur pun yang terlalu memengaruhi perhitungan jarak.
Kutukan dimensi mengacu pada berbagai fenomena yang muncul saat jumlah dimensi dalam suatu dataset meningkat. Salah satunya adalah konsep 'kedekatan' atau 'jarak' menjadi kurang bermakna—jarak cenderung berkumpul, sehingga sulit membedakan titik yang dekat dan jauh secara efektif.
Mitigasi: Teknik seperti principal component analysis (PCA) atau t-distributed stochastic neighbor embedding (t-SNE) mengurangi dimensi data. Metode-metode ini membantu dengan menyarikan fitur esensial dengan varians terbesar, sehingga menyederhanakan data.
Perhitungan jarak Euclidean juga dapat sangat dipengaruhi oleh pencilan. Dalam ruang berdimensi tinggi, satu pencilan dapat secara drastis mengubah jarak, membuat beberapa titik data tampak jauh lebih mirip atau berbeda daripada yang sebenarnya.
Faktanya, sensitivitas regresi linear terhadap pencilan terkait dengan konsep jarak Euclidean. Ini karena, dalam regresi linear, model meminimalkan jumlah kuadrat residual, yaitu selisih antara nilai teramati dan nilai prediksi. Melakukan ini pada dasarnya mengukur jarak Euclidean antara titik data teramati dan garis regresi. Pencilan dapat secara tidak proporsional memengaruhi jarak ini karena kuadrat dari deviasi yang lebih besar meningkat lebih cepat daripada yang lebih kecil.
Mitigasi: Menggunakan metrik yang lebih robust dan kurang sensitif terhadap pencilan dapat membantu, seperti jarak Manhattan untuk jenis data tertentu. Selain itu, prapemrosesan data untuk mengidentifikasi dan menangani pencilan—baik dengan menyesuaikan atau menghapusnya—dapat mencegahnya memengaruhi perhitungan jarak.
Pendekatan alternatif: Mempertimbangkan jarak Euclidean berbobot adalah strategi lain. Variasi jarak Euclidean ini memberikan bobot berbeda pada dimensi atau fitur yang berbeda, berpotensi menurunkan bobot fitur yang rentan terhadap pencilan atau noise.
Seperti yang telah kita bahas, jarak Euclidean adalah metrik fundamental di banyak bidang analitis dan teknologi, memberikan cara yang lugas untuk mengukur jarak garis lurus antara titik-titik. Memahami dan memanfaatkan jarak Euclidean dapat meningkatkan akurasi dan efektivitas banyak aplikasi, dari algoritma machine learning hingga analisis spasial.
Saya mendorong Anda untuk bereksperimen dengan jarak Euclidean dalam proyek Anda dan mengeksplorasi peluang belajar lebih lanjut melalui kursus seperti Designing Machine Learning Workflows in Python dan Anomaly Detection in Python Course.
Vinod Chugani memulai kariernya di Tokyo sebagai Kepala Meja Penjualan Hedge Fund termuda di JPMorgan dan kemudian mencetak rekor penjualan individu di Lehman Brothers, lalu membangun bisnis distribusi elektronik di 30 negara dengan pendapatan melampaui SG$100 juta sebelum beralih ke data. Lulusan Ekonomi Duke dan alumni NYC Data Science Academy, ia menjadi salah satu dari tiga penerima beasiswa dari lebih dari 100 pelamar untuk kursus Building AI Applications oleh Hugo Bowne-Anderson di Maven. Saat ini, ia menulis untuk DataCamp, KDnuggets, Machine Learning Mastery, dan Statology tentang topik mulai dari statistika hingga AI agensial, dan membimbing para profesional data di NYC Data Science Academy dengan lebih dari 1.000 sesi tatap muka atas namanya.
Jarak Euclidean membantu berbagai algoritma machine learning dengan mengukur seberapa mirip atau berbeda titik data, yang penting untuk tugas seperti klasifikasi, pengelompokan, dan deteksi anomali.
Tidak selalu. Metrik jarak terbaik bergantung pada jenis data dan masalah spesifik. Misalnya, jarak Manhattan mungkin lebih tepat untuk data berdimensi tinggi atau situasi di mana pergerakan seperti kisi lebih representatif.
Jarak Euclidean mengukur perbedaan absolut antara koordinat-koordinat yang bersesuaian, memperlakukan semua koordinat secara setara, baik bernilai positif maupun negatif.
Tidak. Jarak Euclidean umumnya memerlukan masukan numerik untuk menghitung jarak. Metode alternatif seperti jarak Hamming atau ukuran kemiripan kustom lain digunakan untuk data kategorikal.
Menggunakan jarak Euclidean dalam algoritma pengelompokan seperti k-means secara langsung memengaruhi bagaimana klaster terbentuk, karena ia menentukan sifat geometris klaster tersebut. Jarak Euclidean cenderung membentuk klaster berbentuk sferis, di mana mean berfungsi sebagai pusat klaster. Hal ini dapat memengaruhi kinerja pengelompokan, khususnya ketika klaster alami dalam data tidak berbentuk sferis.
blogs
David Woods
13 mnt
blogs
Hugo Bowne-Anderson
13 mnt
blogs
Dario Radečić
15 mnt

blogs
Javier Canales Luna
14 mnt