通往 AI 之路:Python 机器学习入门-线性代数

2.1 线性代数(机器学习的核心)

线性代数是机器学习的基础之一,许多核心算法都依赖矩阵运算。本章将介绍线性代数中的基本概念,包括标量、向量、矩阵、矩阵运算、特征值与特征向量,以及奇异值分解(SVD)。


2.1.1 标量、向量、矩阵

1. 标量(Scalar)

标量是一个单独的数,例如:

plaintext 复制代码
a = 5

在 Python 中:

python 复制代码
a = 5  # 标量

2. 向量(Vector)

向量是由多个数值组成的一维数组,例如:

plaintext 复制代码
v = [2, 3, 5]

Python 实现:

python 复制代码
import numpy as np
v = np.array([2, 3, 5])  # 一维数组表示向量
print(v)

3. 矩阵(Matrix)

矩阵是一个二维数组,例如:

plaintext 复制代码
A = [[1, 2],
     [3, 4]]

Python 实现:

python 复制代码
A = np.array([[1, 2], [3, 4]])  # 二维数组表示矩阵
print(A)

2.1.2 矩阵运算

1. 矩阵加法

两个相同形状的矩阵可以相加:

plaintext 复制代码
A + B = [[1, 2],    +   [[5, 6],    =   [[6,  8],
         [3, 4]]         [7, 8]]         [10, 12]]

Python 计算:

python 复制代码
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
C = A + B
print(C)

2. 矩阵乘法

  • 逐元素相乘(Hadamard 乘积)
plaintext 复制代码
A ⊙ B = [[1×5,  2×6],
         [3×7,  4×8]]
       = [[5, 12],
          [21, 32]]

Python 实现:

python 复制代码
C = A * B  # 逐元素相乘
print(C)
  • 矩阵乘法(点积)
plaintext 复制代码
A × B = [[1×5 + 2×7,  1×6 + 2×8],
         [3×5 + 4×7,  3×6 + 4×8]]
       = [[19, 22],
          [43, 50]]

Python 实现:

python 复制代码
C = np.dot(A, B)  # 矩阵乘法
print(C)

3. 矩阵转置

矩阵转置是将行变成列:

plaintext 复制代码
A^T = [[1, 3],
       [2, 4]]

Python 计算:

python 复制代码
A_T = A.T  # 计算转置
print(A_T)

4. 逆矩阵

如果矩阵 A 是可逆的(即 det(A) ≠ 0),那么存在一个矩阵 A^(-1) 使得:

plaintext 复制代码
A × A^(-1) = I  (单位矩阵)

Python 计算:

python 复制代码
A_inv = np.linalg.inv(A)  # 计算逆矩阵
print(A_inv)

2.1.3 特征值与特征向量

特征值(Eigenvalue)和特征向量(Eigenvector)在机器学习中用于主成分分析(PCA)等算法。

1. 定义

对于矩阵 A,如果存在一个向量 v 和一个数 λ 使得:

plaintext 复制代码
A × v = λ × v

那么 vA 的特征向量,λ 是对应的特征值。

2. Python 计算特征值和特征向量

python 复制代码
eigenvalues, eigenvectors = np.linalg.eig(A)
print("特征值:", eigenvalues)
print("特征向量:", eigenvectors)

2.1.4 SVD(奇异值分解)

奇异值分解(Singular Value Decomposition, SVD)是矩阵分解的一种重要方法,它可以表示为:

plaintext 复制代码
A = U × Σ × V^T

其中:

  • U 是左奇异向量矩阵
  • Σ 是对角矩阵,对角线上的元素称为奇异值
  • V^T 是右奇异向量矩阵的转置

Python 计算 SVD

python 复制代码
U, S, V_T = np.linalg.svd(A)
print("U 矩阵:", U)
print("Σ 矩阵:", S)
print("V^T 矩阵:", V_T)

SVD 在降维(如 PCA)中有重要应用,后续章节将深入介绍。


总结

本章介绍了机器学习中常用的线性代数知识,包括:

  • 标量、向量、矩阵 及其表示方式
  • 矩阵运算(加法、乘法、转置、逆矩阵)
  • 特征值与特征向量(PCA 等算法的基础)
  • SVD(奇异值分解)(在数据降维中的应用)

掌握这些内容,有助于理解机器学习的数学基础!建议多实践代码,加深理解!

相关推荐
Love__Tay7 分钟前
【学习笔记】Python金融基础
开发语言·笔记·python·学习·金融
Grassto8 分钟前
Cursor Rules 使用
人工智能
MYH51613 分钟前
深度学习在非线性场景中的核心应用领域及向量/张量数据处理案例,结合工业、金融等领域的实际落地场景分析
人工智能·深度学习
Lilith的AI学习日记20 分钟前
什么是预训练?深入解读大模型AI的“高考集训”
开发语言·人工智能·深度学习·神经网络·机器学习·ai编程
Livingbody44 分钟前
Fast Whisper 语音转文本
后端
聚客AI1 小时前
PyTorch玩转CNN:卷积操作可视化+五大经典网络复现+分类项目
人工智能·pytorch·神经网络
程序员岳焱1 小时前
深度剖析:Spring AI 与 LangChain4j,谁才是 Java 程序员的 AI 开发利器?
java·人工智能·后端
有风南来1 小时前
算术图片验证码(四则运算)+selenium
自动化测试·python·selenium·算术图片验证码·四则运算验证码·加减乘除图片验证码
wangjinjin1801 小时前
Python Excel 文件处理:openpyxl 与 pandas 库完全指南
开发语言·python
愚润求学1 小时前
【C++】类型转换
开发语言·c++