选自 | machinelearningmastery

作者 | Jason Brownlee

编译 | 机器之心   参与 | 张倩、刘晓坤

本文介绍了 10 个常见机器学习案例,这些案例需要用线性代数才能得到最好的理解。

线性代数是数学的分支学科,涉及矢量、矩阵和线性变换。

它是机器学习的重要基础,从描述算法操作的符号到代码中算法的实现,都属于该学科的研究范围。

虽然线性代数是机器学习领域不可或缺的一部分,但二者的紧密关系往往无法解释,或只能用抽象概念(如向量空间或特定矩阵运算)解释。

阅读这篇文章后,你将会了解到:

  • 如何在处理数据时使用线性代数结构,如表格数据集和图像。

  • 数据准备过程中用到的线性代数概念,例如 one-hot 编码和降维。

  • 深度学习、自然语言处理和推荐系统等子领域中线性代数符号和方法的深入使用。

让我们开始吧。

这 10 个机器学习案例分别是:

1. Dataset and Data Files 数据集和数据文件

2. Images and Photographs 图像和照片

3. One-Hot Encoding one-hot 编码

4. Linear Regression 线性回归

5. Regularization 正则化

6. Principal Component Analysis 主成分分析

7. Singular-Value Decomposition 奇异值分解

8. Latent Semantic Analysis 潜在语义分析

9. Recommender Systems 推荐系统

10. Deep Learning 深度学习

   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. 图像和照片

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

你使用的每个图像本身都是一个固定宽度和高度的表格结构,每个单元格有用于表示黑白图像的 1 个像素值或表示彩色图像的 3 个像素值。

照片也是线性代数矩阵的一种。

与图像相关的操作,如裁剪、缩放、剪切等,都是使用线性代数的符号和运算来描述的。

   3. one-hot 编码

有时机器学习中要用到分类数据。

可能是用于解决分类问题的类别标签,也可能是分类输入变量。

对分类变量进行编码以使它们更易于使用并通过某些技术进行学习是很常见的。one-hot 编码是一种常见的分类变量编码。

one-hot 编码可以理解为:创建一个表格,用列表示每个类别,用行表示数据集中每个例子。在列中为给定行的分类值添加一个检查或「1」值,并将「0」值添加到所有其他列。

例如,共计 3 行的颜色变量:

red
green
blue
...

这些变量可能被编码为:

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

每一行都被编码为一个二进制矢量,一个被赋予「0」或「1」值的矢量。这是一个稀疏表征的例子,线性代数的一个完整子域。

   4. 线性回归

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

该方法通常在机器学习中用于预测较简单的回归问题的数值。

描述和解决线性回归问题有很多种方法,即找到一组系数,用这些系数与每个输入变量相乘并将结果相加,得出最佳的输出变量预测。

如果您使用过机器学习工具或机器学习库,解决线性回归问题的最常用方法是通过最小二乘优化,这一方法是使用线性回归的矩阵分解方法解决的(例如 LU 分解或奇异值分解)。

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

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」一词。

原文链接:https://machinelearningmastery.com/examples-of-linear-algebra-in-machine-learning/

由于微信平台算法改版,公号内容将不再以时间排序展示,如果大家想第一时间看到我们的推送,强烈建议星标我们和给我们多点点【在看】。星标具体步骤为:(1)点击页面最上方“小詹学Python”,进入公众号主页。
(2)点击右上角的小点点,在弹出页面点击“设为星标”,就可以啦。
感谢支持,比心。

