目前已有很多成熟的工具和函数库用来帮助我们清洗数据,构建特征和创建模型。常用的有: numpy,pandas,scikit-Learn,TensorFlow,MXNet,Keras,Torch,Microsoft Cognitive Toolkit等。
一、numpy
用于对大型多维数组和矩阵的支持,以及用于操作这些数组的大型高级数学函数库二、pandas
可以创建dataframe,为数据表和时间序列提供数据结构和操作的支持。其中dataframe 是最常用的数据格式。目前spark2.X建议使用dataframe作为处理数据的格式。
三、scikit-Learn
它具有各种分类、回归和聚类算法,包括支持向量机、随机森林、梯度提升、kmeans和DBSCAN等算法,并可以与Python数值和科学库NumPy和SciPy互操作。极大地方便科研人员进行创建模型以及测试。
四、TensorFlow
其整体架构如图所示:
TensorFlow可以运行在不同的硬件设备中,比如CPU,GPU,TPU甚至安卓设备中,其使用C++作为底层的核心API,为了使用便捷然后使用pythonAPI去进行控制。当需要创建NN模型时,需要使用tf.layers,tf.losses,tf.metrics等函数进行封装调用,最后可以使用模型评价api配合scikit-learn等工具进行评测模型。
由于TensorFlow是惰性结构,需要创建图之后,在一个session中运行。例如:
五、MXNet
MXNet是一个现代的开源深度学习框架,用于训练和部署深度神经网络。同时MXNet库是可移植的,可以扩展到多个gpu和多台机器。MXNet得到了包括AWS和Azure在内的主要公共云提供商的支持,亚马逊也选择MXNet作为AWS的深度学习框架。
六、Keras
Keras是一个用Python编写的开源神经网络库。它能够运行在MXNet、Deeplearning4j、Tensorflow、C
NTK或Theano之上。用于实现深度神经网络的快速设计实验,它专注于最小化、模块化和可扩展,对于新开发人员非常友好。
七、Torch
numpy库常用函数Torch是一个开源的机器学习库,一个科学计算框架,一种基于Lua编程语言的脚本语言。它提供了广泛的深入机器学习算法,并使用脚本语言LuaJIT和底层的C实现。
八、Microsoft Cognitive Toolkit
以前称为CNTK,有时被称为微软认知工具包,是微软研究院开发的深度学习框架。
Microsoft Cognitive Toolkit通过有向图将神经网络描述为一系列计算步骤。