# 10 个机器学习中的线性代数示例

> 原文： [https://machinelearningmastery.com/examples-of-linear-algebra-in-machine-learning/](https://machinelearningmastery.com/examples-of-linear-algebra-in-machine-learning/)

线性代数是涉及向量，矩阵和线性变换的数学子领域。

它是机器学习领域的关键基础，从用于描述算法运算的符号到代码中算法的实现。

尽管线性代数是机器学习领域不可或缺的一部分，但紧密关系通常无法解释或使用抽象概念（如向量空间或特定矩阵运算）进行解释。

在这篇文章中，您将发现 10 个常见的机器学习示例，您可能熟悉这些使用，需要并且使用线性代数最好地理解它们。

阅读这篇文章后，你会知道：

*   在处理数据时使用线性代数结构，例如表格数据集和图像。
*   处理数据准备时的线性代数概念，例如单热编码和降维。
*   在深度学习，自然语言处理和推荐系统等子领域中根深蒂固地使用线性代数符号和方法。

让我们开始吧。

![10 Examples of Linear Algebra in Machine Learning](img/dfe6078149960c7d5b00ff5d5b41463d.jpg)

10 机器学习中的线性代数示例
照片由 [j。 Barbosa](https://www.flickr.com/photos/jsbarbosa/33573815251/) ，保留一些权利。

## 概观

在这篇文章中，我们将回顾机器学习中线性代数的 10 个明显而具体的例子。

我试图选择您可能熟悉或甚至曾经使用过的示例。他们是：

1.  数据集和数据文件
2.  图像和照片
3.  单热编码
4.  线性回归
5.  正则
6.  主成分分析
7.  奇异值分解
8.  潜在语义分析
9.  推荐系统
10.  深度学习

你在机器学习中有自己喜欢的线性代数的例子吗？
请在下面的评论中告诉我。

## 1.数据集和数据文件

在机器学习中，您可以在数据集上拟合模型。

这是一组类似于数字的数字，其中每行代表一个观察，每列代表观察的一个特征。

例如，下面是[鸢尾花数据集](http://archive.ics.uci.edu/ml/datasets/Iris)的片段：

```
5.1,3.5,1.4,0.2,Iris-setosa
4.9,3.0,1.4,0.2,Iris-setosa
4.7,3.2,1.3,0.2,Iris-setosa
4.6,3.1,1.5,0.2,Iris-setosa
5.0,3.6,1.4,0.2,Iris-setosa
```

这个数据实际上是一个矩阵：线性代数中的关键数据结构。

此外，当您将数据拆分为输入和输出以适应监督机器学习模型（例如测量和花卉种类）时，您有一个矩阵（X）和一个向量（y）。向量是线性代数中的另一个关键数据结构。

每行具有相同的长度，即相同数量的列，因此我们可以说数据是向量化的，其中行可以一次提供给一个模型，也可以批量提供，并且可以预先配置模型以期望行固定宽度。

## 2.图像和照片

也许您更习惯于在计算机视觉应用中处理图像或照片。

您使用的每个图像本身都是一个具有宽度和高度的表结构，每个单元格中的一个像素值用于黑白图像，或者每个单元格中有 3 个像素值用于彩色图像。

照片是线性代数矩阵的另一个例子。

使用线性代数的符号和操作来描述图像上的操作，例如裁剪，缩放，剪切等。

## 3.单热编码

有时您在机器学习中使用分类数据。

也许是分类问题的类标签，或者可能是分类输入变量。

通常对分类变量进行编码，以使它们更容易使用并通过某些技术进行学习。分类变量的流行编码是一种热编码。

单热门编码是创建一个表来表示变量，每个类别有一列，数据集中每个例子都有一行。对于给定行的分类值，将在列中添加一个检查或一个值，并将零值添加到所有其他列。

例如，带有 3 行的颜色变量：

```
red
green
blue
...
```

可能被编码为：

```
red, green, blue
1, 0, 0
0, 1, 0
0, 0, 1
...
```

每行被编码为二进制向量，具有零或一个值的向量，这是稀疏表示的示例，线性代数的整个子场。

## 4.线性回归

线性回归是统计学中用于描述变量之间关系的旧方法。

它通常用于机器学习中，用于在更简单的回归问题中预测数值。

有许多方法可以描述和解决线性回归问题，即找到一组系数，当这些系数乘以每个输入变量并加在一起时，可以得到输出变量的最佳预测。

如果您使用过机器学习工具或库，最常用的求解线性回归的方法是通过最小二乘优化，使用线性回归的矩阵分解方法求解，例如 LU 分解或奇异值分解，或 SVD 。

即使是总结线性回归方程的常用方法也使用线性代数符号：

```
y = A . b
```

其中 y 是输出变量 A 是数据集，b 是模型系数。

## 5.正规化

在应用机器学习中，我们经常寻求最简单的模型来实现我们问题的最佳技能。

更简单的模型通常更好地从特定示例推广到看不见的数据。

在涉及系数的许多方法中，例如回归方法和人工神经网络，较简单的模型通常以具有较小系数值的模型为特征。

通常用于鼓励模型在系数适合数据时最小化系数的技术称为正则化。常见的实现包括 L2 和 L1 形式的正则化。

这两种形式的正则化实际上是作为向量的系数的大小或长度的度量，并且是直接从称为向量范数的线性代数中提取的方法。

## 6.主成分分析

通常，数据集具有许多列，可能是数十，数百，数千或更多。

使用许多功能对数据建模具有挑战性，并且根据包含不相关特征的数据构建的模型通常不如从最相关数据训练的模型熟练。

很难知道哪些数据特征是相关的，哪些不相关。

自动减少数据集列数的方法称为降维，也许最流行的方法称为主成分分析，简称 PCA。

该方法用于机器学习，以创建可视化和训练模型的高维数据的投影。

PCA 方法的核心是线性代数的矩阵分解方法。可以使用特征分解，并且更鲁棒的实现可以使用奇异值分解或 SVD。

## 7.奇异值分解

另一种流行的降维方法是奇异值分解方法，简称 SVD。

如上所述，并且正如该方法的名称所暗示的，它是来自线性代数领域的矩阵分解方法。

它广泛用于线性代数，可直接用于特征选择，可视化，降噪等应用。

我们将在机器学习中使用 SVD 以下两个案例。

## 8.潜在语义分析

在用于处理称为自然语言处理的文本数据的机器学习的子领域中，通常将文档表示为单词出现的大矩阵。

例如，矩阵的列可以是词汇表中的已知单词，行可以是句子，段落，页面或文本文档，矩阵中的单元格被标记为单词出现次数的计数或频率。

这是文本的稀疏矩阵表示。矩阵分解方法，例如奇异值分解，可以应用于该稀疏矩阵，其具有将表示提取到其最相关的本质的效果。以这种方式处理的文档更容易比较，查询和使用，作为监督机器学习模型的基础。

这种形式的数据准备称为潜在语义分析（简称 LSA），也称为潜在语义索引或 LSI。

## 9.推荐系统

涉及产品推荐的预测性建模问题称为推荐系统，即机器学习的子领域。

例如，基于您之前在亚马逊上购买和购买的客户推荐的书籍，以及根据您的观看历史记录观看电影和电视节目的建议，以及在 Netflix 上查看像您这样的订阅者的历史记录。

推荐系统的开发主要涉及线性代数方法。一个简单的例子是使用诸如欧几里德距离或点积的距离测量来计算稀疏客户行为向量之间的相似性。

像奇异值分解这样的矩阵分解方法在推荐系统中被广泛使用，以将项目和用户数据提炼到其本质，用于查询和搜索和比较。

## 10.深度学习

人工神经网络是非线性机器学习算法，其受到大脑中信息处理元素的启发，并且在一系列问题中被证明是有效的，其中最重要的是预测性建模。

深度学习是人工神经网络最近的复兴，它采用了更新的方法和更快的硬件，可以在非常大的数据集上开发和训练更大更深（更多层）的网络。深度学习方法通​​常可以在一系列具有挑战性的问题上实现最先进的结果，例如机器翻译，照片字幕，语音识别等等。

在其核心，神经网络的执行涉及线性代数数据结构的乘法和加法。扩展到多维度，深度学习方法适用于向量，矩阵，甚至输入和系数的张量，其中张量是具有两个以上维度的矩阵。

线性代数是深度学习方法描述的核心，通过矩阵表示法实现深度学习方法，例如 Google 的 TensorFlow Python 库，其名称中包含“tensor”一词。

## 摘要

在这篇文章中，您发现了 10 个常见的机器学习示例，您可能熟悉它们并使用线性代数。

具体来说，你学到了：

*   在处理表格数据集和图像等数据时使用线性代数结构。
*   处理数据准备时的线性代数概念，例如单热编码和降维。
*   在深度学习，自然语言处理和推荐系统等子领域中根深蒂固地使用线性代数符号和方法。

你有任何问题吗？
在下面的评论中提出您的问题，我会尽力回答。