完整演示代码请见本书GitHub上的6-4.py。
1.数据搜集和数据清洗
继续使用ADFA-LD数据集中FTP暴力破解的相关数据,ADFA-LD数据集详细介绍请阅读第3章相关内容。
2.特征化
由于ADFA-LD数据集都记录了函数调用序列,每个文件包含的函数调用序列的个数都不一致,可以参考第3章中的词集模型进行特征化。具体思路请参考6.4节。
3.训练样本
实例化决策树和随机森林算法:
clf1 = tree.DecisionTreeClassifier() clf2 = RandomForestClassifier(n_estimators=10,
4.效果验证
我们使用十折交叉验证。
score=cross_validation.cross_val_score(clf1, x, y, n_jobs=-1, cv=10) print np.mean(score) score=cross_validation.cross_val_score(clf2, x, y, n_jobs=-1, cv=10) print np.mean(score)
测试结果如下,决策树准确率约为96%,随机森林准确率约为98%。
0.963786878688 0.984888688869