You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何生成PCA用2D随机数据集?矩阵乘法线性关系原理解析

关于矩阵相乘生成线性关系数据集的解释

先还原你提供的代码片段:

import numpy as np
import matplotlib.pyplot as plt

rng = np.random.RandomState(1)
X = np.dot(rng.rand(2, 2), rng.randn(2, 200)).T

plt.scatter(X[:, 0], X[:, 1])
plt.axis('equal')
plt.show()

下面拆解这个过程,解释为什么会得到线性相关的数据集:

  • 两个核心矩阵的作用

    • rng.rand(2,2):这是一个2×2的随机矩阵,本质是一个线性变换算子,可以理解为对二维点做「旋转+拉伸」的组合操作。
    • rng.randn(2,200):这是2行200列的标准正态随机矩阵,每一列是一个二维随机点,这些原始点在平面上完全分散,两个维度没有线性关联(因为randn生成的两个维度相互独立)。
  • 矩阵相乘的本质是线性变换
    两个矩阵相乘时,相当于用2×2的变换矩阵,对randn生成的200个二维点逐个做线性变换:
    假设变换矩阵是$\begin{bmatrix} a & b \ c & d \end{bmatrix}$,原始点是$\begin{bmatrix} x_i \ y_i \end{bmatrix}$,变换后的点就是$\begin{bmatrix} a x_i + b y_i \ c x_i + d y_i \end{bmatrix}$。

  • 为什么会呈现线性关系
    原始随机点的两个维度独立无关联,但经过线性变换后,新的两个维度($a x_i + b y_i$和$c x_i + d y_i$)之间天然存在由变换矩阵元素决定的线性依赖关系。反映在散点图上,所有点会沿着变换矩阵特征向量指向的方向分布,呈现出明显的线性趋势——相当于原本无规律的点被“规整”到了一个倾斜的带状区域里,看起来就有了线性关联。

内容的提问来源于stack exchange,提问作者KodeWarrior

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 18:51:21