Kom igångKom igång gratis

Begränsad Levenshtein

Du märker att paketet stringdist även implementerar en variant av Levenshtein-avstånd som kallas Restricted Damerau-Levenshtein-avstånd, och vill prova den. Du följer logiken från lektionen: du kapslar in den i en egen funktion och förberäknar avståndsmatrisen innan du anpassar en anomalidetektor baserad på Local Outlier Factor. Du mäter prestanda med accuracy_score(), som är tillgänglig som accuracy(). Du har även tillgång till paketen stringdist och numpy som np, samt pdist() och squareform() från scipy.spatial.distance, och LocalOutlierFactor som lof. Data har förinsläktats som en pandas-dataram med två kolumner, label och sequence, och innehåller två klasser: IMMUNE SYSTEM och VIRUS.

Den här övningen är en del av kursen

Att designa maskininlärningsflöden i Python

Visa kurs

Övningsinstruktioner

  • Skriv en funktion med indata u och v, där vardera är en array som innehåller en sträng, och tillämpa funktionen rdlevenshtein() på de två strängarna.
  • Omforma kolumnen sequence från proteins genom att först omvandla den till en numpy-array och sedan använda .reshape().
  • Beräkna en kvadratisk avståndsmatris för sequences med hjälp av my_rdlevenshtein(), och anpassa lof på den.
  • Beräkna noggrannheten genom att konvertera preds och proteins['label'] till booleska värden som anger huruvida ett protein är ett virus.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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(____, ____))
Redigera och kör kod