Python机器学习框架介绍

简介: Python机器学习框架介绍

1 为什么选择用Python

大家有没有想过,为什么Python不知不觉中成了最流行的机器学习语言之一?


随着人工智能技术的发展与普及,Python超越了许多其他编程语言,成为了机器学习领域中最热门最常用的编程语言之一。有许多原因致使Python在众多开发者中如此受追捧,其中之一便是其拥有大量的与机器学习相关的开源框架以及工具库。根据http://builtwith.com的数据显示,45%的科技公司都倾向于使用Python作为人工智能与机器学习领域的编程语言。

e362f0d849184561b5a4d2664f29be4d.png

简单说:Python是一种很简洁的语言,容易写、容易读,而且在机器学习方面有独特的优势。


使Python如此受欢迎主要由于:


1.Python从设计之初就是为效率而生,以使项目从开发到部署再在运维都能保持较高的生产力;

2.社区有大量的基于Python的开源框架及工具库;

3.Python易于上手,可以说是编程小白的福音;

4.相比起C、Java、C++来讲,Python的语法更简单,更高级,只需要更少行数的代码便能实现其他编程


语言同样的功能;

Python的跨平台能力;

正是由于Python简单易用以及高开发效率,吸引了大量的开发者为其创建更多新的机器学习工具库;而


又因为大量的机器学习工具库的出现,使得Python在机器学习领域变得如此流行。


2 机器学习和深度学习框架

大家可能听说过机器学习和深度学习“框架”这个名词,这个框架的作用可是很大的。想象一下,有一天老板说:“来,给你们一个任务,用机器学习的方法给咱们这些图片分类。”你们去Google查询了一下,发现这种图片分类任务用卷积神经网络来解决最好。但是你们很疑惑从头开始编写一个卷积神经网络是好做法吗?


Python的机器学习框架,也就是各种Python库,里面包含定义好的数据结构以及很多库函数、方法、模型等(即API)。我们只需要选择一个适合的框架,通过调用其中的API,编写少量代码,就可以快速建立机器学习模型了。为什么刚才的机器学习实战中只用了不到20行代码就能够完成预测加州房价这么“艰巨”的任务?其中最大的秘密就是使用了框架中的API。


良好的框架不仅易于理解,还支持并行化计算(即硬件加速),并能够自动计算微分、链式求导不明觉厉”是吧?不要紧,正因为框架把这些都做了,同学们就无须自己做这些不懂的东西。


下图中,给出了8个机器学习中常用的库。

c497d841f5b04ab7bec0dc3dba56939a.png


8个机器学习常用的库


这8个库,可分为3大类:Pandas和Num Py提供数据结构,支持数学运算;Matplotlib和Seaborn用于数据可视化;后面4个库提供算法,其中的Scikit-learn是机器学习框架, Tesnsor Flow、Keras和Py Torch则是深度学习框架,可以选择一个来用。另有一些曾经有影响力的框架,如Theano、Caffe、CNTK等,随着“江山代有才人出”,使用率已经大大下降。而新的更方便的库呢?那也一定会继续涌现。


2.1 Pandas

https://pandas.pydata.org/


60fe9afe28f84c28a5b57ff481620cec.png


Pandas是一个Python机器学习库,Pandas是基于Numpy的一种工具,它提供了各种高级的工具用于进行数据分析。其中一项了不起的功能便是它可以用一两行代码就能实现复杂的数据操作。Pandas有许多内置的方法用于分组统计、合并数据、数据筛选、以及时间序列操作。所有的这些操作都有出色的性能表现。因此,使用Pandas通常用于数据挖掘任务。


2.2 Num Py

b28f8bb0e848463889b69baee150090a.png


Numpy是公认的最受欢迎的Python机器学习库之一。Tensorflow以及其他的一些框架内部都使用了Numpy来对张量进行多种操作。数组接口是Numpy最佳及最重要的功能。这个接口可以用于把图像、音频、以及其他二进制流数据表示为多维实数数组。为了把这个库应用到机器学习中,掌握Numpy的操作对于开发者而言意义重大。


与Pandas的区别:

Numpy提供了用于多维数组的对象,而Pandas能够提供称为DataFrame的内存中二维表对象·;Pandas模块主要处理表格数据,而Numpy模块处理数字数据;与Pandas对比,Numpy消耗更少的内存。


2.3 Matplotlib


d56a0a246e3f43eb8e4251b690e6bea1.png62ba2001e18c4250bdf24795c6ab98b6.png

Matplotlib 是 Python 的绘图库,它能让使用者很轻松地将数据图形化,并且提供多样化的输出格式。


Matplotlib 可以用来绘制各种静态,动态,交互式的图表。


Matplotlib 是一个非常强大的 Python 画图工具,我们可以使用该工具将很多数据通过图表的形式更直观的呈现出来。


Matplotlib 可以绘制线图、散点图、等高线图、条形图、柱状图、3D 图形、甚至是图形动画等等。


2.4 Seaborn

Seaborn它基于 Matplotlib,用来制作统计图形的 Python 库。

