ComenzarEmpieza gratis

Levenshtein restringida

Te fijas en que el paquete stringdist también implementa una variante de la distancia de Levenshtein llamada distancia de Damerau-Levenshtein restringida, y quieres probarla. Seguirás la lógica de la lección, encapsulándola en una función personalizada y precomputando la matriz de distancias antes de ajustar un detector de anomalías de factor de aislamiento local. Medirás el rendimiento con accuracy_score(), disponible como accuracy(). También tienes acceso a los paquetes stringdist, numpy como np, pdist() y squareform() de scipy.spatial.distance, y LocalOutlierFactor como lof. Los datos se han precargado en un pandas DataFrame con dos columnas, label y sequence, y dos clases: IMMUNE SYSTEM y VIRUS.

Este ejercicio forma parte del curso

Diseño de flujos de trabajo de Machine Learning en Python

Ver curso

Instrucciones del ejercicio

  • Escribe una función con entrada u y v, cada una un array que contiene una cadena, y aplica la función rdlevenshtein() a ambas cadenas.
  • Reestructura la columna sequence de proteins convirtiéndola primero en un array de numpy y luego usando .reshape().
  • Calcula una matriz de distancias cuadrada para sequences usando my_rdlevenshtein() y ajusta lof sobre ella.
  • Calcula la exactitud convirtiendo preds y proteins['label'] en booleanos que indiquen si una proteína es un virus.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

# 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 y ejecutar código