MulaiMulai sekarang secara gratis

Mengubah heuristik menjadi sebuah classifier

Anda terkejut bahwa heuristik bisa sangat membantu. Karena itu, Anda memutuskan untuk memperlakukan heuristik "terlalu banyak port unik itu mencurigakan" sebagai sebuah classifier tersendiri. Anda mencapainya dengan menetapkan ambang (threshold) pada jumlah port unik per sumber berdasarkan rata-rata jumlah port yang digunakan oleh komputer sumber yang buruk — yaitu komputer yang labelnya True. Himpunan data sudah dimuat dan dibagi menjadi data latih dan uji, sehingga Anda memiliki objek X_train, X_test, y_train, dan y_test di memori. Impor Anda sudah mencakup accuracy_score(), dan numpy sebagai np. Untuk memperjelas: Anda tidak akan melatih classifier dari scikit-learn pada latihan ini, melainkan secara eksplisit mendefinisikan aturan klasifikasi Anda sendiri!

Latihan ini adalah bagian dari kursus

Merancang Alur Kerja Machine Learning di Python

Lihat Kursus

Petunjuk latihan

  • Pilih semua host buruk dari X_train untuk membentuk himpunan data baru X_train_bad. Perhatikan bahwa y_train adalah array Boolean.
  • Hitung rata-rata kolom unique_ports untuk host buruk, dan simpan dalam avg_bad_ports.
  • Sekarang pertimbangkan sebuah classifier yang memprediksi positif untuk setiap contoh yang unique_ports-nya melebihi avg_bad_ports. Simpan prediksi classifier ini pada data uji dalam variabel baru, pred_port.
  • Hitung akurasi classifier ini pada data uji menggunakan accuracy_score().

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# Create a new dataset X_train_bad by subselecting bad hosts
X_train_bad = ____[____]

# Calculate the average of unique_ports in bad examples
avg_bad_ports = np.____(____['unique_ports'])

# Label as positive sources that use more ports than that
pred_port = ____['unique_ports'] > ____

# Print the accuracy of the heuristic
print(____(y_test, ____))
Edit dan Jalankan Kode