Začněte nyníZačněte zdarma

Restricted Levenshtein

Všimneš si, že balíček stringdist implementuje také variantu Levenshteinovy vzdálenosti zvanou Restricted Damerau-Levenshtein distance, a chceš ji vyzkoušet. Budeš postupovat podle logiky z lekce: zabalíš ji do vlastní funkce a předpočítáš matici vzdáleností před trénováním detektoru anomálií local outlier factor. Výkon změříš pomocí accuracy_score(), která je dostupná jako accuracy(). Máš k dispozici také balíčky stringdist, numpy jako np, funkce pdist() a squareform() z scipy.spatial.distance a LocalOutlierFactor jako lof. Data jsou předem načtena jako pandas dataframe se dvěma sloupci, label a sequence, a obsahují dvě třídy: IMMUNE SYSTEM a VIRUS.

Toto cvičení je součástí kurzu

Designing Machine Learning Workflows in Python

Zobrazit kurz

Pokyny k cvičení

  • Napiš funkci se vstupy u a v, kde každý z nich je pole obsahující jeden řetězec, a aplikuj na tyto dva řetězce funkci rdlevenshtein().
  • Přetvaruj sloupec sequence z proteins tak, že ho nejprve převedeš na pole numpy a poté použiješ .reshape().
  • Vypočítej čtvercovou matici vzdáleností pro sequences pomocí my_rdlevenshtein() a natrénuj na ní lof.
  • Vypočítej přesnost tak, že převedeš preds a proteins['label'] na booleovské hodnoty udávající, zda je daný protein virus.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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(____, ____))
Upravit a spustit kód