Machine Learning 简明教程

Machine Learning - Python Libraries

Python libraries 是一些代码和函数的集合,可在特定任务的程序中使用。它们通常用于简化重复和复杂任务的编程过程。

如你所知,机器学习是一个交叉学科领域,其中每个算法都是基于编程和数学的结合开发的。使用库可以轻松完成任务,而无需手动使用数学和统计公式对整个算法进行编码。

Python 是一种非常流行的编程语言,特别适合实现机器学习,因为它简单易用、拥有大量的库且易于使用。

下面是几个流行的 Python 机器学习库−

让我们详细讨论以上提到的每个 Python 库。

NumPy

NumPy 是一个通用的数组和矩阵处理包,用于科学计算和执行各种数学运算,如线性代数、傅里叶变换等。它提供了一个高性能多维数组对象和工具,用于操作矩阵以改进机器学习算法。它是 Python 机器学习生态系统的一个关键组成部分,因为它提供了许多机器学习算法所需的底层数据结构和数值运算。

通过使用 NumPy,我们可以执行以下重要运算−

  1. 数组上的数学和逻辑运算。

  2. Fourier transformation

  3. 与线性代数相关的运算。

我们还可以将 NumPy 视为 MATLAB 的替代品,因为 NumPy 通常与 Scipy(科学 Python)和 Mat-plotlib(绘图库)一起使用。

Installation and Execution

如果你正在使用 Anaconda 发行版,则无需单独安装 NumPy,因为它已经随发行版一起安装。你只需使用以下方式将该程序包导入到 Python 脚本中即可−

import numpy as np

另一方面,如果你正在使用标准 Python 发行版,则可以使用流行的 python 程序包安装程序 pip 安装 NumPy。

pip install numpy

Example

以下是一个使用 NumPy 创建一维数组的简单示例−

import numpy as np
data = np.array([1,2,3,4,5])
print(data)
print(len(data))
print(type(data))
print(data.shape)

上述 Python 示例代码会产生以下结果−

[1 2 3 4 5]
5
<class 'numpy.ndarray'>
(5,)

Pandas

Pandas 是一个强大的数据处理和分析库。此库并未在机器学习算法中实际使用,而是在前一步中使用,即用于数据准备。它的功能基于两个数据结构:Series(一维)和 Data frames(二维)。这使得它能够处理金融、商业和健康等各个领域的庞大典型用例。

借助 Pandas,在数据处理中,我们可以完成以下五个步骤−

  1. Load

  2. Prepare

  3. Manipulate

  4. Model

  5. Analyze

Data Representation in Pandas

Panda 中数据的整个表示都是借助以下三个数据结构完成的−

Series − 它是一个一维 ndarray,带有轴标签,这意味着它就像一个具有同质数据的简单数组。例如,以下系列是一组整数 1,5,10,15,24,25…​

1

5

10

15

24

25

28

36

40

89

Data frame − 它是最有用的数据结构,用于 pandas 中几乎所有类型的数据表示和处理。它是一个二维数据结构,可以包含异构数据。通常,使用数据帧来表示表格数据。例如,下表显示了学生的数据,包括姓名、学号、年龄和性别−

Name

Roll number

Age

Gender

Aarav

1

15

Male

Harshit

2

14

Male

Kanika

3

16

Female

Mayank

4

15

Male

Panel − 它是一个包含异构数据的三维数据结构。以图形方式表示框架非常困难,但可以将其视为 DataFrame 的容器。

下表为我们在 Pandas 中使用的上述数据结构提供维度和描述 −

Data Structure

Dimension

Description

Series

1-D

大小不可变,一维同质数据

DataFrames

2-D

大小可变,表格形式的异构数据

Panel

3-D

大小可变的数组,DataFrame 的容器。

我们可以理解,高维数据结构是低维数据结构的容器。

Installation and Execution

如果你使用 Anaconda 发行版,则无需单独安装 Pandas,因为它已随此发行版安装。你只需要使用以下命令将其导入 Python 脚本中 −

import pandas as pd

另一方面,如果你使用的是标准 Python 发行版,则可以使用流行的 python 软件包安装程序 pip 安装 Pandas。

pip install pandas

安装 Pandas 后,您可以将其导入 Python 脚本,如上所述。

Example

以下是使用 Pandas 从 ndarray 创建一个系列的示例 −

