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

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

相关推荐
HtwHUAT几秒前
五、web自动化测试01
前端·css·chrome·python·功能测试·selenium·html
海森大数据4 分钟前
Crawl4AI:打破数据孤岛,开启大语言模型的实时智能新时代
人工智能·语言模型·自然语言处理
依旧阳光的老码农7 分钟前
Windows下使用 VS Code + g++ 开发 Qt GUI 项目的完整指南
开发语言·windows·qt
等什么君!10 分钟前
SpringMVC处理请求映射路径和接收参数
java·开发语言·spring
果冻人工智能10 分钟前
我在大厂做 机器学习工程经理:这六顶帽子,每天都在换
人工智能
曹牧18 分钟前
Java:XML被自动转义
xml·java·开发语言
愚润求学20 分钟前
【专题刷题】二分查找(一):深度解刨二分思想和二分模板
开发语言·c++·笔记·leetcode·刷题
EnigmaCoder22 分钟前
java面向对象编程【基础篇】之基础语法
java·开发语言
tanyongxi6622 分钟前
手撕C++STL list:深入理解双向链表的实现
开发语言·c++·链表
南囝coding24 分钟前
关于我的第一个产品!
前端·后端·产品