ComeçarComece de graça

Levenshtein restrito

Você percebe que o pacote stringdist também implementa uma variação da distância de Levenshtein chamada distância de Damerau-Levenshtein restrita e quer experimentá-la. Você vai seguir a lógica da lição, encapsulando-a em uma função personalizada e pré-computando a matriz de distâncias antes de ajustar um detector de anomalias Local Outlier Factor. Você vai medir o desempenho com accuracy_score(), que está disponível para você como accuracy(). Você também tem acesso aos pacotes stringdist, numpy como np, pdist() e squareform() de scipy.spatial.distance, e LocalOutlierFactor como lof. Os dados foram pré-carregados como um dataframe do pandas com duas colunas, label e sequence, e têm duas classes: IMMUNE SYSTEM e VIRUS.

Este exercício faz parte do curso

Projetando Workflows de Machine Learning em Python

Ver curso

Instruções do exercício

  • Escreva uma função com entrada u e v, cada uma sendo um array contendo uma string, e aplique a função rdlevenshtein() nas duas strings.
  • Redimensione a coluna sequence de proteins convertendo-a primeiro em um array do numpy e depois usando .reshape().
  • Calcule uma matriz de distâncias quadrada para sequences usando my_rdlevenshtein() e ajuste lof nela.
  • Calcule a acurácia convertendo preds e proteins['label'] em valores booleanos indicando se uma proteína é um vírus.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# Wrap the RD-Levenshtein metric in a custom function
def my_rdlevenshtein(u, v):
    return ____.rdlevenshtein(____, ____)

# Reshape the array into a numpy matrix
sequences = ____(proteins['seq']).____(-1, 1)

# Compute the pairwise distance matrix in square form
M = ____

# Run a LoF algorithm on the precomputed distance matrix
preds = lof(metric=____).____(M)

# Compute the accuracy of the outlier predictions
print(accuracy(____, ____))
Editar e executar o código