Zacznij terazZacznij za darmo

Ograniczona odległość Levenshteina

Zauważasz, że pakiet stringdist implementuje również wariant odległości Levenshteina – odległość Restricted Damerau-Levenshtein – i chcesz go wypróbować. Zastosuj podejście z lekcji: opakuj obliczenia w funkcję własną i wstępnie oblicz macierz odległości przed dopasowaniem detektora anomalii opartego na lokalnym współczynniku wartości odstających. Do pomiaru skuteczności użyj accuracy_score(), dostępnej jako accuracy(). Masz też dostęp do pakietów stringdist i numpy (jako np), a także do pdist() i squareform() z scipy.spatial.distance oraz LocalOutlierFactor jako lof. Dane zostały wczytane jako ramka danych pandas z dwiema kolumnami: label i sequence, i zawierają dwie klasy: IMMUNE SYSTEM oraz VIRUS.

To ćwiczenie jest częścią kursu

Projektowanie przepływów pracy uczenia maszynowego w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Napisz funkcję przyjmującą argumenty u i v, z których każdy jest tablicą zawierającą ciąg znaków, i zastosuj w niej funkcję rdlevenshtein() na tych dwóch ciągach.
  • Przekształć kolumnę sequence z proteins, najpierw konwertując ją na tablicę numpy za pomocą np.array(), a następnie korzystając z .reshape().
  • Oblicz kwadratową macierz odległości dla sequences przy użyciu my_rdlevenshtein() i dopasuj na niej lof.
  • Oblicz dokładność, konwertując preds i proteins['label'] na wartości logiczne wskazujące, czy dane białko jest wirusem.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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(____, ____))
Edytuj i uruchom kod