เลเบล, เลเบลอ่อน และความจริง

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

Dr. Chris Anagnostopoulos

Honorary Associate Professor

เลเบลไม่ได้สมบูรณ์เสมอไป

ระดับของความจริง:

  • Ground truth
    • คอมพิวเตอร์แครชและมีข้อความเรียกค่าไถ่ปรากฏขึ้น
  • การติดเลเบลโดยผู้เชี่ยวชาญ
    • นักวิเคราะห์ตรวจสอบ log และระบุพฤติกรรมที่ไม่ได้รับอนุญาต
  • การติดเลเบลด้วย heuristic
    • พอร์ตจำนวนมากได้รับทราฟฟิกในช่วงเวลาสั้นมาก
การออกแบบ Machine Learning Workflows ด้วย Python

เลเบลไม่ได้สมบูรณ์เสมอไป

เลเบลที่ไม่มีสัญญาณรบกวน หรือ strong labels:

  • Ground truth
  • การติดเลเบลโดยผู้เชี่ยวชาญ

เลเบลที่มีสัญญาณรบกวน หรือ weak labels:

  • การติดเลเบลด้วย heuristic

การสร้าง feature:

  • Feature ที่ใช้ใน heuristic
การออกแบบ Machine Learning Workflows ด้วย Python

Feature และ heuristic

ค่าเฉลี่ยของพอร์ตที่ไม่ซ้ำกันที่แต่ละโฮสต์ที่ติดมัลแวร์เยี่ยมชม:

np.mean(X[y]['unique_ports'])
15.11

ค่าเฉลี่ยของพอร์ตที่ไม่ซ้ำกันต่อโฮสต์โดยไม่คำนึงถึงเลเบล:

np.mean(X['unique_ports'])
11.23
การออกแบบ Machine Learning Workflows ด้วย Python

จาก feature สู่เลเบล

แปลง feature ให้เป็น heuristic สำหรับติดเลเบล:

X_train, X_test, y_train, y_test = train_test_split(X, y)
y_weak_train = X_train['unique_ports'] > 15

hist_cropped.png

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

จาก feature สู่เลเบล

เมทริกซ์ feature สองชุดซ้อนกัน ชุดหนึ่งมีเลเบลจากผู้เชี่ยวชาญ อีกชุดติดเลเบลด้วย heuristic

X_train_aug = pd.concat([X_train, X_train])
y_train_aug = pd.concat([pd.Series(y_train), pd.Series(y_weak_train)])
การออกแบบ Machine Learning Workflows ด้วย Python

ข้อมูลถูกซ้อนในลักษณะเดิม โดยเลเบลต้นฉบับได้รับน้ำหนัก 1.0 และเลเบลที่ได้จาก heuristic ได้รับน้ำหนัก 0.5

weights = [1.0]*len(y_train) + [0.1]*len(y_weak_train)
การออกแบบ Machine Learning Workflows ด้วย Python

ความแม่นยำเมื่อใช้ ground truth เพียงอย่างเดียว:

0.91

Ground truth และ weak labels โดยไม่มีน้ำหนัก:

accuracy_score(y_test, clf.fit(X_train_aug, y_train_aug).predict(X_test))
0.93

เพิ่มน้ำหนัก:

accuracy_score(y_test, clf.fit(X_train_aug, y_train_aug, sample_weight=weights).predict(X_test))
0.95
การออกแบบ Machine Learning Workflows ด้วย Python

เลเบลไม่จำเป็นต้องสมบูรณ์!

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

Preparing Video For Download...