Seaborn 的优势:


图表丰富,比 matplotlib 易用

与 pandas 结合

支持数值类型多变量关系图

支持数值类型数据分布图

支持类别类型数据可视化

支持回归模型以及可视化

轻松构建结构化多图网格


2.5 Scikit-learn

https://scikit-learn.org.cn/

aaf16004522d4124aff5b6d0b21177ca.png

6d74e818e78e49c9b6a2dc13b1c45485.png


Scikit-learn前面已经用过了。用于预测加州房价的机器学习模型Linear Regression就是直接从那儿“拎”出来的。


它简称Sklearn,是一个相当强大的Python机器学习库,也是简单有效的数据挖掘和数据分析工具。Sklearn基于Num Py、Sci Py和Matplotlib构建,其功能涵盖了从数据预处理到训练模型,再到性能评估的各个方面。


Scikit-learn真的太好用了,它里面包含的大量可以直接使用的机器学习算法,这节省了很多时间。因为不必重复编写算法,更多的精力可以放在问题定义、数据分析、调整参数、模型性能优化等这些具体项目相关的工作上面。


2.6 Tensor Flow

https://tensorflow.google.cn/

b5973a922f9347698bff281ac009dd3b.png

TensorFlow 是谷歌发布的深度学习开源的计算框架,该计算框架可以很好地实现各种深度学习算法,涉及自然语言处理、机器翻译、图像描述、图像分类等一系列技术。


简单来说,TensorFlow 为我们封装了大量机器学习、神经网络的函数,帮助我们高效地解决问题。


2.7 Keras

https://keras.io/zh/


97f53df76f514f90b424e7b1d9db59bc.png

Keras建立在TensorFlow、CNTK或Theano这些后端框架之上。这也就是说,Keras比TensorFlow更高级。在计算机领域,高级是“简单”的代名词。高级意味着易学易用。


Keras才出来没两年时,就已经大受欢迎,到现在已经是除Tensor Flow外最流行的、排行第二位的深度学习框架。


搞机器学习的人,就喜欢简单易用的工具。


其实,写Keras的时候是在对其后端进行调用,相当于还是在Tensor Flow上运行程序,只不过将程序经过Keras中转了一下变成Tensor Flow听得懂的语言,再交给Tensor Flow处理。


2.8 Py Torch

https://pytorch.org/

5c525380a44f4cc0a72b96f28f7d73c6.png

Py Torch是Tensor Flow的竞争对手,也是一个非常“优雅”的机器学习框架。相对Tensor Flow而言,Facebook开发的Py Torch上手相对简单一些,里面所有的算法都是用Python写的,源码也很简洁。近期Py Torch用户量的增长也是相当迅速的。


目录
相关文章
|
3天前
|
机器学习/深度学习 算法 数据挖掘
【Python篇】深度探索NumPy(下篇):从科学计算到机器学习的高效实战技巧1
【Python篇】深度探索NumPy(下篇):从科学计算到机器学习的高效实战技巧
19 5
|
8天前
|
网络协议 Python
|
3天前
|
机器学习/深度学习 并行计算 大数据
【Python篇】深入挖掘 Pandas:机器学习数据处理的高级技巧
【Python篇】深入挖掘 Pandas:机器学习数据处理的高级技巧
26 3
|
3天前
|
机器学习/深度学习 数据采集 分布式计算
【Python篇】深入机器学习核心:XGBoost 从入门到实战
【Python篇】深入机器学习核心:XGBoost 从入门到实战
18 3
|
3天前
|
机器学习/深度学习 数据采集 算法
【Python篇】从零到精通:全面分析Scikit-Learn在机器学习中的绝妙应用
【Python篇】从零到精通:全面分析Scikit-Learn在机器学习中的绝妙应用
15 2
|
3天前
|
机器学习/深度学习 算法 数据可视化
【Python篇】深度探索NumPy(下篇):从科学计算到机器学习的高效实战技巧2
【Python篇】深度探索NumPy(下篇):从科学计算到机器学习的高效实战技巧
10 1
|
13天前
|
JSON 测试技术 数据库
Python的Flask框架
Python的Flask框架
|
3天前
|
测试技术 iOS开发 MacOS
Python和Web--使用Web框架之Flask简单用例
Python和Web--使用Web框架之Flask简单用例
|
23小时前
|
机器学习/深度学习 算法 决策智能
【机器学习】揭秘深度学习优化算法:加速训练与提升性能
【机器学习】揭秘深度学习优化算法:加速训练与提升性能
|
21天前
|
机器学习/深度学习 算法 TensorFlow
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
交通标志识别系统。本系统使用Python作为主要编程语言,在交通标志图像识别功能实现中,基于TensorFlow搭建卷积神经网络算法模型,通过对收集到的58种常见的交通标志图像作为数据集,进行迭代训练最后得到一个识别精度较高的模型文件,然后保存为本地的h5格式文件。再使用Django开发Web网页端操作界面,实现用户上传一张交通标志图片,识别其名称。
47 6
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面