开始使用免费开始使用

将启发式转化为分类器

您会惊讶于启发式方法竟然如此有用。因此,您决定把"唯一端口过多很可疑"这个启发式,当作一个独立的分类器来使用。做法是:以不良源计算机(其标签为 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, ____))
编辑并运行代码