開始使用免費開始

把啟發式轉成分類器

你對啟發式方法竟然這麼有幫助感到意外。於是你決定把「不同連接埠太多很可疑」這個啟發式,直接當成一個分類器來使用。做法是:以不良來源電腦(其標籤為 True)所使用的不同連接埠數量的平均值,作為每個來源的連接埠數門檻。資料集已預先載入並切分為訓練與測試,因此記憶體中已有 X_trainX_testy_trainy_test。你也已匯入 accuracy_score(),以及將 numpy 匯入為 np。說明一下:這個練習你不會訓練任何 scikit-learn 的分類器,而是要明確地定義你自己的分類規則!

本練習屬於課程

在 Python 設計機器學習工作流程

檢視課程

練習說明

  • X_train 子集化出所有不良主機,形成新資料集 X_train_bad。請注意,y_train 是布林陣列。
  • 計算不良主機在 unique_ports 欄位的平均值,並存成 avg_bad_ports
  • 現在考慮一個分類器:凡是 unique_ports 大於 avg_bad_ports 的樣本,一律預測為正類。將此分類器在測試資料上的預測存到新變數 pred_port
  • 使用 accuracy_score() 計算此分類器在測試資料上的準確率。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

# 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, ____))
編輯並執行程式碼