Cálculo da distância de Hamming em Python

Cálculo da distância de Hamming em Python
Você aprenderá como determinar a distância de Hamming em Python nesta lição. A distância de hamming é a adição de todos os elementos correspondentes que variam entre vetores no aprendizado de máquina. Você saberá o que é a distância de Hamming e como empregá -la até o final desta lição, bem como calculá -la usando o SCIPY, como calcular a distância de hamming entre matrizes numéricas binárias e como calcular a distância de hamming entre as matrizes de cordas entre as cordas. Mas primeiro, vamos definir o que é a distância de Hamming.

O que é a distância de Hamming?

A distância de hamming é uma estatística que pode ser usada para comparar duas seqüências de dados binários quando duas cordas binárias de comprimento igual são comparadas, a distância calculada de hamming é o número de locais de bits em que eles diferem. Os dados podem ser utilizados para detecção de erros e reparos quando são enviados nas redes de computadores. Também é usado na teoria da codificação para comparar as palavras de dados de comprimento comparável.

Ao comparar vários textos ou vetores binários, a distância de hamming é freqüentemente utilizada no aprendizado de máquina. A distância de hamming, por exemplo, pode ser usada para comparar e determinar como as strings são diferentes. A distância de hamming também é frequentemente empregada com dados codificados de um hot. As cordas binárias são frequentemente usadas para representar dados codificados com um tiro (ou strings de bits). Os vetores codificados em um hot são perfeitos para determinar diferenças entre dois pontos usando a distância de hamming, pois são sempre de igual tempo.

Exemplo 1:

Usaremos o Scipy para calcular a distância de Hamming em Python ao longo deste exemplo. Para encontrar a distância de hamming entre dois vetores, use a função Hamming () na Biblioteca Python Scipy. Esta função está incluída no espacial.Pacote de distância, que também inclui outras funções de cálculo de comprimento útil.

Para determinar a distância de hamming entre duas listas de valores, primeiro olhe para eles. Importar o pacote cipy para o código para calcular a distância de Hamming. Scipy.espacial.distância. Hamming () pega as matrizes Val_one e Val_t_t.

de Scipy.espacial.Hamming de importação à distância
val_one = [20, 40, 50, 50]
val_two = [20, 40, 50, 60]
dis = hamming (val_one, val_two)
impressão (dis)

Como você pode ver na captura de tela abaixo, a função retornou o resultado de 0.25 Nesta situação.

Mas como interpretamos esta figura? A fração de valores diferentes é retornada pelo valor. Para encontrar o número de entradas exclusivas na matriz, multiplique esse valor pelo comprimento da lista:

de Scipy.espacial.Hamming de importação à distância
val_one = [20, 40, 50, 50]
val_two = [20, 40, 50, 60]
dis = hamming (val_one, val_two) * len (val_one)
impressão (dis)

Aqui está o resultado quando multiplicamos o valor resultante com o comprimento da lista.

Exemplo 2:

Agora, entenderemos como calcular a distância de hamming entre os dois vetores inteiros. Suponha que tenhamos dois vetores 'x' e 'y' com os valores [3,2,5,4,8] e [3,1,4,4,4], respectivamente, respectivamente. A distância de hamming pode ser facilmente calculada usando o código Python abaixo. Importe o pacote cipy para calcular a distância de hamming no código fornecido. A função Hamming () pega as matrizes 'x' e 'y' como parâmetros de entrada e retorna a distância de Hamming, que é multiplicada pelo comprimento da matriz para obter a distância real.

de Scipy.espacial.Hamming de importação à distância
x = [4,3,4,3,7]
y = [2,2,3,3,3]
dis = hamming (x, y) * len (x)
impressão (dis)

A seguir, é apresentada a saída do código Python de distância de Hamming mostrado acima.

Exemplo 3:

Nesta seção do artigo, você aprenderá a calcular a distância de hamming entre, digamos, duas matrizes binárias. A distância de hamming entre as duas matrizes binárias é determinada da mesma maneira que fizemos com o cálculo da distância de hamming de duas matrizes numéricas. Vale a pena notar que a distância de Hamming apenas considera o quão longe os itens estão separados, não a que distância eles estão. Explore o seguinte exemplo de calcular a distância de hamming entre duas matrizes binárias no Python. A matriz val_one contém [0,0,1,1,0] e a matriz Val_two contém [1,0,1,1,1] valores.

de Scipy.espacial.Hamming de importação à distância
val_one = [0, 0, 1, 1, 0]
val_two = [1, 0, 1, 1, 1]
dis = hamming (val_one, val_two) * len (val_one)
impressão (dis)

A distância de hamming é 2 nessa situação, pois o primeiro e os últimos itens diferem, como mostrado no resultado abaixo.

Exemplo 4:

Cálculo da diferença entre as cordas é uma aplicação popular da distância de hamming. Como o método espera estruturas semelhantes a matrizes, quaisquer strings que queremos comparar devem ser transformadas primeiro em matrizes. O método list (), que transforma uma string em uma lista de valores, pode ser usado para realizar isso. Para mostrar como são diferentes duas cordas, vamos compará -las. Você pode ver que temos duas cordas no código abaixo: 'Catálogo' e 'America.'Depois disso, ambas as cordas são comparadas e o resultado é exibido.

de Scipy.espacial.Hamming de importação à distância
primeiro_str = 'catálogo'
Second_str = 'America'
dis = hamming (list (primeiro_str), list (Second_str)) * len (primeiro_str)
impressão (dis)

O resultado do código Python acima é 7.0, que você pode ver aqui.

Você deve sempre se lembrar que as matrizes devem ter o mesmo comprimento. Python jogará um ValueError se tentarmos comparar as cordas de comprimentos desiguais. Porque as matrizes fornecidas só podem ser correspondidas se tiverem o mesmo comprimento. Dê uma olhada no código abaixo.

de Scipy.espacial.Hamming de importação à distância
primeiro_str = 'catálogo'
Second_str = 'Distância'
dis = hamming (list (primeiro_str), list (Second_str)) * len (primeiro_str)
impressão (dis)

Aqui, o código lança o ValueError porque as duas seqüências no código dado diferem no comprimento.

Conclusão

Você aprendeu a calcular a distância de Hamming em Python neste tutorial. Quando duas cordas ou matrizes são comparadas, a distância de hamming é usada para determinar quantos elementos diferem em pares. A distância de hamming é frequentemente usada no aprendizado de máquina para comparar strings e matrizes codificadas, como você sabe. Finalmente, você aprendeu a fazer uso da biblioteca scipy para calcular a distância de hamming.