【阿里云新人赛】恶意程序检测-项目实践总结

1. 比赛信息

比赛地址:阿里云恶意程序检测新人赛
比赛介绍:使用自然语言处理的方法对恶意程序的行为(API调用序列)进行分析,实现对恶意程序鉴别及分类。

2. 我的主要工作

1)数据预处理:格式转换csv->txt->pkl,根据fileid分组数据,排序后生成api序列,用于训练;
2)数据分析及可视化:主要是数据分布分析,包括恶意程序类别分布分析、调用api的类别及频率分析,训练集与测试集分布差异分析(计算交叉熵)等,
得出结论:此任务训练集与测试集分布差异不大,恶意程序类型更多是与api调用序列有关,与api类别及api调用次数关系不大;
3)模型训练及测试:使用了ngram,tf-idf等方法,使用word2vec训练了词向量,xgboost进行了集成学习,并使用了n折交叉验证。
心得:ngram比tf-idf更适合于此任务,
原因在于IDF是一种试图抑制噪音的加权,单纯地认为文本频率小的单词就越重要,文本频率大的单词就越无用,而对于此任务来说,出现频率小的api也是很有用的。
4)线上成绩:0.472587,129名(2019-11-04)

3. 实践记录(博客形式)

【新人赛】阿里云恶意程序检测 -- 实践记录10.13 - Google Colab连接 / 数据简单查看 / 模型训练【新人赛】阿里云恶意程序检测 -- 实践记录10.20 - 数据预处理 / 训练数据分析 / TF-IDF模型调参【新人赛】阿里云恶意程序检测 -- 实践记录10.27 - TF-IDF模型调参 / 数据可视化【新人赛】阿里云恶意程序检测 -- 实践记录11.3 - n-gram模型调参【新人赛】阿里云恶意程序检测 -- 实践记录11.10 - XGBoost学习 / 代码阅读、调参经验总结【新人赛】阿里云恶意程序检测 -- 实践记录 11.24 - word2vec模型 + xgboost

4. 个人主页

天池主页: Yenchiang-阿里天池
博客主页:Yanqiang-博客园
Github主页:YanqiangWang-Github

你可能感兴趣的:(可视化,机器学习,python,人工智能,深度学习)