Cálculo de la distancia de Hamming en Python

Cálculo de la distancia de Hamming en Python
Aprenderá a determinar la distancia de Hamming en Python en esta lección. La distancia de Hamming es la adición de todos los elementos coincidentes que varían entre los vectores en el aprendizaje automático. Sabrá qué es la distancia de Hamming y cómo emplearla al final de esta lección, así como cómo calcularla usando SciPy, cómo calcular la distancia de Hamming entre las matrices binarias más numéricas, y cómo calcular la distancia de Hamming entre las matrices de cadenas. Pero primero, definamos qué es la distancia de Hamming.

Que es la distancia de Hamming?

La distancia de Hamming es una estadística que se puede utilizar para comparar dos cadenas de datos binarios cuando se comparan dos cadenas binarias de igual longitud, la distancia calculada de Hamming es el número de lugares de bits en los que difieren. Los datos se pueden utilizar para la detección de errores y la reparación cuando se envían a través de las redes de computadoras. También se usa en la teoría de codificación para comparar palabras de datos de longitud comparable.

Al comparar varios textos o vectores binarios, la distancia de hamming se utiliza con frecuencia en el aprendizaje automático. La distancia de Hamming, por ejemplo, se puede usar para comparar y determinar cuán diferentes son las cadenas. La distancia de Hamming también se emplea con frecuencia con datos codificados con un solo estado. Las cadenas binarias se usan con frecuencia para representar datos codificados de una sola vez (o cadenas de bits). Los vectores codificados de un solo estado son perfectos para determinar las diferencias entre dos puntos usando la distancia de Hamming, ya que siempre tienen la misma longitud.

Ejemplo 1:

Usaremos Scipy para calcular la distancia de Hamming en Python a lo largo de este ejemplo. Para encontrar la distancia de Hamming entre dos vectores, use la función hamming () en la biblioteca de Python Scipy. Esta función está incluida en el espacial.Paquete de distancia, que también incluye otras funciones de cálculo de longitud útil.

Para determinar la distancia de hamming entre dos listas de valores, primero mírelos. Importar el paquete Scipy en el código para calcular la distancia de Hamming. bisagro.espacial.distancia. hamming () toma las matrices Val_one y Val_Two como parámetros de entrada y devuelve el %de distancia de hamming, que luego se multiplica por la longitud de la matriz para obtener la distancia real.

De Scipy.espacial.Hamming de importación de distancia
val_one = [20, 40, 50, 50]
val_two = [20, 40, 50, 60]
dis = hamming (val_one, val_two)
Imprimir (DIS)

Como puede ver en la captura de pantalla a continuación, la función devolvió un resultado de 0.25 en esta situación.

Pero, ¿cómo interpretamos esta figura?? El valor devuelve la fracción de valores que son diferentes. Para encontrar el número de entradas únicas en la matriz, multiplique este valor por la longitud de la lista:

De Scipy.espacial.Hamming de importación de distancia
val_one = [20, 40, 50, 50]
val_two = [20, 40, 50, 60]
dis = hamming (val_one, val_two) * len (val_one)
Imprimir (DIS)

Aquí está el resultado cuando multiplicamos el valor resultante con la longitud de la lista.

Ejemplo 2:

Ahora, entenderemos cómo calcular la distancia de Hamming entre los dos vectores enteros. Suponga que tenemos dos vectores 'x' y 'y' con los valores [3,2,5,4,8] y [3,1,4,4,4], respectivamente. La distancia de Hamming se puede calcular fácilmente utilizando el código de Python a continuación. Importar el paquete Scipy para calcular la distancia de Hamming en el código suministrado. La función hamming () toma las matrices 'x' e 'y' como parámetros de entrada y devuelve el %de distancia de hamming, que se multiplica por la longitud de la matriz para obtener la distancia real.

De Scipy.espacial.Hamming de importación de distancia
x = [4,3,4,3,7]
y = [2,2,3,3,3]
dis = hamming (x, y) * len (x)
Imprimir (DIS)

La siguiente es la salida del código Python de distancia Hamming que se muestra arriba.

Ejemplo 3:

En esta sección del artículo, aprenderá cómo calcular la distancia de Hamming entre, digamos dos matrices binarias. La distancia de hamming entre las dos matrices binarias se determina de la misma manera que lo hemos hecho con el cálculo de la distancia de hamming de dos matrices numéricas. Vale la pena señalar que la distancia de Hamming solo considera qué tan lejos están separados, no cuán lejos están. Explore el siguiente ejemplo de calcular la distancia de Hamming entre dos matrices binarias en Python. La matriz Val_one contiene [0,0,1,1,0] y la matriz Val_TWO contiene [1,0,1,1,1] valores.

De Scipy.espacial.Hamming de importación de distancia
val_one = [0, 0, 1, 1, 0]
val_two = [1, 0, 1, 1, 1]
dis = hamming (val_one, val_two) * len (val_one)
Imprimir (DIS)

La distancia de Hamming es 2 en esta situación, ya que los elementos primero y el último difieren, como se muestra en el resultado a continuación.

Ejemplo 4:

Calcular la diferencia entre cadenas es una aplicación popular de la distancia de Hamming. Debido a que el método espera estructuras similares a la matriz, cualquier cadena que queremos comparar primero debe transformarse en matrices. El método list (), que convierte una cadena en una lista de valores, se puede usar para lograr esto. Para mostrar cuán diferentes son dos cuerdas, comparémoslas. Puedes ver que tenemos dos cadenas en el código a continuación: 'Catálogo' y 'América.'Después de eso, ambas cuerdas se comparan y se muestra el resultado.

De Scipy.espacial.Hamming de importación de distancia
First_str = 'Catálogo'
Second_str = 'America'
dis = hamming (list (first_str), list (Second_str)) * Len (First_str)
Imprimir (DIS)

El resultado del código de Python anterior es 7.0, que puedes ver aquí.

Siempre debe recordar que las matrices deben tener la misma longitud. Python lanzará un ValueError si intentamos comparar las cuerdas de longitudes desiguales. Porque las matrices proporcionadas solo se pueden coincidir si son de la misma longitud. Visite el código a continuación.

De Scipy.espacial.Hamming de importación de distancia
First_str = 'Catálogo'
Second_str = 'Distancia'
dis = hamming (list (first_str), list (Second_str)) * Len (First_str)
Imprimir (DIS)

Aquí, el código arroja ValueError porque las dos cadenas en el código dado difieren en longitud.

Conclusión

Aprendiste a calcular la distancia de Hamming en Python en este tutorial. Cuando se comparan dos cadenas o matrices, la distancia de hamming se usa para determinar cuántos elementos difieren por pares. La distancia de Hamming se usa con frecuencia en el aprendizaje automático para comparar cadenas y matrices codificadas de un solo estado, como saben. Finalmente, aprendió a utilizar la biblioteca de Scipy para calcular la distancia de Hamming.