เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

Restricted Levenshtein

สังเกตว่าแพ็กเกจ stringdist มีการใช้งาน Levenshtein distance อีกรูปแบบหนึ่งที่เรียกว่า Restricted Damerau-Levenshtein distance และต้องการทดลองใช้ดู โดยจะทำตามแนวทางจากบทเรียน คือสร้าง custom function แล้วคำนวณ distance matrix ล่วงหน้าก่อนจะ fit โมเดลตรวจจับ anomaly แบบ local outlier factor วัดประสิทธิภาพด้วย accuracy_score() ซึ่งพร้อมใช้งานในชื่อ accuracy() นอกจากนี้ยังมีแพ็กเกจ stringdist, numpy ในชื่อ np, ฟังก์ชัน pdist() และ squareform() จาก scipy.spatial.distance และ LocalOutlierFactor ในชื่อ lof ข้อมูลถูกโหลดไว้ล่วงหน้าเป็น pandas dataframe ที่มีสองคอลัมน์ คือ label และ sequence และมีสองคลาส ได้แก่ IMMUNE SYSTEM และ VIRUS

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การออกแบบ Machine Learning Workflows ด้วย Python

ดูคอร์ส

คำแนะนำการฝึกหัด

  • เขียนฟังก์ชันที่รับ input เป็น u และ v ซึ่งแต่ละตัวเป็น array ที่มีสตริงอยู่ แล้วนำไปใช้กับฟังก์ชัน rdlevenshtein() บนสตริงทั้งสอง
  • แปลงรูปร่างของคอลัมน์ sequence จาก proteins โดยแปลงเป็น numpy array ก่อน จากนั้นใช้ .reshape()
  • คำนวณ square distance matrix สำหรับ sequences โดยใช้ my_rdlevenshtein() แล้ว fit lof บน matrix ดังกล่าว
  • คำนวณ accuracy โดยแปลง preds และ proteins['label'] ให้เป็น boolean ที่ระบุว่าโปรตีนนั้นเป็นไวรัสหรือไม่

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# 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(____, ____))
แก้ไขและรันโค้ด