通往 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

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

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(奇异值分解)(在数据降维中的应用)

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

相关推荐
程序猿DD3 小时前
OctaFuse Gateway 2.15.0:MCP 聚合、向量 Embeddings 与官方目录同步
后端·agent
AI日报派送佬4 小时前
2026年10月14日AI行业日报|Gemini 4 Argon正式发布;小模型跨设备传播风险引发安全热议
网络·人工智能·openai·谷歌·deepseek·anthropic·ai日报
VidDown5 小时前
24fps 转 25fps 不只是改个数字:帧率转换、PAL/NTSC 与音频补偿
python·网络协议·音视频·视频编解码·视频
镜象科技5 小时前
职业院校AI心理健康解决方案怎么选?三个特殊场景与三类路线
人工智能
Leo.yuan5 小时前
企业Data Agent架构选型:帆软Dora基于NL2BI的现有BI体系复用方案
大数据·人工智能
余槐i5 小时前
PostgreSQL 函数索引报错 must be immutable:3种绕法与代价
数据库·后端·sql·postgresql·性能优化
朱涛的自习室5 小时前
70 美金的 Beyond Compare,我让 Gemini 4 和 DeepSeek 造个开源免费版(Day 2)
android·前端·人工智能
米小虾6 小时前
上下文:Agent 的眼睛里到底装着什么
人工智能·agent
米小虾6 小时前
Agent = 大脑 + 眼睛 + 手脚:一篇看懂现代 AI Agent 的骨架
人工智能
需要8266 小时前
Spring Bean 生命周期:从实例化到销毁的完整钩子
java·后端·spring