Bir sezgiyi sınıflayıcıya dönüştürmek
Sezgilerin bu kadar yararlı olmasına şaşırdın. Bu yüzden “çok fazla benzersiz port şüphelidir” sezgisini başlı başına bir sınıflayıcı olarak ele almaya karar veriyorsun. Bunu, kaynak başına benzersiz port sayısını kötü kaynak bilgisayarlarda kullanılan ortalama sayıya göre eşikleyerek yapacaksın — burada etiketin True olduğu bilgisayarlar kastediliyor. Veri kümesi önceden yüklenmiş ve eğitim-test olarak bölünmüş durumda; bellekte X_train, X_test, y_train ve y_test var. İçe aktarımlarında accuracy_score() ve numpy np olarak mevcut. Açıklık getirmek için: Bu egzersizde scikit-learn'den bir sınıflandırıcı eğitmeyeceksin; bunun yerine kendi sınıflandırma kuralını açıkça tanımlayacaksın!
Bu egzersiz
Python'da Machine Learning İş Akışları Tasarlama
kursunun bir parçasıdırEgzersiz talimatları
X_trainiçinden tüm kötü host'ları alt-seçimle al ve yeni bir veri kümesiX_train_badoluştur.y_train'in Boolean bir dizi olduğunu unutma.- Kötü host'lar için
unique_portssütununun ortalamasını hesapla veavg_bad_portsiçinde sakla. - Şimdi,
unique_portsdeğeriavg_bad_portsdeğerini aşan her örneği pozitif tahmin eden bir sınıflayıcıyı düşün. Bu sınıflayıcının test verisi üzerindeki tahminlerinipred_portadlı yeni bir değişkende kaydet. - Bu sınıflayıcının test verisi üzerindeki doğruluğunu
accuracy_score()kullanarak hesapla.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# 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, ____))