2.7 常用机器学习工具
在开展恶意代码检测实验阶段,可以使用一些常用的机器学习工具辅助完成实验工作。常用的机器学习工具包括基于Python的框架和基于Java的框架。
(1)基于Python编程语言的机器学习工具
Python被认为是最适合于机器学习的编程语言。所以,在机器学习领域,研究人员开发了多种基于Python语言的机器学习和深度学习工具。
1)Scikit-learn
Scikit-learn [28] 是一个数据挖掘和数据分析工具,它基于Python开发而成,它所依赖的基础库包括NumPy、SciPy和Matplotlib等。Scikit-Learn具有良好的API应用接口,并具备随机搜索功能。Scikit-learn封装了常用的数据挖掘和分析算法,且简单高效。它的基本功能主要包括分类、回归、聚类、数据降维、模型选择和数据预处理。
2)Keras
Keras [29] 是一个高级神经网络API,提供了一个Python深度学习库。Keras比较适合于初学者学习,它通过对神经网络以简单方式表达而实现复杂的深度学习功能,并且向用户隐藏了这个复杂的过程。
3)Theano
Theano [30] 是最成熟的Python深度学习库之一,其主要功能包括:与NumPy紧密集成,可以用符号式语言自定义函数,并可以高效地运行于GPU或CPU平台。
(2)基于Java编程语言的机器学习工具
最常用的基于Java语言编写的机器学习工具为WEKA [31] 。Weka集成了数据挖掘任务相关的机器学习算法。这些算法可以直接应用于数据集,或者也可以自己编写Java代码调用它们。Weka包含各种用于数据预处理、分类、回归、聚类、关联规则以及可视化的工具。此外,也可以基于Weka开发新的机器学习方法。