ПочатиПочніть безкоштовно

Обмежена відстань Левенштейна

Ви помічаєте, що пакет stringdist також реалізує варіацію відстані Левенштейна — обмежену відстань Дамерау — Левенштейна (Restricted Damerau-Levenshtein), і хочете її спробувати. Ви повторите підхід з уроку: обгорнете виклик у власну функцію та попередньо обчислите матрицю відстаней перед навчанням детектора аномалій Local Outlier Factor. Ви виміряєте якість за допомогою accuracy_score(), яка доступна вам як accuracy(). Також у вас є доступ до пакетів stringdist, numpy як np, pdist() і squareform() зі scipy.spatial.distance, і LocalOutlierFactor як lof. Дані попередньо завантажено як датафрейм pandas з двома стовпцями — label і sequence, — і двома класами: IMMUNE SYSTEM та VIRUS.

Ця вправа є частиною курсу

Проєктування робочих процесів машинного навчання в Python

Переглянути курс

Інструкції до вправи

  • Напишіть функцію з вхідними параметрами u та v, кожен з яких є масивом, що містить рядок, і застосовує rdlevenshtein() до цих двох рядків.
  • Зміни́ть форму стовпця sequence з proteins, спочатку перетворивши його на масив numpy, а потім використайте .reshape().
  • Обчисліть квадратну матрицю відстаней для sequences, використовуючи my_rdlevenshtein(), і навчіть на ній lof.
  • Обчисліть accuracy, перетворивши preds і proteins['label'] на булеві значення, що вказують, чи є білок вірусом.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# 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(____, ____))
Редагувати та запускати код