机器学习线性代数中的矩阵类型

2025年06月20日 | 阅读 6 分钟

矩阵是机器学习的核心。它们被用作许多算法和数据转换的构建块。在线性代数中,不同类型的矩阵用于不同的任务。它们被用来表示数据、求解方程,甚至执行计算。了解这些不同类型的矩阵对于在机器学习中构建高效模型至关重要。以下是一些在机器学习中使用的矩阵

方阵

方阵是指行数和列数相等的矩阵。它表示为 n×n,其中 n 代表行数和列数。方阵在许多 线性代数 应用中都很重要,例如计算行列式、特征值和特征向量。它们对于诸如求逆或处理对角化之类的矩阵运算非常重要。

输出

Matrix Types in Linear Algebra for Machine Learning

在这里,使用 NumPy 的 np.array 函数创建了一个普通的 2x2 方阵。然后打印出结果矩阵。

对角矩阵

对角矩阵是一种主对角线上的元素可以为任意值,但所有其他位置上的元素都为零的矩阵。这类矩阵很重要,因为它们可以简化矩阵运算的复杂性,尤其是在计算矩阵的幂或求解线性方程组时。它们主要用于与矩阵的特征分解相关的计算中,并在这种应用中给出给定矩阵的特征值。

输出

Matrix Types in Linear Algebra for Machine Learning

在这里,我们将使用 np.diag 来创建一个 3x3 的对角矩阵。这里,值 [1, 2, 3] 被放在对角线上;其他所有元素都为零。

单位矩阵

单位矩阵是一种特殊的方阵,其所有对角线元素为 1,而所有其他元素为 0。单位矩阵之所以是乘法单位元,是因为任何矩阵与单位矩阵相乘都会保持该矩阵不变。单位矩阵在许多应用中都很有用,例如在求解线性方程组和矩阵求逆的概念中。

输出

Matrix Types in Linear Algebra for Machine Learning

使用 np.eye(3) 将得到一个 3x3 的单位矩阵,其中对角线元素为 1,非对角线元素为 0。

对称矩阵

'对称矩阵是其本身等于其转置的方阵,即 A=A^T。也就是说,位置 (x, y) 处的元素与位置 (y, x) 处的元素相同。对称矩阵在优化问题、特征值问题以及许多物理应用中非常常见,尤其是在结构力学和量子物理学中。

输出

Matrix Types in Linear Algebra for Machine Learning

symmetric_matrix 是一个 3x3 的对称矩阵,其中每个元素都是对角线两侧的镜像。

稀疏矩阵

这种矩阵是指除了极少数位置外,所有元素都为 0 的矩阵。许多应用处理的数据自然以稀疏形式存在——例如,自然语言处理和推荐系统。有效地表示稀疏矩阵至关重要,以便节约内存使用并避免非常高的计算成本。SciPy 的库提供了稀疏矩阵格式,如 CSR (Compressed Sparse Row),它可以存储大型稀疏矩阵。

输出

Matrix Types in Linear Algebra for Machine Learning

在这里,我们使用 csr_matrix 创建一个稀疏矩阵。然后调用 toarray() 函数将稀疏矩阵转换为密集的 NumPy 数组以进行显示。

秩亏矩阵

秩亏意味着它未能达到满秩;也就是说,它的行或列是线性相关的。在这种情况下,它不能被求逆,因此出现在数据中存在冗余的问题中。在机器学习中,当特征因子之间存在多重共线性或非常强的关联时,就会发生这种情况。

输出

Matrix Types in Linear Algebra for Machine Learning

rank_deficient_matrix 是一个 2x2 的矩阵。该矩阵是秩亏的,因为它的第二行是第一行的标量倍数,这使得它们线性相关。

正定矩阵

正定矩阵是一种对称矩阵,其中所有特征值都是正数。这类矩阵在优化中也很重要,因为它确保了二次型存在唯一的最小值。此外,它们在统计的 协方差矩阵 中占有一席之地,因为它确保了方差为正。

输出

Matrix Types in Linear Algebra for Machine Learning

给定的 positive_definite_matrix 是一个 2x2 的对称矩阵。它的所有特征值都是正数,因此它是正定的。

上三角矩阵

上三角矩阵是一个方阵,其主对角线以下的所有元素都为零。它是线性系统前向消元过程中非常有用的形式之一。此外,在进行矩阵分解时,例如 LU 分解,也可能遇到它。

输出

Matrix Types in Linear Algebra for Machine Learning

我们可以使用 np.triu 来取一个矩阵并将其主对角线以下的所有元素置零,使其成为上三角形式。

下三角矩阵

下三角矩阵是一个方阵,其主对角线上方的所有元素都为 0。它用于求解线性系统,特别是高斯消元和矩阵分解的过程。这与生成上三角矩阵的过程几乎相同。

输出

Matrix Types in Linear Algebra for Machine Learning

在此示例中,使用 np.tril 来生成一个下三角矩阵,该矩阵将对角线以上的所有元素置零。

Toeplitz 矩阵

Toeplitz 矩阵是一种其每条对角线上的元素从左到右都相等的矩阵。当数据表现出自身重复的模式时,这类矩阵会出现在信号处理、时间序列分析和图像处理中。

输出

Matrix Types in Linear Algebra for Machine Learning

以下是 scipy.linalg 的 toeplitz 函数如何使用列表 [1, 2, 3] 作为输入来构造一个所有从左到右的对角线值都相等的矩阵。

Hankel 矩阵

Hankel 矩阵是一个方阵,其中每条升对角线上的元素值都恒定。与 Toeplitz 矩阵一样,它也用于信号处理和时间序列分析。

输出

Matrix Types in Linear Algebra for Machine Learning

scipy.linalg.hankel 函数生成一个其每个升对角线上的元素值都恒定的矩阵。

邻接矩阵

该矩阵表示网格或图。邻接矩阵的元素定义了图中顶点对的邻接关系。它是一个方阵。位置 (i, j) 的值表示顶点之间是否存在边。

输出

Matrix Types in Linear Algebra for Machine Learning

该矩阵表示一个具有三个顶点和两条边的简单无向图。这里,值 1 表示两个顶点之间存在边,0 表示不存在边。

随机矩阵

在概率论中,随机矩阵是指其元素为概率值的方阵。由于它是关于一组结果的概率分布,因此每列的总和必须为 1。随机矩阵表示马尔可夫链中的状态转移。

输出

Matrix Types in Linear Algebra for Machine Learning

这是一个 2x2 的随机矩阵,其每列的值相加为 1。也就是说,每列构成一个有效的概率分布。


下一主题高斯判别分析