Aan de slagGa gratis aan de slag

Restricted Levenshtein

Je ziet dat het stringdist-pakket ook een variant van de Levenshtein-afstand implementeert, de Restricted Damerau-Levenshtein-afstand, en je wilt die uitproberen. Je volgt de logica uit de les: je verpakt dit in een eigen functie en precompute de afstandsmatrix voordat je een Local Outlier Factor-anomaliedetector fit. Je meet de prestaties met accuracy_score(), die beschikbaar is als accuracy(). Je hebt ook toegang tot de pakketten stringdist, numpy als np, pdist() en squareform() uit scipy.spatial.distance, en LocalOutlierFactor als lof. De data is vooraf geladen als een pandas-dataframe met twee kolommen, label en sequence, en heeft twee klassen: IMMUNE SYSTEM en VIRUS.

Deze oefening maakt deel uit van de cursus

Machine Learning-workflows ontwerpen in Python

Cursus bekijken

Oefeninstructies

  • Schrijf een functie met input u en v, die elk een array met een string bevatten, en pas de functie rdlevenshtein() toe op de twee strings.
  • Reshape de kolom sequence uit proteins door deze eerst om te zetten naar een numpy-array en vervolgens .reshape() te gebruiken.
  • Bereken een vierkante afstandsmatrix voor sequences met my_rdlevenshtein() en fit lof daarop.
  • Bereken de nauwkeurigheid door preds en proteins['label'] om te zetten naar booleans die aangeven of een eiwit een virus is.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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(____, ____))
Code bewerken en uitvoeren