Python在机器学习领域的优势:
1、 NumPy:
NumPy是Python的一种开源的数组计算扩展。可用来存储和处理大型矩阵。提供了许多高级的数值编程工具,如:矩阵数据类型、矢量处理、以及精密的运算库,专门为进行严格的数字处理。
NumPy包括:
一个强大的N维数组对象Array;
比较成熟的(广播)函数库;
用于整合C/C++和Fortran代码的工具包;
实用的线性代数、傅里叶变换和随机数生成函数。
【1】安装
pip install --user numpy
【2】使用
首先需要创建数值才能对其进行其他操作。
可以通过给array函数传递Python的序列对象创建数组,如果传递的是多层嵌套的序列,将创建多维数组(列如下列变量c)。
每个数组都有shape
属性和dtype
属性,shape
表示数组维数,dtype
表示数组元素类型。
数组的大小可以通过其shape属性获得:
数组元素的存取方法和Python的标准方法相同:
和Python的列表序列不同,通过下标范围获取的新的数组是原始数组的一个视图。它和原始数组共享同一块数据空间。
除了使用下标范围存取数组之外,NumPy还提供了两种存取元素的高级方法。
NumPy和MatLab不一样,对于多维数组运算,缺省情况下并不能使用矩阵运算,可以调用相应的函数。
NumPy库提供了matrix类,使用matrix类创建的是矩阵对象,它们的加减乘除运算缺省采用矩阵方式计算,用法和Matlab类似。由于NumPy中同时存在ndarray和matrix对象,很容易将两者混淆,所以并不推荐在复杂的程序中使用matrix。
使用matrix的例子:
a是用matrix创建的矩阵对象,因此乘法和幂运算符都变成了矩阵运算,上面计算的是矩阵a和其逆矩阵的乘积,结果是一个单位矩阵。
可使用dot函数进行计算矩阵的乘积,对于二维数组计算的是矩阵的乘积,对于一维数组,计算的是点积(内积)。一维数组要当作矢量或者行矢量进行矩阵运算时,推荐先使用reshape函数转换为二维数组:
reshape()函数可改变数组的形状,其中参数-1,它所做的是未知维度的表示法,意思是让numpy用正确的值来填充缺失的维度,这样我的数组就保留了相同数量的项。例如a.reshapr((-1,1))告诉numpy,我不知道可以分成多少行,但是我的需要是分成1列。reshape(a,b,c) 参数a:创建矩阵个数;参数b:创建的矩阵的行数;参数c:创建的矩阵的列数。参数a可选。
NumPy提供了dot、inner、outer等函数计算乘积。
dot:对于两个一维的数组,计算的是这两个数组对应下标元素的乘积和(数学上称为内积);对于二维数组,计算的是两个数组的矩阵乘积;对于多维数组,它的通用公式为:
dot(a, b)[i,j,k,m] = sum(a[i,j,:] * b[k,:,m])
即结果数组中的每个元素都是——数组a的最后一维上的所有元素与数组b的倒数第二位上的所有元素的乘积和。
先创建两个三维数组,这两个数组的最后两维满足矩阵乘积的条件:
dot乘积的结果c可以看作是数组a,b的多个子矩阵的乘积。
inner:和dot乘积一样,对于两个一维数组,计算的是这两个数组对应下标元素的乘积和;对于多维数组,它计算的结果数组中的每个元素都是——数组a和b的最后一维的内积。因此数组a和b的最后一维长度必须相同。
inner(a, b)[i,j,k,m] = sum(a[i,j,:]*b[k,m,:])
outer:只按照一维数组进行计算,如果传入参数是多维数组,则先将此数组展平为一维数组,之后再进行计算。outer乘积计算的列向量和行向量的矩阵乘积:
更高级的一些运算可以在NumPy的线代数子库linalg中找到。例如inv函数计算逆矩阵,solve函数可以求解一元二次方程。
2、SciPy
SciPy是一款方便、易于使用、专为科学和工程设计的Python工具。它包括统计、优化、整合、线性代数模块、傅里叶变换、信号和图像处理、常微分方程求解器等等。
【1】安装:
下载相对于系统版本的scipy的whl文件,然后将下载文件放到python目录下,输入命令:
pip install scipy‑1.2.2‑cp36‑cp36m‑win_amd64.whl
3、NLTK
NLTK在NLP领域中是最常使用的一个Python库,包括图形演示和示例数据,其提供的教程解释了工具包支持的语言处理任务背后的基本概念。
【1】安装:
pip install -U nltk
【2】使用:
加载数据:
分词与标识:
如果报错提示 Resource [93mpunkt[0m not found.输入命令:import download('punkt')
4、Scikit-Learn
Scikit-Learn是基于Python的机器学习模块,基于BSD开源许可证。其基本功能主要分为6个部分:分类、回归、聚类、数据降维、模型选择、数据预处理。具体可参考官网:https://scikit-learn.org/stable/index.html
安装:
pip install -U scikit-learn
TensorFlow简介与环境搭建
TensorFlow是一个采用数据流图、用于数值计算的开源软件库。节点在图中表示数学操作,图中的线则表示在节点间相互联系的多维数据数组,即张量。
安装:
pip install tensorflow==2.0.0-beta0
使用virtualenv创建一个隔离的容器安装TensorFlow,可以使排查安装问题变得更容易:
先安装所有的必备工具:
# 在Linux上:
$ sudo apt-get install python-pip python-dev python-virtualenv
# 在Mac上:
$ sudo easy_install pip # 如果还没有安装pip
$ sudo pip install --upgrade virtualenv
接下来,建立一个全新的virtualenv环境。为了将环境建在~/tensorflow目录下,执行:
$ virtualenv --system-site-packages ~/tensorflow
$ cd ~/tensorflow
然后激活virtualenv:
$ source bin/activate # 如果使用bash
$ source bin/activate.csh # 如果使用 csh
(tensorflow)$ # 终端提示符应该发生变化
在virtualenv内安装tensorflow:
(tensorflow)$ pip install –U TensorFlow
当使用完tensorflow:
(tensorflow)$ deactivate # 停用virtualenv