前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >机器学习零基础小白指南---- 线性代数入门

机器学习零基础小白指南---- 线性代数入门

作者头像
用户11292525
发布2025-01-13 08:37:15
发布2025-01-13 08:37:15
12300
代码可运行
举报
文章被收录于专栏:学习学习
运行总次数:0
代码可运行
前言

线性代数是机器学习的基石。在掌握机器学习的实战技巧之前,数学基础是绕不过去的一环。本文从零基础视角,通过简明易懂的方式,带你掌握线性代数的核心概念,帮助你构建机器学习的数据表示与运算基础。

为什么从线性代数开始?
  • 数据表示:机器学习中的数据多以矩阵或向量形式表示,线性代数是理解这些数据的语言。
  • 模型构建:从线性回归到神经网络,矩阵运算是核心。
  • 特征变换:降维、特征提取等技术都依赖线性代数。

一、向量:数据的基本单元
1.1 向量的定义

向量是线性代数的核心概念之一,可看作一组有序数值的集合,用于描述对象的特征。

例子: 描述一个人的体型:

  • 身高:170 厘米
  • 体重:65 公斤
  • 年龄:30 岁

这些特征可以组合为一个向量: [ v = [170, 65, 30] ]

1.2 向量的维度与表示

维度:向量元素的数量。例如,向量 (v = [170, 65, 30]) 是三维向量。

表示方法

数学形式:列向量或行向量 [ v = \begin{bmatrix} 170 \ 65 \ 30 \end{bmatrix},\quad v = [170, 65, 30] ]

编程形式(Python):

代码语言:javascript
代码运行次数:0
复制
import numpy as np
v = np.array([[170], [65], [30]])  # 列向量
1.3 向量的基本运算
  1. 向量加法 [ a = [1, 2],\quad b = [3, 4],\quad a + b = [4, 6] ] Python实现:
代码语言:javascript
代码运行次数:0
复制
a = np.array([1, 2])
b = np.array([3, 4])
print(a + b)
  1. 数乘 [ c \cdot v = [c \cdot v_1, c \cdot v_2] ] 例子: [ 2 \cdot [3, 4] = [6, 8] ] Python实现:
代码语言:javascript
代码运行次数:0
复制
v = np.array([3, 4])
c = 2
print(c * v)
  1. 向量的长度(范数) [ |v| = \sqrt{v_1^2 + v_2^2 + \dots + v_n^2} ] 例子: [ v = [3, 4],\quad |v| = \sqrt{3^2 + 4^2} = 5 ] Python实现:
代码语言:javascript
代码运行次数:0
复制
from numpy.linalg import norm
v = np.array([3, 4])
print(norm(v))

二、矩阵:多维数据的集合
2.1 什么是矩阵?

矩阵是一个二维数组,由行和列组成,用于表示数据集、模型参数和特征变换。

例子:房价数据集

面积(㎡)

房龄(年)

房价(万元)

50

5

100

100

10

200

150

8

300

对应的矩阵表示: [ X = \begin{bmatrix} 50 & 5 \ 100 & 10 \ 150 & 8 \end{bmatrix}, \quad y = \begin{bmatrix} 100 \ 200 \ 300 \end{bmatrix} ]

2.2 矩阵的运算
  1. 矩阵加法 两个相同维度的矩阵逐元素相加。 [ A = \begin{bmatrix} 1 & 2 \ 3 & 4 \end{bmatrix}, \quad B = \begin{bmatrix} 5 & 6 \ 7 & 8 \end{bmatrix}, \quad A + B = \begin{bmatrix} 6 & 8 \ 10 & 12 \end{bmatrix} ] Python实现:
代码语言:javascript
代码运行次数:0
复制
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
print(A + B)
  1. 矩阵乘法 [ C = A \cdot B ] 规则:若 (A) 为 (m \times n) 矩阵,(B) 为 (n \times p) 矩阵,则结果为 (m \times p) 矩阵。 Python实现:
代码语言:javascript
代码运行次数:0
复制
C = A.dot(B)  # 或 np.matmul(A, B)

三、矩阵的高级操作
3.1 矩阵的逆

定义:若存在矩阵 (A^{-1}),使得 (A \cdot A^{-1} = I) (单位矩阵),则 (A^{-1}) 为 (A) 的逆矩阵。

计算公式(对于 (2 \times 2) 矩阵): [ A = \begin{bmatrix} a & b \ c & d \end{bmatrix},\quad A^{-1} = \frac{1}{ad - bc} \begin{bmatrix} d & -b \ -c & a \end{bmatrix} ] Python实现:

代码语言:javascript
代码运行次数:0
复制
A = np.array([[4, 7], [2, 6]])
A_inv = np.linalg.inv(A)
print(A_inv)

四、矩阵在机器学习中的应用
4.1 线性回归中的矩阵运算

线性回归目标:找到参数向量 (\theta),使得 [ y = X\theta ] 通过最小化误差: [ \min_\theta |X\theta - y|^2 ] 正规方程解: [ \theta = (X^T X)^{-1} X^T y ] Python实现:

代码语言:javascript
代码运行次数:0
复制
X = np.array([[1, 50], [1, 100], [1, 150]])
y = np.array([100, 200, 300])
theta = np.linalg.inv(X.T.dot(X)).dot(X.T).dot(y)
print("参数向量 theta:", theta)

结语

线性代数是理解机器学习算法的关键工具。希望本文能帮助你从零基础逐步建立数学认知,为后续学习奠定基础。如果你有任何问题或建议,欢迎评论交流!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-01-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
    • 为什么从线性代数开始?
  • 一、向量:数据的基本单元
    • 1.1 向量的定义
    • 1.2 向量的维度与表示
    • 1.3 向量的基本运算
  • 二、矩阵:多维数据的集合
    • 2.1 什么是矩阵?
    • 2.2 矩阵的运算
  • 三、矩阵的高级操作
    • 3.1 矩阵的逆
  • 四、矩阵在机器学习中的应用
    • 4.1 线性回归中的矩阵运算
  • 结语
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档