题库 软件开发 题目列表 给定一批训练样本与若干测试样本,请你手写实现主成...
问答题
给定一批训练样本与若干测试样本,请你手写实现主成分分析 (PCA) 并仅保留第一主成分来压缩-重建数据,最后输出每个测试样本在重建后的均方误差 (MSE)。

1. 输入读取

    •    train - 二维列表,每行是一个 m 维数值特征向量

    •    test  - 二维列表,维度同上


2. 去均值 (mean-center)

X_\text{c} = X - \boldsymbol\mu,\quad<br /><br />\boldsymbol\mu=\text{mean}(X_\text{train})


3. 协方差矩阵 (总体方差,ddof=0)

\Sigma = \tfrac1n X_\text{c}^{\!\top}\,X_\text{c}


4. 求第一主成分

    •    用 numpy.linalg.eigh 得到全部特征对(\lambda_i,\mathbf{v}_i)

    •    按特征值从大到小选取第一主成分 \mathbf{v}_{\max}

    •    方向标准化规则 —— 若 \mathbf{v}_{\max}首个非零分量为负,则整体乘以 -1;这样方向唯一


5. 投影-重建

z = (x-\boldsymbol\mu)^\top \mathbf{v}{\max},\quad<br /><br />\hat x = \boldsymbol\mu + z\,\mathbf{v}{\max}


6. 输出

    •    对每个测试样本计算

\text{MSE}(x) = \tfrac1m \sum_{j=1}^m (x_j-\hat x_j)^2

    •    结果保留两位小数,使用字符串形式

    •    所有测试样本的误差按输入顺序组成 JSON 数组一行输出

题目信息
校招真题
-
正确率
0
评论
38
点击