初学者 | 10个例子带你了解机器学习中的线性代数相关推荐

  1. 10个例子带你了解机器学习中的线性代数

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 转自:机器之心 本文介绍了 10 个常见机器学习案例,这些案例需要 ...

  2. 读懂系列 | 10个例子带你了解机器学习中的线性代数

    (给机器学习算法与Python学习加星标,提升AI技能) 选自machinelearningmastery 作者:Jason Brownlee 编译:机器之心(almosthuman2014) 原文: ...

  3. 机器学习中的线性代数知识(中)

    关于作者 作者小硕一枚,研究方向为机器学习与自然语言处理,欢迎大家关注我的个人博客https://wangjie-users.github.io/,相互交流,一起学习成长. 前言 在机器学习中的线性代 ...

  4. 机器学习中的线性代数之矩阵求导

    前面针对机器学习中基础的线性代数知识,我们做了一个常用知识的梳理.接下来针对机器学习公式推导过程中经常用到的矩阵求导,我们做一个详细介绍. 矩阵求导(Matrix Derivative)也称作矩阵微分 ...

  5. 机器学习中的线性代数

    第二章 机器学习中的线性代数知识 线性代数作为数学中的一个重要的分支,广发应用在科学与工程中.掌握好线性代数对于理解和从事机器学习算法相关的工作是很有必要的,尤其是对于深度学习而言.因此,在开始介绍深 ...

  6. 一文带你入门机器学习中的树模型(附源码)

    树模型 树模型在机器学习中至关重要,它不仅本身具有较好的性能,也可以用于优化其他的算法. 我们在本节将要介绍优化KNN~KNN~ KNN 算法的树模型以及决策树. 一.KNN~KNN~ KNN 的数据 ...

  7. 矩阵分析理论在实际工程中的应用_机器学习中的线性代数

    [妹子说]上一篇文章中讲了如何打好机器学习中的概率统计基础,那今天就再来说说线性代数的学习路径和思路吧. 没问题. 线性代数作为利用空间来投射和表征数据的基本工具,可以方便的对数据进行各种变换,从而让 ...

  8. 独家|一文带你理解机器学习中的“归纳偏好”真正含义!

    ↑ 点击上方[计算机视觉联盟]关注我们 举例子: 三种属性:{白色.黄色.黑色}+{眼睛颜色蓝色.眼睛颜色不一样}+{有铃铛.没铃铛}   判断是不是"猫" 通过机器学习,现在给了 ...

  9. Spark 机器学习中的线性代数库

    文章目录 1. DenseVector.SparseVector 2. DenseMatrix 3. SparseMatrix 4. Vector 运算 5. 矩阵运算 6. RowMatrix 7. ...

最新文章

  1. 深度学习入门笔记,三流程序员如何凭借实力逆袭高薪?你不服不行!
  2. tableau必知必会之通过服务器视图的全屏实现多媒体展示
  3. mysql延迟复制实现
  4. SAP License:备选统驭科目问题
  5. mysql基线检查_Mysql安全基线检查
  6. android模拟器定位失败,Android-无法在模拟器上获取GPS位置
  7. 在一起计时器_奇妙物理·高中篇:打点计时器基本介绍
  8. linux下罗技摄像头采集图片,linux下寻找罗技摄像头快看酷讯版驱动
  9. Win10 卸载了某软件,右键还有该软件,如何删除呢?
  10. RF:Robot命令行工具帮助文件中文译版(个人翻译)
  11. 支持向量机入门到精通
  12. 计算机图形图像处理专业知识,计算机图形图像处理专业技术的突破研究
  13. 未来可期(关于高考和现在处境的看法)
  14. No provider available from registry localhost:9090 for service
  15. 手把手教你用 pyecharts 制作日历图
  16. 第二部分 java库_Java编程概论——第二部分_学堂在线2020答案
  17. 一款使用MarkDown描述的自动化神器Gauge
  18. STM32_FOC_4_如何获得Park变换中的θ角-即电机的电角度_Plus
  19. 哪种视频不能用于投放DOU+,DOU+投放的视频有要求限制吗?
  20. [ZT]HyperSnap-DX抓图的几招

热门文章

  1. Django 基本使用及目录结构
  2. B+Tree索引为什么可以支持千万级别数据量的查找——讲讲mysql索引的底层数据结构
  3. 从零搭建Prometheus监控报警系统
  4. Python requests 抓取网页状态返回418(亲测)
  5. tp5获取所有请求参数、请求头和IP(亲测)
  6. windows下生成github ssh key详解
  7. CSS的overflow:规定当内容溢出元素框时发生的事情
  8. Vue的axios与ajax的区别:axios是对ajax的封装
  9. PHP中判断字符串是否全是中文eregi函数或含有中文preg_match函数
  10. Linux的tree