Label, weak label, dan kebenaran

Merancang Alur Kerja Machine Learning di Python

Dr. Chris Anagnostopoulos

Honorary Associate Professor

Label tidak selalu sempurna

Tingkat kebenaran:

  • Ground truth
    • komputer crash dan muncul pesan meminta tebusan
  • Pelabelan pakar manusia
    • analis meninjau log komputer dan mengidentifikasi perilaku tidak sah
  • Pelabelan heuristik
    • terlalu banyak port menerima trafik dalam waktu sangat singkat
Merancang Alur Kerja Machine Learning di Python

Label tidak selalu sempurna

Label tanpa noise atau kuat:

  • Ground truth
  • Pelabelan pakar manusia

Label bernoise atau lemah:

  • Pelabelan heuristik

Rekayasa fitur:

  • Fitur yang dipakai dalam heuristik
Merancang Alur Kerja Machine Learning di Python

Fitur dan heuristik

Rata-rata port unik yang dikunjungi tiap host terinfeksi:

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

Rata-rata port unik per host tanpa melihat label:

np.mean(X['unique_ports'])
11.23
Merancang Alur Kerja Machine Learning di Python

Dari fitur ke label

Ubah sebuah fitur menjadi heuristik pelabelan:

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

hist_cropped.png

Merancang Alur Kerja Machine Learning di Python

Dari fitur ke label

Dua salinan matriks fitur ditumpuk. Satu sudah berlabel dari pakar domain, dan satu lagi dilabeli dengan heuristik.

X_train_aug = pd.concat([X_train, X_train])
y_train_aug = pd.concat([pd.Series(y_train), pd.Series(y_weak_train)])
Merancang Alur Kerja Machine Learning di Python

Data ditumpuk seperti slide sebelumnya, tetapi bobot 1,0 diberikan ke label asli, dan bobot 0,5 ke label dari heuristik.

weights = [1.0]*len(y_train) + [0.1]*len(y_weak_train)
Merancang Alur Kerja Machine Learning di Python

Akurasi hanya dengan ground truth:

0.91

Ground truth dan weak label tanpa bobot:

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

Tambahkan bobot:

accuracy_score(y_test, clf.fit(X_train_aug, y_train_aug, sample_weight=weights).predict(X_test))
0.95
Merancang Alur Kerja Machine Learning di Python

Label tidak harus sempurna!

Merancang Alur Kerja Machine Learning di Python

Preparing Video For Download...