开始使用免费开始使用

组合启发式规则

另一位网络分析师告诉您,在某些类型的攻击中,受感染的源计算机会发送很小的数据包,以逃避检测。这让您思考,是否应该创建一个组合启发式规则,同时检测端口数量很多且数据包大小较小的情况。与单一的端口启发式相比,这样能提升性能吗?与上一个练习相同,内存中已有 X_trainX_testy_trainy_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(____, ____))
编辑并运行代码