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