НачатьНачать бесплатно

Ограниченное расстояние Левенштейна

Вы замечаете, что пакет stringdist также реализует разновидность расстояния Левенштейна — ограниченное расстояние Дамерау–Левенштейна, и хотите опробовать её на практике. Вы будете следовать логике из урока: обернёте вычисление в пользовательскую функцию и предварительно вычислите матрицу расстояний перед обучением детектора аномалий на основе локального фактора выброса. Качество модели вы оцените с помощью 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.
  • Вычислите точность, преобразовав 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(____, ____))
Редактировать и запускать код