Metrik jarak menyediakan cara penting untuk mengukur perbedaan antarobjek. Sementara metrik seperti Euclidean atau Manhattan mengukur perbedaan secara spasial, jarak Hamming mengambil pendekatan berbeda: metrik ini menghitung posisi di mana dua urutan berbeda. Hal ini membuatnya sangat berguna untuk deteksi kesalahan, validasi data, dan teori informasi.
Awalnya dikembangkan oleh Richard Hamming pada tahun 1950 saat bekerja pada sistem verifikasi kode di Bell Labs, jarak Hamming telah berkembang melampaui akar telekomunikasinya. Kini, metrik ini menjadi ukuran kunci di berbagai bidang, termasuk:
Validasi data dan pemeriksaan integritas
Analisis urutan DNA dalam bioinformatika
Pencocokan pola dalam penelusuran informasi
Perbandingan fitur dalam machine learning
Dalam panduan ini, kita akan membahas cara kerja jarak Hamming, meninjau penerapannya secara praktis, dan mengimplementasikannya di Python dan R. Konsep dan implementasi yang kita bahas akan meningkatkan kemampuan Anda memecahkan masalah dalam validasi data, bioinformatika, dan machine learning.
Apa itu Jarak Hamming?
Jarak Hamming mengukur jumlah posisi di mana dua string dengan panjang yang sama memiliki simbol yang berbeda. Anggap saja sebagai menghitung jumlah minimum substitusi yang diperlukan untuk mengubah satu string menjadi string lain.
Sebagai contoh, membandingkan dua string biner:
Gambar oleh Penulis
Jarak Hamming di sini adalah 2 karena string berbeda pada dua posisi — bit kedua dan keempat.
Secara matematis, untuk dua string x dan y dengan panjang sama n, jarak Hamming D(x,y) dinyatakan sebagai:
Rumus ini menghitung posisi di mana xᵢ ≠ yᵢ. Untuk string biner, ini menyederhana menjadi menghitung posisi di mana bit berbeda. Untuk jenis urutan lain (seperti DNA atau teks), rumus ini menghitung posisi dengan simbol yang berbeda.
Dua sifat kunci yang perlu diperhatikan:
Memerlukan string dengan panjang yang sama.
Hanya menghitung substitusi, bukan penyisipan atau penghapusan.
Sifat-sifat ini menjadikan jarak Hamming ideal untuk skenario di mana:
Data terdiri dari kode atau urutan dengan panjang tetap.
Hanya kesalahan substitusi yang relevan.
Diperlukan perbandingan cepat per posisi.
Cara Kerja Jarak Hamming
Mari kita bahas cara menghitung jarak Hamming melalui contoh, mulai dari string biner sederhana hingga aplikasi yang lebih kompleks.
Contoh string biner
Penerapan paling langsung dari jarak Hamming adalah membandingkan string biner. Mari analisis dua string 8-bit:
Gambar oleh Penulis
Perhitungan langkah demi langkah:
Posisi 1: 1 = 1 (sama)
Posisi 2: 0 = 0 (sama)
Posisi 3: 1 ≠ 0 (berbeda)
Posisi 4: 1 = 1 (sama)
Posisi 5: 0 = 0 (sama)
Posisi 6: 1 ≠ 0 (berbeda)
Posisi 7: 0 = 0 (sama)
Posisi 8: 1 = 1 (sama)
Jarak Hamming adalah 2, karena ada dua posisi di mana string berbeda (posisi 3 dan 6).
Contoh urutan DNA
Jarak Hamming sering digunakan dalam bioinformatika untuk membandingkan urutan genetik. Pertimbangkan dua fragmen DNA:
Gambar oleh Penulis
Analisis langkah demi langkah:
Pasangan basa sama pada posisi 1, 2, 4, 5, 7, dan 8
Perbedaan terjadi pada posisi 3 (C→G) dan 6 (A→C)
Jarak Hamming = 2 mutasi
Perbandingan ini membantu ahli biologi mengukur mutasi genetik dan menganalisis kesamaan DNA.
Contoh string teks
Jarak Hamming juga berlaku untuk string teks biasa dengan panjang yang sama:
Gambar oleh Penulis
Jarak Hamming di sini adalah 1, dengan satu-satunya perbedaan pada posisi terakhir ('T' vs 'D').
Setiap contoh menunjukkan bagaimana jarak Hamming memberikan cara yang sederhana namun efektif untuk mengukur perbedaan antarurutan, terlepas dari jenis data yang dibandingkan. Wawasan utamanya adalah metrik ini melihat perbedaan per posisi sambil mengabaikan sifat spesifik dari perubahan tersebut.
Aplikasi Jarak Hamming
Deteksi dan koreksi kesalahan
Jarak Hamming menjadi dasar bagi kode pendeteksi dan pengoreksi kesalahan dalam komunikasi digital. Dengan menambahkan bit paritas secara strategis untuk menciptakan jarak minimum antar codeword yang valid, sistem dapat mendeteksi saat data yang diterima tidak sesuai dengan pola yang valid dan bahkan mengoreksi kesalahan dengan memetakan ke codeword valid terdekat. Prinsip ini mendukung teknologi modern seperti memori ECC (Error-Correcting Code) pada komputer, koreksi kesalahan pada kode QR, dan sistem komunikasi luar angkasa yang sangat menuntut integritas data.
Teori informasi
Teori informasi menggunakan jarak Hamming untuk merancang sistem komunikasi yang andal. Saat membuat kode penanganan kesalahan, para insinyur memastikan pesan valid (codeword) berbeda dengan jumlah bit minimum tertentu. Misalnya, jika pesan valid selalu berbeda setidaknya dua bit, sistem dapat mendeteksi saat satu bit rusak selama transmisi. Jika pesan valid berbeda setidaknya tiga bit, sistem bahkan dapat mengoreksi kesalahan satu bit dengan mengidentifikasi pesan valid terdekat. Prinsip-prinsip ini membantu menciptakan sistem komunikasi yang tangguh, digunakan mulai dari komunikasi satelit hingga penyimpanan data.
Bioinformatika
Peneliti genetik menggunakan jarak Hamming untuk menganalisis urutan DNA dan mengukur mutasi. Dengan membandingkan urutan genetik per posisi, ilmuwan dapat mengidentifikasi mutasi titik, melacak perubahan evolusioner, dan mempelajari keragaman genetik. Penerapan ini sangat berharga dalam mempelajari mutasi penyakit, di mana memahami posisi tepat perubahan genetik membantu peneliti melacak bagaimana penyakit berevolusi dan menyebar dalam populasi.
Machine learning
Dalam machine learning, jarak Hamming berfungsi sebagai metrik kesamaan untuk data biner atau kategorikal. Metrik ini membantu membandingkan vektor fitur dalam tugas pengenalan pola, mengukur kesamaan dalam sistem rekomendasi, dan menganalisis data kategorikal dalam masalah klasifikasi. Kesederhanaan dan efisiensi perhitungannya membuatnya sangat berguna saat bekerja dengan data biner berdimensi tinggi atau ketika perhitungan kesamaan cepat diperlukan untuk kumpulan data besar.
Sifat Matematis
Sifat ruang metrik
Jarak Hamming membentuk ruang metrik matematis, yang berarti memenuhi empat aturan dasar. Pertama, jarak selalu tidak negatif — Anda tidak bisa memiliki jumlah posisi negatif di mana string berbeda. Kedua, jarak antara dua urutan adalah nol jika dan hanya jika keduanya identik. Ketiga, jarak bersifat simetris — membandingkan urutan A dengan B memberikan hasil yang sama seperti membandingkan B dengan A. Terakhir, metrik ini memenuhi ketaksamaan segitiga: jarak antara urutan A dan C tidak boleh lebih besar dari jumlah jarak dari A ke B dan B ke C.
Sifat string biner
Saat bekerja dengan string biner, jarak Hamming memiliki karakteristik khusus yang membuatnya sangat berguna untuk deteksi kesalahan. Untuk dua string biner dengan panjang n, jarak Hamming tidak dapat melebihi n, yang terjadi hanya ketika kedua string merupakan komplemen satu sama lain. Probabilitas jarak Hamming tertentu “d” antara dua string biner acak mengikuti distribusi binomial, dengan jarak yang paling mungkin adalah n/2. Sifat ini membantu dalam merancang kode pendeteksi kesalahan yang dapat mengenali saat bit terbalik selama transmisi.
Jarak Hamming di Python dan R
Implementasi Python
Python menawarkan fungsi pustaka bawaan dan implementasi khusus untuk menghitung jarak Hamming. Pustaka SciPy menyediakan solusi paling efisien melalui fungsi jarak spasialnya:
from scipy.spatial.distance import hamming
# For working with strings
string1 ="1010101"
string2 ="1000101"# Convert to list of integers for hamming function
arr1 =[int(bit)for bit in string1]
arr2 =[int(bit)for bit in string2]# Calculate Hamming distance
distance = hamming(arr1, arr2)*len(arr1)# Multiply by length because SciPy returns fractionprint(f"Hamming distance: {int(distance)}")# Output: Hamming distance: 1# For DNA sequences
sequence1 ="ATCGTACT"
sequence2 ="ATCGCACT"
distance = hamming(list(sequence1),list(sequence2))*len(sequence1)print(f"Hamming distance: {int(distance)}")# Output: Hamming distance: 1Didukung oleh
Bagi yang lebih menyukai implementasi khusus:
defhamming_distance(str1:str, str2:str)->int:"""Calculate Hamming distance between two strings."""iflen(str1)!=len(str2):raise ValueError("Strings must be of equal length")returnsum(c1 != c2 for c1, c2 inzip(str1, str2))# Example usageprint(hamming_distance("1010101","1000101"))# Output: 1Didukung oleh
Implementasi R
R menyediakan cara sederhana untuk menghitung jarak Hamming menggunakan fungsi dasar:
hamming_distance <-function(str1, str2){if(nchar(str1)!= nchar(str2)){
stop("Strings must be equal length")}
sum(strsplit(str1,"")[[1]]!= strsplit(str2,"")[[1]])}# Example usage
hamming_distance("1010101","1000101")# [1] 1# For DNA sequences
hamming_distance("ATCGTACT","ATCGCACT")# [1] 1Didukung oleh
Untuk memperluas contoh pengkodean ini dan menjelajahi lebih banyak penerapan metrik jarak dalam praktik, lihat sumber daya komprehensif berikut:
Cluster Analysis in R - Temukan cara menerapkan metode berbasis jarak untuk pengelompokan dan klasifikasi data yang efektif
Kursus-kursus ini akan membantu Anda melampaui implementasi dasar untuk memahami bagaimana metrik jarak memengaruhi aplikasi machine learning, apa pun bahasa pemrograman pilihan Anda.
Hamming vs. Pendekatan Lain
Gambar oleh Penulis
Jarak Levenshtein (edit distance)
Jarak Levenshtein merepresentasikan jumlah minimum suntingan satu karakter yang diperlukan untuk mengubah satu string menjadi string lain. Berbeda dengan jarak Hamming, metrik ini dapat menangani string dengan panjang berbeda dengan mempertimbangkan penyisipan dan penghapusan selain substitusi. Fleksibilitas ini membuatnya sangat berguna untuk pemeriksa ejaan, penyelarasan urutan DNA, dan pencocokan string fuzzy, meskipun keserbagunaan ini datang dengan kompleksitas komputasi yang lebih tinggi. Saat membandingkan string seperti "planet" dan "plan", jarak Levenshtein akan menghitung penghapusan 'e' dan 't' sebagai dua operasi, sementara jarak Hamming sama sekali tidak dapat melakukan perbandingan ini.
Jarak Damerau-Levenshtein
Mengembangkan jarak Levenshtein standar, jarak Damerau-Levenshtein menambahkan transposisi karakter yang berdekatan sebagai operasi yang valid. Penambahan ini membuatnya sangat efektif untuk menangkap kesalahan pengetikan umum saat karakter tertukar secara tidak sengaja. Misalnya, saat membandingkan "form" dengan "from", metrik ini akan menghitungnya sebagai satu transposisi daripada dua substitusi terpisah. Metrik ini banyak digunakan dalam aplikasi pemrosesan bahasa alami, khususnya dalam sistem koreksi ejaan otomatis di mana transposisi karakter merupakan kesalahan pengetikan yang umum.
Jarak Jaro-Winkler
Jarak Jaro-Winkler mengambil pendekatan unik dengan berfokus pada bobot posisi karakter, khususnya mengutamakan kecocokan di awal string. Alih-alih menghitung operasi penyuntingan, metrik ini menghasilkan skor kemiripan antara 0 dan 1, di mana 1 menunjukkan kecocokan sempurna. Metrik ini unggul dalam membandingkan nama diri dan string pendek, sehingga ideal untuk penautan rekaman dan tugas deduplikasi. Misalnya, saat membandingkan nama seperti "Martha" dan "Marhta", metrik ini akan memberikan skor kemiripan lebih tinggi karena karakter yang berbeda muncul lebih akhir dalam string.
Memilih metrik jarak yang tepat
Skenario yang berbeda memerlukan metrik jarak yang berbeda. Pertimbangkan faktor-faktor kunci berikut saat memilih pendekatan:
Kebutuhan kecepatan dan efisiensi
Jarak Hamming menawarkan perhitungan tercepat
Levenshtein memerlukan daya pemrosesan lebih
Jaro-Winkler berada di antara keduanya dalam hal kecepatan
Pertimbangan panjang string
String berukuran tetap (data biner, kode hash): Jarak Hamming
String dengan panjang variabel (masukan pengguna, teks natural): Jarak Levenshtein
String pendek dan nama: Jarak Jaro-Winkler
Jenis kesalahan yang ingin ditangani
Hanya substitusi: Jarak Hamming
Operasi suntingan penuh: Jarak Levenshtein
Pertukaran karakter: Jarak Damerau-Levenshtein
Variasi nama: Jarak Jaro-Winkler
Domain aplikasi
Komunikasi digital dan deteksi kesalahan: Jarak Hamming
Pemrosesan teks dan pemeriksa ejaan: Jarak Levenshtein
Deduplikasi basis data dan pencocokan rekaman: Jarak Jaro-Winkler
Pemrosesan bahasa alami: Jarak Damerau-Levenshtein
Perbandingan terstruktur ini menunjukkan bagaimana setiap metrik jarak memiliki tujuan yang berbeda, dengan jarak Hamming sangat berharga dalam skenario di mana kesederhanaan dan kecepatannya selaras dengan kebutuhan perbandingan panjang tetap.
Kesimpulan
Keanggunan jarak Hamming terletak pada kesederhanaannya. Dengan menghitung posisi di mana urutan berbeda, metrik ini memberikan cara yang andal untuk mengukur ketidakmiripan, baik Anda mendeteksi kesalahan dalam data yang ditransmisikan maupun menganalisis mutasi genetik. Metrik ini sangat unggul di domain di mana setiap posisi sama pentingnya dan substitusi menjadi perhatian utama.
Saat Anda mengeksplorasi metrik jarak dalam pekerjaan Anda, pertimbangkan jarak Hamming ketika:
Bekerja dengan urutan berukuran tetap
Menangani data biner atau kategorikal
Membangun sistem deteksi kesalahan
Menganalisis urutan genetik
Mengembangkan algoritma pencocokan pola
Untuk terus membangun keahlian Anda dalam metrik jarak dan konsep dasar ilmu data lainnya, jelajahi program Sertifikasi Data Scientist kami, tersedia dalam Python dan R.
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.
FAQs
Apa itu jarak Hamming?⌄
Jarak Hamming adalah ukuran yang menghitung jumlah posisi di mana dua string dengan panjang yang sama berbeda. Misalnya, jarak Hamming antara "cat" dan "hat" adalah 1 karena keduanya hanya berbeda pada satu posisi.
Apakah jarak Hamming bisa digunakan untuk string dengan panjang berbeda?⌄
Tidak, jarak Hamming hanya dapat dihitung antara string dengan panjang yang sama. Jika Anda perlu membandingkan string dengan panjang berbeda, pertimbangkan metrik lain seperti jarak Levenshtein atau edit distance.
Apakah jarak Hamming peka huruf besar-kecil saat membandingkan string teks?⌄
Ya, secara bawaan jarak Hamming sensitif terhadap huruf besar-kecil. Misalnya, 'A' dan 'a' akan dianggap karakter yang berbeda. Jika Anda menginginkan perbandingan yang tidak peka huruf besar-kecil, Anda perlu mengonversi semua karakter ke huruf dengan bentuk yang sama sebelum menghitung jarak.
Bagaimana jarak Hamming menangani karakter khusus dan spasi?⌄
Jarak Hamming memperlakukan semua karakter secara setara, termasuk spasi dan karakter khusus. Setiap posisi cukup dibandingkan untuk melihat apakah karakternya sama atau berbeda, tanpa memandang apa pun karakter tersebut.
Apakah jarak Hamming dapat digunakan untuk data non-teks?⌄
Ya, jarak Hamming dapat digunakan dengan jenis data apa pun yang dapat direpresentasikan sebagai urutan dengan panjang yang sama, termasuk data biner, urutan DNA, dan sinyal digital. Satu-satunya persyaratan adalah urutan yang dibandingkan harus memiliki panjang yang sama.
Berapa jarak Hamming maksimum yang mungkin antara dua string?⌄
Jarak Hamming maksimum antara dua string sama dengan panjang string tersebut. Hal ini terjadi ketika string berbeda pada setiap posisi.
Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Metrik jarak menyediakan cara penting untuk mengukur perbedaan antarobjek. Sementara metrik seperti Euclidean atau Manhattan mengukur perbedaan secara spasial, jarak Hamming mengambil pendekatan berbeda: metrik ini menghitung posisi di mana dua urutan berbeda. Hal ini membuatnya sangat berguna untuk deteksi kesalahan, validasi data, dan teori informasi.
Awalnya dikembangkan oleh Richard Hamming pada tahun 1950 saat bekerja pada sistem verifikasi kode di Bell Labs, jarak Hamming telah berkembang melampaui akar telekomunikasinya. Kini, metrik ini menjadi ukuran kunci di berbagai bidang, termasuk:
Dalam panduan ini, kita akan membahas cara kerja jarak Hamming, meninjau penerapannya secara praktis, dan mengimplementasikannya di Python dan R. Konsep dan implementasi yang kita bahas akan meningkatkan kemampuan Anda memecahkan masalah dalam validasi data, bioinformatika, dan machine learning.
Apa itu Jarak Hamming?
Jarak Hamming mengukur jumlah posisi di mana dua string dengan panjang yang sama memiliki simbol yang berbeda. Anggap saja sebagai menghitung jumlah minimum substitusi yang diperlukan untuk mengubah satu string menjadi string lain.
Sebagai contoh, membandingkan dua string biner:
Gambar oleh Penulis
Jarak Hamming di sini adalah 2 karena string berbeda pada dua posisi — bit kedua dan keempat.
Secara matematis, untuk dua string x dan y dengan panjang sama n, jarak Hamming D(x,y) dinyatakan sebagai:
Rumus ini menghitung posisi di mana xᵢ ≠ yᵢ. Untuk string biner, ini menyederhana menjadi menghitung posisi di mana bit berbeda. Untuk jenis urutan lain (seperti DNA atau teks), rumus ini menghitung posisi dengan simbol yang berbeda.
Dua sifat kunci yang perlu diperhatikan:
Sifat-sifat ini menjadikan jarak Hamming ideal untuk skenario di mana:
Cara Kerja Jarak Hamming
Mari kita bahas cara menghitung jarak Hamming melalui contoh, mulai dari string biner sederhana hingga aplikasi yang lebih kompleks.
Contoh string biner
Penerapan paling langsung dari jarak Hamming adalah membandingkan string biner. Mari analisis dua string 8-bit:
Gambar oleh Penulis
Perhitungan langkah demi langkah:
Jarak Hamming adalah 2, karena ada dua posisi di mana string berbeda (posisi 3 dan 6).
Contoh urutan DNA
Jarak Hamming sering digunakan dalam bioinformatika untuk membandingkan urutan genetik. Pertimbangkan dua fragmen DNA:
Gambar oleh Penulis
Analisis langkah demi langkah:
Perbandingan ini membantu ahli biologi mengukur mutasi genetik dan menganalisis kesamaan DNA.
Contoh string teks
Jarak Hamming juga berlaku untuk string teks biasa dengan panjang yang sama:
Gambar oleh Penulis
Jarak Hamming di sini adalah 1, dengan satu-satunya perbedaan pada posisi terakhir ('T' vs 'D').
Jenis perbandingan ini berguna dalam:
Setiap contoh menunjukkan bagaimana jarak Hamming memberikan cara yang sederhana namun efektif untuk mengukur perbedaan antarurutan, terlepas dari jenis data yang dibandingkan. Wawasan utamanya adalah metrik ini melihat perbedaan per posisi sambil mengabaikan sifat spesifik dari perubahan tersebut.
Aplikasi Jarak Hamming
Deteksi dan koreksi kesalahan
Jarak Hamming menjadi dasar bagi kode pendeteksi dan pengoreksi kesalahan dalam komunikasi digital. Dengan menambahkan bit paritas secara strategis untuk menciptakan jarak minimum antar codeword yang valid, sistem dapat mendeteksi saat data yang diterima tidak sesuai dengan pola yang valid dan bahkan mengoreksi kesalahan dengan memetakan ke codeword valid terdekat. Prinsip ini mendukung teknologi modern seperti memori ECC (Error-Correcting Code) pada komputer, koreksi kesalahan pada kode QR, dan sistem komunikasi luar angkasa yang sangat menuntut integritas data.
Teori informasi
Teori informasi menggunakan jarak Hamming untuk merancang sistem komunikasi yang andal. Saat membuat kode penanganan kesalahan, para insinyur memastikan pesan valid (codeword) berbeda dengan jumlah bit minimum tertentu. Misalnya, jika pesan valid selalu berbeda setidaknya dua bit, sistem dapat mendeteksi saat satu bit rusak selama transmisi. Jika pesan valid berbeda setidaknya tiga bit, sistem bahkan dapat mengoreksi kesalahan satu bit dengan mengidentifikasi pesan valid terdekat. Prinsip-prinsip ini membantu menciptakan sistem komunikasi yang tangguh, digunakan mulai dari komunikasi satelit hingga penyimpanan data.
Bioinformatika
Peneliti genetik menggunakan jarak Hamming untuk menganalisis urutan DNA dan mengukur mutasi. Dengan membandingkan urutan genetik per posisi, ilmuwan dapat mengidentifikasi mutasi titik, melacak perubahan evolusioner, dan mempelajari keragaman genetik. Penerapan ini sangat berharga dalam mempelajari mutasi penyakit, di mana memahami posisi tepat perubahan genetik membantu peneliti melacak bagaimana penyakit berevolusi dan menyebar dalam populasi.
Machine learning
Dalam machine learning, jarak Hamming berfungsi sebagai metrik kesamaan untuk data biner atau kategorikal. Metrik ini membantu membandingkan vektor fitur dalam tugas pengenalan pola, mengukur kesamaan dalam sistem rekomendasi, dan menganalisis data kategorikal dalam masalah klasifikasi. Kesederhanaan dan efisiensi perhitungannya membuatnya sangat berguna saat bekerja dengan data biner berdimensi tinggi atau ketika perhitungan kesamaan cepat diperlukan untuk kumpulan data besar.
Sifat Matematis
Sifat ruang metrik
Jarak Hamming membentuk ruang metrik matematis, yang berarti memenuhi empat aturan dasar. Pertama, jarak selalu tidak negatif — Anda tidak bisa memiliki jumlah posisi negatif di mana string berbeda. Kedua, jarak antara dua urutan adalah nol jika dan hanya jika keduanya identik. Ketiga, jarak bersifat simetris — membandingkan urutan A dengan B memberikan hasil yang sama seperti membandingkan B dengan A. Terakhir, metrik ini memenuhi ketaksamaan segitiga: jarak antara urutan A dan C tidak boleh lebih besar dari jumlah jarak dari A ke B dan B ke C.
Sifat string biner
Saat bekerja dengan string biner, jarak Hamming memiliki karakteristik khusus yang membuatnya sangat berguna untuk deteksi kesalahan. Untuk dua string biner dengan panjang n, jarak Hamming tidak dapat melebihi n, yang terjadi hanya ketika kedua string merupakan komplemen satu sama lain. Probabilitas jarak Hamming tertentu “d” antara dua string biner acak mengikuti distribusi binomial, dengan jarak yang paling mungkin adalah n/2. Sifat ini membantu dalam merancang kode pendeteksi kesalahan yang dapat mengenali saat bit terbalik selama transmisi.
Jarak Hamming di Python dan R
Implementasi Python
Python menawarkan fungsi pustaka bawaan dan implementasi khusus untuk menghitung jarak Hamming. Pustaka SciPy menyediakan solusi paling efisien melalui fungsi jarak spasialnya:
Bagi yang lebih menyukai implementasi khusus:
Implementasi R
R menyediakan cara sederhana untuk menghitung jarak Hamming menggunakan fungsi dasar:
Untuk memperluas contoh pengkodean ini dan menjelajahi lebih banyak penerapan metrik jarak dalam praktik, lihat sumber daya komprehensif berikut:
Kursus-kursus ini akan membantu Anda melampaui implementasi dasar untuk memahami bagaimana metrik jarak memengaruhi aplikasi machine learning, apa pun bahasa pemrograman pilihan Anda.
Hamming vs. Pendekatan Lain
Gambar oleh Penulis
Jarak Levenshtein (edit distance)
Jarak Levenshtein merepresentasikan jumlah minimum suntingan satu karakter yang diperlukan untuk mengubah satu string menjadi string lain. Berbeda dengan jarak Hamming, metrik ini dapat menangani string dengan panjang berbeda dengan mempertimbangkan penyisipan dan penghapusan selain substitusi. Fleksibilitas ini membuatnya sangat berguna untuk pemeriksa ejaan, penyelarasan urutan DNA, dan pencocokan string fuzzy, meskipun keserbagunaan ini datang dengan kompleksitas komputasi yang lebih tinggi. Saat membandingkan string seperti "planet" dan "plan", jarak Levenshtein akan menghitung penghapusan 'e' dan 't' sebagai dua operasi, sementara jarak Hamming sama sekali tidak dapat melakukan perbandingan ini.
Jarak Damerau-Levenshtein
Mengembangkan jarak Levenshtein standar, jarak Damerau-Levenshtein menambahkan transposisi karakter yang berdekatan sebagai operasi yang valid. Penambahan ini membuatnya sangat efektif untuk menangkap kesalahan pengetikan umum saat karakter tertukar secara tidak sengaja. Misalnya, saat membandingkan "form" dengan "from", metrik ini akan menghitungnya sebagai satu transposisi daripada dua substitusi terpisah. Metrik ini banyak digunakan dalam aplikasi pemrosesan bahasa alami, khususnya dalam sistem koreksi ejaan otomatis di mana transposisi karakter merupakan kesalahan pengetikan yang umum.
Jarak Jaro-Winkler
Jarak Jaro-Winkler mengambil pendekatan unik dengan berfokus pada bobot posisi karakter, khususnya mengutamakan kecocokan di awal string. Alih-alih menghitung operasi penyuntingan, metrik ini menghasilkan skor kemiripan antara 0 dan 1, di mana 1 menunjukkan kecocokan sempurna. Metrik ini unggul dalam membandingkan nama diri dan string pendek, sehingga ideal untuk penautan rekaman dan tugas deduplikasi. Misalnya, saat membandingkan nama seperti "Martha" dan "Marhta", metrik ini akan memberikan skor kemiripan lebih tinggi karena karakter yang berbeda muncul lebih akhir dalam string.
Memilih metrik jarak yang tepat
Skenario yang berbeda memerlukan metrik jarak yang berbeda. Pertimbangkan faktor-faktor kunci berikut saat memilih pendekatan:
Kebutuhan kecepatan dan efisiensi
Pertimbangan panjang string
Jenis kesalahan yang ingin ditangani
Domain aplikasi
Perbandingan terstruktur ini menunjukkan bagaimana setiap metrik jarak memiliki tujuan yang berbeda, dengan jarak Hamming sangat berharga dalam skenario di mana kesederhanaan dan kecepatannya selaras dengan kebutuhan perbandingan panjang tetap.
Kesimpulan
Keanggunan jarak Hamming terletak pada kesederhanaannya. Dengan menghitung posisi di mana urutan berbeda, metrik ini memberikan cara yang andal untuk mengukur ketidakmiripan, baik Anda mendeteksi kesalahan dalam data yang ditransmisikan maupun menganalisis mutasi genetik. Metrik ini sangat unggul di domain di mana setiap posisi sama pentingnya dan substitusi menjadi perhatian utama.
Saat Anda mengeksplorasi metrik jarak dalam pekerjaan Anda, pertimbangkan jarak Hamming ketika:
Untuk terus membangun keahlian Anda dalam metrik jarak dan konsep dasar ilmu data lainnya, jelajahi program Sertifikasi Data Scientist kami, tersedia dalam Python dan R.