Levenshtein Terbatas
Anda melihat bahwa paket stringdist juga mengimplementasikan variasi jarak Levenshtein yang disebut Restricted Damerau-Levenshtein distance, dan Anda ingin mencobanya. Anda akan mengikuti logika dari pelajaran, membungkusnya dalam sebuah fungsi kustom dan menghitung terlebih dahulu matriks jarak sebelum memasangkan pendeteksi anomali local outlier factor. Anda akan mengukur kinerja dengan accuracy_score() yang tersedia sebagai accuracy(). Anda juga memiliki akses ke paket stringdist, numpy sebagai np, pdist() dan squareform() dari scipy.spatial.distance, serta LocalOutlierFactor sebagai lof. Data telah dimuat sebelumnya sebagai dataframe pandas dengan dua kolom, label dan sequence, dan memiliki dua kelas: IMMUNE SYSTEM dan VIRUS.
Latihan ini adalah bagian dari kursus
Merancang Alur Kerja Machine Learning di Python
Petunjuk latihan
- Tulis sebuah fungsi dengan masukan
udanv, yang masing-masing merupakan array yang berisi sebuah string, dan menerapkan fungsirdlevenshtein()pada kedua string tersebut. - Bentuk ulang kolom
sequencedariproteinsdengan terlebih dahulu mengonversinya menjadi arraynumpy, lalu gunakan.reshape(). - Hitung matriks jarak berbentuk persegi untuk
sequencesmenggunakanmy_rdlevenshtein(), dan latihlofdi atasnya. - Hitung akurasi dengan mengonversi
predsdanproteins['label']menjadi nilai boolean yang menunjukkan apakah suatu protein adalah virus.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# 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(____, ____))