結合啟發式規則
另一位資安分析師告訴你,在某些類型的攻擊中,遭感染的來源電腦會送出很小量的流量來避免偵測。這讓你想到,是否應該建立一個同時檢查大量連接埠數目與小封包大小的合併啟發式規則。這樣是否比單純的連接埠啟發式規則更好?和上一個練習一樣,記憶體中已有 X_train、X_test、y_train 與 y_test。範例程式碼也協助你重現連接埠啟發式規則的結果 pred_port。此外,numpy 已以 np 載入,且 accuracy_score() 也已預先載入。
本練習屬於課程
在 Python 設計機器學習工作流程
練習說明
- 欄位
average_packet計算的是某單一來源在所有觀察到的流程中的平均封包大小。請先在訓練集上,只針對不良來源取這些值的平均。 - 現在建立一個新規則:凡平均流量小於上述數值的來源,一律標記為正類。
- 將兩個規則結合,使用合適的算術運算,讓兩個啟發式規則必須同時成立。
- 回報合併啟發式規則的準確率。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Compute the mean of average_packet for bad sources
avg_bad_packet = np.mean(____[____]['average_packet'])
# Label as positive if average_packet is lower than that
pred_packet = ____[____] < avg_bad_packet
# Find indices where pred_port and pred_packet both True
pred_port = X_test['unique_ports'] > avg_bad_ports
pred_both = pred_packet ____ pred_port
# Ports only produced an accuracy of 0.919. Is this better?
print(accuracy_score(____, ____))