import pandas as pd
import numpy as np
data = np.array(['g','a','u','r','a','v'])
s = pd.Series(data)
print (s)

上述示例代码将产生以下结果 −

0    g
1    a
2    u
3    r
4    a
5    v
dtype: object

SciPy

SciPy 是一个用于对大型数据集执行科学计算的开源库。它易于使用,并且执行数据可视化和操作任务的速度很快。它包含用于优化算法和执行积分、线性代数或信号处理等操作的模块。SciPy 构建在 NumPy 之上,但通过执行数值算法和代数函数等复杂任务来扩展其功能。

Installation and Execution

如果你使用 Anaconda 发行版,则无需单独安装 SciPy,因为它已随此发行版安装。你只需要将其导入 Python 脚本。例如,使用以下脚本行,我们从 scipy 导入 linalg 子模块 −

from scipy import linalg

另一方面,如果你使用的是标准 Python 发行版并且使用了 NumPy,则可以使用流行的 python 软件包安装程序 pip 安装 SciPy。

pip install scipy

Example

以下是创建一个二维数组(矩阵)并找到该矩阵的逆的示例。

import numpy as np
import scipy
from scipy import linalg
A= np.array([[1,2],[3,4]])
print(linalg.inv(A))

上述 Python 示例代码会产生以下结果−

[[-2.   1. ]
 [ 1.5 -0.5]]

Scikit-learn

Scikit-learn 是一个建立在 NumPy 和 SciPy 之上的流行开源库,用于实现机器学习模型和统计建模。它支持监督学习和非监督学习。它提供了用于实现数据预处理、特征选择、模型选择、模型评估以及许多其他任务的各种工具。

以下是 Scikit-learn 的一些功能,这些功能使其非常有用 −

  1. 它建立在 NumPy、SciPy 和 Matplotlib 上。

  2. 它是一个开源库,可以在 BSD 许可下重复使用。

  3. 它可供所有人使用,并且可以在各种环境中重复使用。

  4. 广泛的机器学习算法涵盖机器学习的主要领域,如分类、聚类、回归、降维、模型选择等,它们可以在它的帮助下得到实现。

Installation and Execution

如果您正在使用 Anaconda 发行版,那么无需单独安装 Scikit-learn,因为它已与该发行版一起安装。您只需要在 Python 脚本中使用该软件包即可。例如,使用脚本的以下行,我们从 Scikit-learn 导入乳腺癌患者的数据集 −

from sklearn.datasets import load_breast_cancer

另一方面,如果您正在使用标准 Python 发行版且具有 NumPy 及 SciPy,则可以使用流行的 python 软件包安装程序 pip 来安装 Scikit-learn。

pip install scikit-learn

在安装 Scikit-learn 后,您可以像上述步骤中所做的那样在 Python 脚本中使用它。

Example

以下是加载乳腺癌数据集的一个示例 −

from sklearn.datasets import load_breast_cancer
data = load_breast_cancer()
print(data.target[[10, 50, 85]])
print(list(data.target_names))

上述 Python 示例代码将产生以下结果 −

[0 1 0]
['malignant', 'benign']

有关 Scikit-learn 的更详细研究,您可以转到链接 www.tutorialspoint.com/scikit_learn/index.htm

PyTorch

PyTorch 是一个基于 Torch 库的开源 Python 库,通常用于开发深度神经网络。它基于直观的 Python,并且可以动态定义计算图。对于需要灵活且强大的深度学习框架的研究人员和开发人员而言,PyTorch 特别有用。

Installation and Execution

对于 Windows 操作系统上的 Python 3.8 或更高版本和 CPU 平台,可以使用以下命令安装 PyTorch(torch、torchvision 和 torchaudio)

pip3 install torch torchvision torchaudio

您可以参阅带有更多选项的 PyTorch 安装指南

[role="bare"] [role="bare"]https://pytorch.org/get-started/locally/

要导入 PyTorch,请使用以下方法 −

import torch

在安装 PyTorch 后,您可以像上面所做的那样将其导入 Python 脚本。

Example

以下是创建 NumPy 数组并将其转换为 PyTorch 张量的示例 −

import numpy as np
import torch
x = np.ones([3,4])
y = torch.from_numpy(x)
print(y)

上述示例代码将产生以下结果 −

tensor([[1., 1., 1., 1.],
        [1., 1., 1., 1.],
        [1., 1., 1., 1.]], dtype=torch.float64)

TensorFlow

