python常⽤包_10种常⽤机器学习Python包(Ref1)
下载机器学习的package,安装使⽤
Data Science 对于机器学习算法的预测能⼒重度依赖。 Python对于使⽤机器学习的包提供了⼀个试验
场,提供有效且有趣的各种包。机器学习库让python更加实⽤,本⽂列举⼗种常见机器学习包及其优缺点。
Ref2),⽽不需要过深了解背后的算法。
使⽤Python作为框架的好处是可以很容易的建⽴Machine Learning的模型(Ref2
Python libraries使⽤写好的代码,直接内嵌⼊⾃⼰的代码,提⾼⾃⼰的代码的效率,同时提供⾃⼰代码的重复使⽤率。
但是作为⼀名ML模型开发者,必要了解ML模型⾥的算法是什么,以此预判模型会产⽣的结果,及如何评估。
到此为⽌,我们已经了解Python 框架和Python libraries的不同。接下来是Python常⽤的ML的包。
10 Matplotlib
Ref3)是交互式的跨平台library⽤于2-D绘图。
Matplolib(Ref3
优点:
⾼⽀持度对于Python,IPython shells, Python scripts, Jupyter Notebook, web application servers 和 GUI toolkits (GTK+, Tkinter, Qt, and wxPython).
可以选择类似Matlab的界⾯
⾯向对象的界⾯可以控制轴属性,字体属性,线类型等
与多个图形后端及操作系统兼容
经常合并到其他库中,⽐如pandas
缺点:
两种界⾯像matlab和⾯向对象的界⾯,对于新⼿开发者来说,很容易搞混
Matplotlib是可视化库,不可以直接做数据分析,需要和数据分析库⼀起使⽤, ⽐如Pandas。
9 Natural Language Toolkit (NLTK)
Ref4)⽤于在Python中开发符号和统计⾃然语⾔处理(NLP)的框架和库套件。 它是Python中NLP的标准⼯具。
NLTK(Ref4
优点:
Python库包含图形⽰例以及相关数据。
有⼀本书和对应使⽤⼿册,初学者容易上⼿。
提供对不同ML操作的⽀持,例如分类,解析和标记化功能等。
充当原型和构建研究系统的平台。
与⼏种语⾔兼容。
缺点:
需要先了解字符串处理的基础知识,才可以使⽤NLTK框架。不过,有⽂档⽀撑可以协助进⾏此操作。
NLTK通过将⽂本拆分为句⼦来进⾏句⼦标记化。 这会对性能产⽣负⾯影响。
8 Pandas
Ref5)是⼀个Python库,⽤于为Python编程语⾔提供⾼性能,易于使⽤的数据结构和数据分析⼯具。
Pandas(Ref5
优点:
富有表现⼒,快速且灵活的数据结构。
⽀持聚合,串联,迭代,重新索引和可视化操作。
与其他Python库结合使⽤⾮常灵活。
使⽤最少的命令进⾏直观的数据操作。
⽀持⼴泛的商业和学术领域。
针对性能进⾏了优化。
缺点:
它基于matplotlib构建,这意味着新⼿程序员必须熟悉这两个库,才能知道哪个库最适合解决他们的问题。
不太适合n维数组和统计建模。需要改⽤NumP,SciPy或SciKit Learn。
7 Scikit-Learn
Ref6)是建⽴在matplotlib,NumPy和SciPy库之上的。 该Python ML库具有⽤于数据分析和数据挖掘任务的Python库Scikit-Learn(Ref6
多个⼯具。
优点:
简单,易⽤,有效。
在飞速发展中,不断得到完善。
⼴泛的算法,包括聚类,因⼦分析,主成分分析等。
可以从图像和⽂本中提取数据。
缺点:
该库特别适合于有监督的学习,但不适⽤于深度学习等⽆监督的学习应⽤程序。
6 Seaborn
Seaborn(Ref7
Ref7)是⽤于在Python中制作统计图的库。 它基于matplotlib构建,并与pandas数据结构集成。
优点:
图⽐matplotlib更有吸引⼒。
有内置图, ⽽matplotlib没有。
使⽤更少的代码来可视化图形。
与Pandas的顺利集成:结合了数据可视化和分析功能!
缺点:
由于Seaborn是基于matplotlib构建的,因此需要先学matplotlib才能使⽤Seaborn。
Seaborn依赖默认主题,因此可定制性不如matplotlib。
5 Numpy
能运行python的软件
Ref8)向Python添加了多维数组和矩阵处理,以及⼤量的⾼级数学函数。 它通常⽤于科学计算,因此是⽤于机器学习的最常⽤NumPy(Ref8
的Python软件包之⼀。
优点:
直观,互动性强。
提供傅⾥叶变换,随机数功能和其他⼯具来集成计算语⾔,例如C / C ++和Fortran。
多功能性–其他ML库(例如scikit-learn和TensorFlow)使⽤NumPy数组作为输⼊; 像Pandas这样的数据处理程序包在后台使⽤NumPy。
具有出⾊的开源社区⽀持/贡献。
简化复杂的数学实现。
缺点:
过⼤-如果可以使⽤Python列表,不要使⽤Numpy。
4 Keras
Keras(Ref9
Ref9)是⾮常流⾏的Python ML,它提供了可以在TensorFlow,CNTK或Theano之上运⾏的⾼级神经⽹络API。
优点:
⾮常适合进⾏实验和快速制作原型。
对于神经⽹络容易使⽤。
⾮常适合在建模和可视化中使⽤。
缺点:
慢,因为它需要先创建计算图才能执⾏操作。
3 Scipy
Ref10)是⼀个⾮常流⾏的ML库,具有⽤于优化,线性代数,积分和统计的不同模块。
SciPy(Ref10
优点:
⾮常适合图像处理。
提供简单的数学运算处理。
提供有效的数值例程,包括数值积分和优化。
⽀持信号处理。
缺点:
有⼀个堆栈stack和⼀个库library都命名为SciPy。 该库是堆栈的⼀部分。 对于初学者可能会感到困惑。
2 Pythorch
Ref11)是基于Torch的流⾏的Python ML库,它是⽤C实现并包装在Lua中的ML库。它最初是由Facebook开发的,但现在PyTorch(Ref11
已被Twitter,Salesforce和许多其他主要组织和企业所使⽤。
优点:
包含⽀持计算机视觉,NLP,深度学习和许多其他ML程序的⼯具和库。
开发⼈员可以使⽤GPU加速在Tensor上执⾏计算。
帮助创建计算图。
建模过程简单透明。
默认的“按运⾏定义”模式更像传统编程。
使⽤常见的调试⼯具,例如pdb,ipdb或PyCharm调试器。
使⽤许多易于组合的预训练模型和模块化零件。
缺点:
由于PyTorch相对较新,因此可以到的在线资源相对较少。尽管直观,但这使从头开始学习变得更加困难。
与可扩展性更⾼的Google TensorFlow相⽐,PyTorch尚未被⼴泛认为可以投⼊⽣产。
1 TensorFlow
(Ref12)最初由Google开发,是⼀个使⽤数据流图进⾏⾼性能数值计算的开源库。
TensorFlow (Ref12)
(Ref13)计算的框架。 TensorFlow的主要应⽤是在神经⽹络中,尤其是在⼴泛使实际上,它实际上是⼀个⽤于创建和运⾏涉及Tensor(Ref13)
⽤的深度学习中。 这使其成为⽤于机器学习的最重要的Python软件包之⼀。
优点:
⽀持强化学习和其他算法。
提供计算图抽象。
提供了⼀个⾮常⼤的社区。
(Ref14),这是⽤于直接在浏览器中可视化ML模型的⼯具。
提供TensorBoard (Ref14)
⽣产准备就绪。
可以部署在多个CPU和GPU上。
缺点:
与其他使⽤CPU / GPU的框架相⽐,运⾏速度明显慢。
与PyTorch相⽐,⽐较难上⼿。
计算图可能很慢。
不提供商业⽀持。
不可⼯具化。
总结来说,
本⽂分析了
1. 框架和库之间的区别
2. ⼗⼤常⽤机器学习包的优缺点
接下来,可以尝试做好准备来探索和试验未来编程最有趣的驱动因素之⼀的机器学习。
引⽤及参考⽂献:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。