TIP
本文主要是介绍 Python-主流机器学习库比较 。
# 机器学习常用框架
本文仅是我个人为了记录在学习机器学习过程中使用的各个软件工具,以便于有整体的理解
先转载一个图,我觉得概括的很好:
来源:https://blog.csdn.net/u014410989/article/details/89947128
# Pandas
来源:https://www.pypandas.cn/
Pandas是一个强大的分析结构化数据的工具集;它的使用基础是Numpy(提供高性能的矩阵运算);用于数据挖掘和数据分析,同时也提供数据清洗功能。
# numpy
来源:https://www.numpy.org.cn/
# NumPy 是什么?
NumPy是使用Python进行科学计算的基础软件包。除其他外,它包括:
- 功能强大的N维数组对象。
- 精密广播功能函数。
- 集成 C/C+和Fortran 代码的工具。
- 强大的线性代数、傅立叶变换和随机数功能。
来源:https://www.runoob.com/numpy/numpy-tutorial.html
NumPy 通常与 SciPy(Scientific Python)和 Matplotlib(绘图库)一起使用, 这种组合广泛用于替代 MatLab,是一个强大的科学计算环境,有助于我们通过 Python 学习数据科学或者机器学习。
# SciPy
来源:https://zh.wikipedia.org/wiki/SciPy
SciPy是一个开源 (opens new window)的Python (opens new window)算法库和数学工具包。
SciPy包含的模块有最优化 (opens new window)、线性代数 (opens new window)、积分 (opens new window)、插值 (opens new window)、特殊函数 (opens new window)、快速傅里叶变换 (opens new window)、信号处理 (opens new window)和图像处理 (opens new window)、常微分方程 (opens new window)求解和其他科学与工程中常用的计算。与其功能相类似的软件还有MATLAB (opens new window)、GNU Octave (opens new window)和Scilab (opens new window)。
# sklearn 【相对传统的机器学习 】
SciKit learn的简称是SKlearn,是一个开源的python库,专门用于机器学习、数据挖掘和数据分析的模块。它建立在 NumPy ,SciPy 和 matplotlib 上。
来源:https://www.zhihu.com/question/53740695
Tensorflow和Caffe、MXNet等是针对深度学习特制的工具包,而Scikit-learn是对传统的机器学习,包括预处理,特征工程,模型构建,验证等的完整实现。这两类工具压根不是做同一件事的。
说实话,即使现在深度学习大行其道,很多时候你还是要用传统机器学习方法解决问题的。首先不是每个人都有一个彪悍的电脑/服务器,其次,大多数问题真的不需要深度网络。最后,只会调用工具包的程序员不是好的机器学习者。
# caffe
来源:https://zh.wikipedia.org/wiki/Caffe
Convolutional Architecture for Fast Feature Embedding)是一个深度学习框架,最初开发于加利福尼亚大学伯克利分校 (opens new window)。Caffe在BSD许可 (opens new window)下开源 (opens new window),使用C++ (opens new window)编写,带有Python (opens new window)接口[4] (opens new window)[5] (opens new window)。
# pyTorch 【学习成本低,学术使用多】
来源:https://zh.wikipedia.org/wiki/PyTorch
PyTorch是一个开源 (opens new window)的Python (opens new window)机器学习 (opens new window)库 (opens new window),基于Torch (opens new window)[1] (opens new window)[2] (opens new window)[3] (opens new window),底层由C++实现,应用于人工智能 (opens new window)领域,如自然语言处理 (opens new window)。[4] (opens new window) 它最初由Facebook (opens new window)的人工智能研究团队开发,[5] (opens new window)[6] (opens new window)[7] (opens new window)并且被用于Uber (opens new window)的概率编程 (opens new window)软件Pyro。[8] (opens new window)
PyTorch主要有两大特征:[9] (opens new window)
- 类似于NumPy (opens new window)的张量 (opens new window)计算,可使用GPU (opens new window)加速;
- 基于带自动微分 (opens new window)系统[10] (opens new window)[11] (opens new window)的深度神经网络 (opens new window)[12] (opens new window)。
PyTorch包括torch.nn、torch.optim等子模块[12] (opens new window)。
# tensorflow 【谷歌开源,商业AI使用比较多】
来源:http://www.tensorfly.cn/
TensorFlow? 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。它灵活的架构让你可以在多种平台上展开计算,例如台式计算机中的一个或多个CPU(或GPU),服务器,移动设备等等。TensorFlow 最初由Google大脑小组(隶属于Google机器智能研究机构)的研究员和工程师们开发出来,用于机器学习和深度神经网络方面的研究,但这个系统的通用性使其也可广泛用于其他计算领域。
分类: Machine Learning (opens new window)
# tensorflow 和 pytorch 主要区别:
目前做研究pytorch居多,开源论文以pytorch为主,你可以先学pytorch,但你也说了,你想去实习,工业界用tensorflow的挺多的,所以你早晚也要把它学了。
# 参考文章
- https://www.cnblogs.com/jiading/p/11750088.html
- https://www.zhihu.com/question/481192317/answer/2126033312