- 机器学习基础
- ML - 首页
- ML - 简介
- ML - 入门
- ML - 基本概念
- ML - 生态系统
- ML - Python 库
- ML - 应用
- ML - 生命周期
- ML - 所需技能
- ML - 实现
- ML - 挑战与常见问题
- ML - 局限性
- ML - 现实生活中的例子
- ML - 数据结构
- ML - 数学
- ML - 人工智能
- ML - 神经网络
- ML - 深度学习
- ML - 获取数据集
- ML - 分类数据
- ML - 数据加载
- ML - 数据理解
- ML - 数据准备
- ML - 模型
- ML - 监督学习
- ML - 无监督学习
- ML - 半监督学习
- ML - 强化学习
- ML - 监督学习与无监督学习
- 机器学习数据可视化
- ML - 数据可视化
- ML - 直方图
- ML - 密度图
- ML - 箱线图
- ML - 相关矩阵图
- ML - 散点矩阵图
- 机器学习统计学
- ML - 统计学
- ML - 均值、中位数、众数
- ML - 标准差
- ML - 百分位数
- ML - 数据分布
- ML - 偏度和峰度
- ML - 偏差和方差
- ML - 假设
- ML中的回归分析
- ML - 回归分析
- ML - 线性回归
- ML - 简单线性回归
- ML - 多元线性回归
- ML - 多项式回归
- ML中的分类算法
- ML - 分类算法
- ML - 逻辑回归
- ML - K近邻算法 (KNN)
- ML - 朴素贝叶斯算法
- ML - 决策树算法
- ML - 支持向量机
- ML - 随机森林
- ML - 混淆矩阵
- ML - 随机梯度下降
- ML中的聚类算法
- ML - 聚类算法
- ML - 基于中心的聚类
- ML - K均值聚类
- ML - K中心点聚类
- ML - 均值漂移聚类
- ML - 层次聚类
- ML - 基于密度的聚类
- ML - DBSCAN聚类
- ML - OPTICS聚类
- ML - HDBSCAN聚类
- ML - BIRCH聚类
- ML - 亲和传播
- ML - 基于分布的聚类
- ML - 凝聚层次聚类
- ML中的降维
- ML - 降维
- ML - 特征选择
- ML - 特征提取
- ML - 后退消除法
- ML - 前向特征构造
- ML - 高相关性过滤器
- ML - 低方差过滤器
- ML - 缺失值比率
- ML - 主成分分析
- 强化学习
- ML - 强化学习算法
- ML - 利用与探索
- ML - Q学习
- ML - REINFORCE算法
- ML - SARSA强化学习
- ML - 演员-评论家方法
- 深度强化学习
- ML - 深度强化学习
- 量子机器学习
- ML - 量子机器学习
- ML - 使用Python的量子机器学习
- 机器学习杂项
- ML - 性能指标
- ML - 自动工作流
- ML - 提升模型性能
- ML - 梯度提升
- ML - 自举汇聚 (Bagging)
- ML - 交叉验证
- ML - AUC-ROC曲线
- ML - 网格搜索
- ML - 数据缩放
- ML - 训练和测试
- ML - 关联规则
- ML - Apriori算法
- ML - 高斯判别分析
- ML - 成本函数
- ML - 贝叶斯定理
- ML - 精度和召回率
- ML - 对抗性
- ML - 堆叠
- ML - 时期
- ML - 感知器
- ML - 正则化
- ML - 过拟合
- ML - P值
- ML - 熵
- ML - MLOps
- ML - 数据泄露
- ML - 机器学习的盈利化
- ML - 数据类型
- 机器学习 - 资源
- ML - 快速指南
- ML - 速查表
- ML - 面试问题
- ML - 有用资源
- ML - 讨论
机器学习 - Python 库
Python 库是代码和函数的集合,可以在程序中用于执行特定任务。它们通常用于简化编程过程,尤其是在任务重复且复杂的情况下。
如您所知,机器学习是一个跨学科领域,其中每个算法都是通过结合编程和数学开发的。与其使用数学和统计公式手动编码完整的算法,不如使用库来简化任务。
Python 是最流行的编程语言,尤其是在实现机器学习方面,因为它简单易用,拥有丰富的库集合。
以下是一些流行的 Python 机器学习库:
让我们详细讨论上面提到的每个 Python 库。
NumPy
NumPy 是一个用于科学计算的通用数组和矩阵处理包,用于执行各种数学运算,如线性代数、傅里叶变换等。它提供了一个高性能的多维数组对象和工具,用于操作矩阵以改进机器学习算法。它是 Python 机器学习生态系统中的一个关键组件,因为它为许多机器学习算法所需的基础数据结构和数值运算提供了支持。
使用 NumPy,我们可以执行以下重要操作:
数组上的数学和逻辑运算。
傅里叶变换
与线性代数相关的运算。
我们还可以将 NumPy 视为 MATLAB 的替代品,因为 NumPy 通常与 Scipy(科学 Python)和 Mat-plotlib(绘图库)一起使用。
安装和执行
如果您使用的是 Anaconda 发行版,则无需单独安装 NumPy,因为它已随发行版一起安装。您只需使用以下方法将软件包导入到您的 Python 脚本中:
import numpy as np
另一方面,如果您使用的是标准 Python 发行版,则可以使用流行的 Python 软件包安装程序 pip 安装 NumPy。
pip install numpy
示例
以下是一个简单的示例,使用 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(一维)和 DataFrames(二维)。这使得它能够处理各个领域(如金融、商业和医疗保健)中的各种典型用例。
在数据处理中,借助 Pandas,我们可以完成以下五个步骤:
- 加载
- 准备
- 操作
- 建模
- 分析
Pandas中的数据表示
Pandas 中的所有数据表示都是借助以下三种数据结构完成的:
Series - 它是一个带轴标签的一维 ndarray,这意味着它类似于一个包含同类数据的简单数组。例如,以下序列是整数 1、5、10、15、24、25... 的集合。
1 | 5 | 10 | 15 | 24 | 25 | 28 | 36 | 40 | 89 |
DataFrame - 它是最有用的数据结构,用于 Pandas 中几乎所有类型的数据表示和操作。它是一个二维数据结构,可以包含异构数据。通常,表格数据使用 DataFrame 表示。例如,下表显示了学生的数据,包括他们的姓名和学号、年龄和性别:
姓名 | 学号 | 年龄 | 性别 |
---|---|---|---|
Aarav | 1 | 15 | 男性 |
Harshit | 2 | 14 | 男性 |
Kanika | 3 | 16 | 女性 |
Mayank | 4 | 15 | 男性 |
Panel - 它是一个三维数据结构,包含异构数据。很难用图形表示 Panel,但可以将其说明为 DataFrame 的容器。
下表提供了上面提到的 Pandas 中使用的数据结构的维度和描述:
数据结构 | 维度 | 描述 |
---|---|---|
Series | 1-D | 大小不可变,一维同类数据 |
DataFrame | 2-D | 大小可变,表格形式的异构数据 |
Panel | 3-D | 大小可变的数组,DataFrame 的容器。 |
我们可以将这些数据结构理解为,更高维的数据结构是低维数据结构的容器。
安装和执行
如果您使用的是 Anaconda 发行版,则无需单独安装 Pandas,因为它已随发行版一起安装。您只需使用以下方法将软件包导入到您的 Python 脚本中:
import pandas as pd
另一方面,如果您使用的是标准 Python 发行版,则可以使用流行的 Python 软件包安装程序 pip 安装 Pandas。
pip install pandas
安装 Pandas 后,您可以将其导入到 Python 脚本中,就像上面一样。
示例
以下是如何使用 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 之上,但通过执行数值算法和代数函数等复杂任务扩展了其功能。
安装和执行
如果您使用的是 Anaconda 发行版,则无需单独安装 SciPy,因为它已随其一起安装。您只需要在 Python 脚本中使用该包即可。例如,使用以下脚本行,我们从 scipy 中导入 linalg 子模块 -
from scipy import linalg
另一方面,如果您使用的是标准 Python 发行版并且拥有 NumPy,则可以使用流行的 Python 包安装程序 pip 安装 SciPy。
pip install scipy
示例
以下是如何创建二维数组(矩阵)并查找矩阵的逆的示例。
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 如此有用的几个功能 -
它建立在 NumPy、SciPy 和 Matplotlib 之上。
它是开源的,可以在 BSD 许可下重复使用。
每个人都可以访问它,并且可以在各种情况下重复使用。
它可以帮助实现各种机器学习算法,涵盖了 ML 的主要领域,如分类、聚类、回归、降维、模型选择等。
安装和执行
如果您使用的是 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 脚本中像上面一样使用它。
示例
以下是加载乳腺癌数据集的示例 -
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 特别有用。
安装和执行
对于 Windows 操作系统上的 Python 3.8 或更高版本和 CPU 平台,您可以使用以下命令安装 PyTorch(torch、torchvision 和 torchaudio)
pip3 install torch torchvision torchaudio
您可以参考以下链接,了解使用更多选项安装 PyTorch 的方法
https://pytorch.ac.cn/get-started/locally/
要导入 PyTorch,请使用以下命令 -
import torch
安装 PyTorch 后,您可以像上面一样将其导入 Python 脚本中。
示例
以下是如何创建 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 开发的最知名的软件库之一,用于实现机器学习和深度学习任务。使用它可以更轻松地创建计算图并在各种硬件平台上高效执行。它广泛用于开发自然语言处理、图像识别和手写识别等任务。
安装和执行
对于 Windows 操作系统上的 CPU 平台,您可以使用以下命令使用 pip 安装 TensorFlow -
pip install tensorflow
您可以参考以下链接,了解使用更多选项安装 TensorFlow 的方法 -
https://tensorflowcn.cn/install/pip
要导入 TensorFlow,请使用以下命令 -
import tensorflow as tf
安装 TensorFlow 后,您可以像上面一样将其导入 Python 脚本中。
示例
以下是如何使用 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 是一个流行的库,因为它允许轻松快速地进行原型设计。
安装和执行
对于 Windows 操作系统上的 CPU 平台,请使用以下命令使用 pip 安装 Keras -
pip install keras
要导入 TensorFlow,请使用以下命令 -
import keras
安装 Keras 后,您可以像上面一样将其导入 Python 脚本中。
示例
在下面的示例中,我们从 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 是一个流行的绘图库,通常用于数据可视化,创建图形、绘图、直方图和条形图。它提供了用于数据分析、探索和演示任务的工具和函数。
安装和执行
我们可以使用以下脚本行使用 pip 安装 Matplotlib -
pip install matplotlib
大多数 matplotlib 实用程序位于 pyplot 子模块下。我们可以使用以下脚本行从 Matplot 中导入 pyplot -
import matplotlib.pyplot as plt
安装 Matplotlib 后,您可以像上面一样将其导入 Python 脚本中。
示例
在下面的示例中,我们使用 Matplotlib 绘制一条直线 -
import matplotlib.pyplot as plt plt.plot([1,2,3],[1,2,3]) plt.show()
Seaborn
Seaborn 是一个基于 Matplotlib 并与 Pandas 集成的开源 Python 库。它用于制作易于呈现且信息丰富的统计图形,使其成为商业和营销分析的理想选择。这个库可以帮助您学习和探索数据。
安装和执行
我们可以使用以下脚本行使用 pip 安装 Seaborn -
pip install seaborn
我们可以使用以下脚本行将 Seaborn 导入 Python 脚本中 -
import seaborn as sns
安装 Seaborn 后,您可以像上面一样将其导入 Python 脚本中。
OpenCV
Open Source Computer Vision Library,简称OpenCV 是一个用于计算机视觉和图像处理任务的 Python 库。此库用于识别图像模式和数据中的各种特征,还可以与 NumPy 集成以处理 openCV 数组结构。
NLTK
Natural Language ToolKit,简称 NLTK 是一个 Python 编程环境,通常用于开发自然语言处理任务。它包含易于使用的接口,如 WordNet、用于分类、标记化、解析和语义推理的测试处理库。
spaCy
spaCy 是一个免费的开源 Python 库。它提供用于快速有效地执行自然语言处理中高级任务的功能。单词标记化和词性标注是该库有效执行的两个任务。
XGBoost、LightGBM 和 Gensim 是 Python 中许多其他用于机器学习的工具和框架。学习 Python 库将有助于理解机器学习的生态系统,并有助于构建、训练和部署模型。