ÎncepețiÎncepe gratuit

Levenshtein restricționat

Observi că pachetul stringdist implementează și o variantă a distanței Levenshtein numită distanța Damerau-Levenshtein restricționată și vrei să o testezi. Vei urma logica din lecție, învelind-o într-o funcție personalizată și precalculând matricea de distanțe înainte de a antrena un detector de anomalii bazat pe factorul local de dispersie. Vei măsura performanța cu accuracy_score(), disponibil ca accuracy(). Ai acces la pachetele stringdist, numpy ca np, la pdist() și squareform() din scipy.spatial.distance, și la LocalOutlierFactor ca lof. Datele au fost preîncărcate ca un dataframe pandas cu două coloane, label și sequence, și conțin două clase: IMMUNE SYSTEM și VIRUS.

Acest exercițiu face parte din cursul

Proiectarea fluxurilor de lucru pentru Machine Learning în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Scrie o funcție cu parametrii u și v, fiecare reprezentând un array ce conține un șir de caractere, care aplică funcția rdlevenshtein() pe cele două șiruri.
  • Remodeleazǎ coloana sequence din proteins convertind-o mai întâi într-un array numpy cu np.array(), apoi folosind .reshape().
  • Calculează o matrice pătratică de distanțe pentru sequences folosind my_rdlevenshtein() și antrenează lof pe aceasta.
  • Calculează acuratețea convertind preds și proteins['label'] în valori booleene care indică dacă o proteină este un virus.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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(____, ____))
Editează și rulează codul