TensorFlow 是 Google 开发的最著名的软件库之一,用于实现机器学习和深度学习任务。有了它,可以更轻松地创建计算图,并在各种硬件平台上高效执行。它广泛用于自然语言处理、图像识别和手写识别等任务的开发。

Installation and Execution

对于 Windows 操作系统上的 CPU 平台,可以使用以下命令使用 pip 安装 TensorFlow −

pip install tensorflow

您可以参阅带有更多选项的 TensorFlow 安装指南 −

[role="bare"] [role="bare"]https://www.tensorflow.org/install/pip

若要导入 TensorFlow,请使用以下命令 −

import tensorflow as tf

安装 TensorFlow 后,你可以将其导入到你的 Python 脚本中,就像上面所做的那样。

Example

以下是如何使用 TensorFlow 创建张量数据或对象的一个示例 −

import tensorflow as tf
data = tf.constant([[2,1],[4,6]])
print(data)

上述示例代码将产生以下结果 −

tf.Tensor(
[[2 1]
 [4 6]], shape=(2, 2), dtype=int32)

Keras

Keras 是一个创建深度学习模型的高级神经网络库。它运行在 TensorFlow、CNTK 或 Theano 之上。它为构建和训练深度学习模型提供了一个简单直观的 API,使其成为初学者和研究人员的绝佳选择。Keras 是一个很受欢迎的库,因为它允许轻松快速地进行原型设计。

Installation and Execution

对于 Windows 操作系统的 CPU 平台,请使用以下命令使用 pip 安装 Keras −

pip install keras

若要导入 TensorFlow,请使用以下命令 −

import keras

安装 Keras 后,你可以将其导入到你的 Python 脚本中,就像上面所做的那样。

Example

在下面的示例中,我们正在从 Keras 导入 CIFAR-10 数据集并打印训练数据和测试数据的形状 −

import keras
(x_train, y_train), (x_test, y_test) = keras.datasets.cifar10.load_data()
print(x_train.shape)
print(x_test.shape)
print(y_train.shape)
print(y_test.shape)

上述示例代码将产生以下结果 −

(50000, 32, 32, 3)
(10000, 32, 32, 3)
(50000, 1)
(10000, 1)

Matplotlib

Matplotlib 是一个流行的绘图库,通常用于数据可视化,创建图形、绘图、直方图和条形图。它为数据分析、探索和展示任务提供了工具和函数。

Installation and Execution

我们可以使用以下脚本行使用 pip 安装 Matplotlib −

pip install matplotlib

大多数 matplotlib 实用工具都位于 pyplot 子模块中。我们可以使用以下脚本行从 Matplot 导入 pyplot

import matplotlib.pyplot as plt

安装 Matplotlib 后,你可以将其导入到你的 Python 脚本中,就像上面所做的那样。

Example

在下面的示例中,我们正在使用 Matplotlib 绘制一条直线 −

import matplotlib.pyplot as plt
plt.plot([1,2,3],[1,2,3])
plt.show()

Seaborn

Seaborn 是一个基于 Matplotlib 构建并与 Pandas 集成的开源 Python 库。它用于制作美观且信息丰富的统计图形,使其非常适用于商业和营销分析。此库可帮助你学习和探索数据。

Installation and Execution

我们可以使用以下脚本行使用 pip 安装 Seaborn −

pip install seaborn

我们可以使用以下脚本行将 Seaborn 导入到我们的 Python 脚本中 −

import seaborn as sns

安装 Seaborn 后,你可以将其导入到你的 Python 脚本中,就像上面所做的那样。

OpenCV

开源计算机视觉库,简称 OpenCV 是用于计算机视觉和图像处理任务的 python 库。该库用于识别来自数据的图像模式和各种特征,还可以与 NumPy 集成以处理 openCV 数组结构。

NLTK

Natural Language ToolKit ,简称 NLTK 是一个通常用于开发自然语言处理任务的 python 编程环境。它包含易于使用的界面,如 WordNet、用于分类、标记化、解析和语义推理的测试处理库。

spaCy

spaCy 是一个免费的开源 Python 库。它以更快速、更优秀的方式为自然语言处理中的高级任务提供功能。该库有效执行单词标记化和 POS 标记这两项任务。

Python 中还有许多其他工具和框架用于机器学习。学习 Python 库有助于理解机器学习的生态系统,有助于构建、训练和部署模型。