90 分钟学习安排:从尺度到 PCA 结果
- 反馈: A 可能仅凭量纲主导 PC1;除非单位本身有明确含义,否则标准化器只能在训练期拟合。
欢迎来到第二章:表征学习
今日议程:
- 引言: 为何经济与金融学需要“降维”?
- 数据预处理: 成功的基石
- Part 1: 线性方法 (PCA, LDA, MDS)
- Part 2: 非线性流形学习 (Isomap, LLE, t-SNE)
- Part 3: 高级主题 (稀疏表征)
- 总结: 如何为你的问题选择合适的工具
本章核心问题:为何要在经济金融学中学习“降维”?
想象一下,我们想预测一家公司的股票回报。我们手头可能有多少变量?
- 公司内部数据: 上百个财务比率 (P/E, ROA, 杠杆率…)
- 市场数据: 历史价格、交易量、波动率…
- 宏观经济数据: GDP、利率、通胀率、失业率…
- 另类数据: 卫星图像、新闻情绪、供应链信息…
我们轻易就会得到一个维度高达数百甚至数千的数据集。
我们正面临“数据丰富,信息贫乏”的困境
数据量的爆炸式增长,不直接等同于洞见的增长。表征学习的目标就是从噪音中提取信号。
这就是所谓的维度灾难(Curse of Dimensionality)。
什么是“维度灾难”?
随着维度 d 的增加,固定的样本量会变得越来越稀疏;
若希望维持相同的覆盖分辨率,所需网格单元数与样本量可能随维度呈指数增长。
距离是否“集中”还取决于分布、度量与标准化,不能只凭维度作结论。
“维度灾难”是建模与分析的共同敌人
当数据维度 d 过高时,会出现一系列严重问题:
| 计算效率 |
网格搜索或穷举的状态数可能呈指数增长;许多具体算法本身仍是多项式复杂度 |
必须区分样本需求、搜索空间与实际算法复杂度。 |
| 数据稀疏性 |
固定数量的样本在高维空间中变得极其稀疏 |
样本不具有代表性,难以找到统计上显著的关系。 |
| 模型过拟合 |
模型学习到了样本中的噪声,而非真实的规律 |
模型在样本内表现完美,但在样本外(预测)时表现极差。 |
| 多重共线性 |
许多特征高度相关 |
难以识别单个变量的真实影响,参数估计不稳定。 |
表征学习(或称降维)正是解决这一问题的关键钥匙。
表征学习的目标:信息损失最小,化繁为简
我们的目标是将一个高维的样本集 \(X \in \mathbb{R}^{d \times N}\) 映射到一个低维空间 \(Z \in \mathbb{R}^{l \times N}\),其中 \(l \ll d\)。
\[
\large{
\underbrace{
\begin{pmatrix}
z_{1,n} \\
\vdots \\
z_{l,n}
\end{pmatrix}
}_{Z_n \in \mathbb{R}^{l \times 1}}
=
\underbrace{
\begin{pmatrix}
w_{1,1} & \cdots & w_{1,d} \\
\vdots & \ddots & \vdots \\
w_{l,1} & \cdots & w_{l,d}
\end{pmatrix}
}_{W^T \in \mathbb{R}^{l \times d}}
\underbrace{
\begin{pmatrix}
x_{1,n} \\
\vdots \\
x_{d,n}
\end{pmatrix}
}_{X_n \in \mathbb{R}^{d \times 1}}
}
\]
核心要求
降维后的新表征 \(Z\) 必须保留原始数据 \(X\) 中最重要的“结构”或“信息”。不同的算法对“结构”的定义不同,从而产生了不同的降维方法。
动工前的准备:数据预处理是模型成功的基石
在我们应用任何复杂的降维算法之前,必须对原始数据进行清洗。这就像盖楼前必须打好地基。
预处理问题1:离群点 (Outliers)
极端值会严重扭曲模型的方差计算(例如PCA),使其偏向离群点的方向。
常见处理方法: Winsorization(缩尾)、对数变换、或直接移除。
预处理问题2 & 3:缺失值与量纲
- 数据丢失 (Missing Data): 大多数算法无法处理缺失值
NaN。
- 常用策略:
- 删除: 如果缺失比例很小,直接删除该行或列。
- 填充: 用均值、中位数、或更复杂的模型(如K-近邻)进行填充。
- 量纲不一致 (Inconsistent Scales): 如果“公司市值”(万亿)和“市盈率”(几十)放在一起分析,市值会完全主导结果。
- 解决方案: 特征缩放。最常用的是标准化 (Standardization),将数据处理为均值为0,方差为1。
- 公式: \(x'_{i} = \large{\frac{x_i - \mu_i}{\sigma_i}}\)
主成分分析(PCA): 寻找数据变化最大的方向
PCA是最经典、最常用的线性降维方法。
- 核心思想: 旋转坐标系,使得新的坐标轴(主成分)能最大化地解释数据的方差。
- 目标: 保留最大的样本方差;这不等于自动保留与预测、因果识别或经济解释最相关的信息。
PCA 几何:PC1 沿最大方差方向
PCA的目标函数
PCA的目标是找到一个投影方向(一个单位向量 \(w\)),使得原始数据 \(X\) 在该方向上的投影的方差最大。
- 单方向投影: 在 \(X\in\mathbb{R}^{d\times N}\) 的“特征×样本”约定下,\(\mathbf z=X^T\mathbf w\in\mathbb{R}^{N}\)。
- 投影方差: \(\operatorname{Var}(\mathbf z)=\mathbf w^T S\mathbf w\),其中 \(S=XX^T/N\in\mathbb{R}^{d\times d}\) 是中心化数据的协方差矩阵。
优化问题可以写成:
\[
\large{\max_{w} \quad w^T S w}
\]
\[
\large{\text{s.t.} \quad w^T w = 1}
\]
PCA 推导:先写拉格朗日函数
我们使用拉格朗日乘子法来求解这个带约束的优化问题。
第 1 步
在单位向量约束下,把最大化投影方差写为拉格朗日函数:
\[
\large{L(w, \lambda) = w^T S w - \lambda(w^T w - 1)}
\]
PCA 推导:一阶条件连接约束与方向
第 2 步:对 \(w\) 求导并令其为 0:
\[
\large{\frac{\partial L}{\partial w} = 2Sw - 2\lambda w = 0}
\]
PCA 推导:得到特征值问题
\[
\large{Sw = \lambda w}
\]
PCA 的五步工作流
将抽象的数学理论转化为一个清晰的操作流程。
PCA 手算:先预测主方向
给定三个二维观测 \(\mathbf{x}_1=(2,1)^\top\)、\(\mathbf{x}_2=(0,0)^\top\)、\(\mathbf{x}_3=(-2,-1)^\top\)。
- 计算均值 \(\bar{\mathbf{x}}\) 与样本协方差 \(\mathbf{S}\)。
- 比较单位方向 \(\mathbf{v}_1=(2,1)^\top/\sqrt5\) 与 \(\mathbf{v}_2=(-1,2)^\top/\sqrt5\)。
- 计算投影 \(z_i=\mathbf{v}^\top(\mathbf{x}_i-\bar{\mathbf{x}})\) 的样本方差。
先预测
哪条方向保留更多方差?独立算完再进入答案页。
PCA 手算:逐步答案
均值为 \(\bar{\mathbf{x}}=(0,0)^\top\)。以 \(n-1=2\) 为分母:
\[ \large{\mathbf{S}=\frac{1}{2}\sum_{i=1}^{3}\mathbf{x}_i\mathbf{x}_i^\top=\begin{bmatrix}4&2\\2&1\end{bmatrix}} \]
- 沿 \(\mathbf{v}_1\):\(z=(\sqrt5,0,-\sqrt5)\),\(s_z^2=(5+0+5)/2=5\)。
- 沿 \(\mathbf{v}_2\):\(z=(0,0,0)\),\(s_z^2=0\)。
- 确认:\(\mathbf{S}\mathbf{v}_1=5\mathbf{v}_1\),\(\mathbf{S}\mathbf{v}_2=0\mathbf{v}_2\)。
所以 PC1 为 \(\mathbf{v}_1\),解释方差比 \(5/(5+0)=100\%\);它也高于只投影到横轴所得的方差 \(4\)。
线性判别分析(LDA): 为分类而生的降维
LDA的目标函数
类内散布矩阵 (Within-class Scatter): \(S_w = \sum_{c=1}^{C} \sum_{x_i \in c} (x_i - \mu_c)(x_i - \mu_c)^T\)
类间散布矩阵 (Between-class Scatter): \(S_b = \sum_{c=1}^{C} N_c (\mu_c - \mu)(\mu_c - \mu)^T\)
对单个投影方向 \(w\),Fisher 准则是广义 Rayleigh 商;
对多维投影,通常取广义特征问题中最大的若干特征方向,并在 \(W^TS_wW=I\) 的约束下最大化投影后的类间散布:
\[
\begin{aligned}
J(w)&=\frac{w^T S_b w}{w^T S_w w},\\
\max_W\;&\operatorname{tr}(W^T S_b W)
\quad\text{s.t.}\quad W^T S_w W=I.
\end{aligned}
\]
当 \(S_w\) 奇异时,应使用正则化或广义特征值/SVD 求解,而不是直接求逆。
PCA:最大方差仍可能保留类别重叠
PCA:只最大化整体方差;本例的水平 PC1 仍让两类大量重叠。
LDA:监督信息把投影转向类别分离
LDA 提高类间相对类内散布,因而更利于区分类别,但不保证完美分开。
LDA的数学求解:一个广义特征值问题
最大化 \(J(W)\) 的问题,最终可以转化为求解一个广义特征值问题:
\[
\large{S_b w = \lambda S_w w}
\]
两边同乘 \(S_w^{-1}\),可以得到一个更熟悉的形式:
\[
\large{S_w^{-1} S_b w = \lambda w}
\]
结论
LDA的最优投影方向 \(w\),是矩阵 \(S_w^{-1} S_b\) 的特征向量。
多维缩放(MDS): 从距离重构“地图”
学习提示:完成 PCA/LDA 比较后,先进入长三角股票案例;MDS、非线性方法与稀疏表示可在课后选学。
MDS与PCA和LDA的出发点完全不同。它不直接处理特征矩阵 \(X\),而是从一个已知的距离(或不相似度)矩阵 \(D\) 出发。
- 核心思想: 在低维空间中寻找一组点 \(Z\),使得这些点之间的欧氏距离与原始的距离矩阵 \(D\) 尽可能一致。
- 应用场景:
MDS的直观类比:绘制城市地图
想象一下,你只知道国内几个主要城市之间的直线飞行距离,但没有任何经纬度信息。
MDS的目标就是根据这个距离矩阵,反推出每个城市在二维地图上的最佳坐标。
线性方法的局限:当数据结构是弯曲的
PCA, LDA等线性方法假设数据分布在一个平坦的超平面上。但如果数据的内在结构是弯曲的呢?
线性方法PCA会错误地将欧氏距离很远的点(如A和B)投影到一起,无法“展开”这个卷。
流形学习的核心思想:数据镶嵌在低维流形上
- 流形(Manifold)假设:
- 目标: “展开”这个流形,找到能反映数据真实邻近关系的低维坐标。
- 与线性方法的区别: 流形学习关注局部结构,认为只有邻近点之间的欧氏距离是可信的。
Isomap: 沿着“表面”测量距离
Isomap是对MDS的一个巧妙改进,它用测地线距离 (Geodesic Distance) 代替了欧氏距离。
步骤:
- 构建邻域图: 对每个点,只连接它与最近的K个邻居。
- 计算最短路径: 使用图算法(如Dijkstra)计算图中任意两点间的最短路径长度,作为测地线距离的近似。
- 应用MDS: 将计算出的最短路径距离矩阵作为输入,应用经典的MDS算法进行降维。
局部线性嵌入(LLE): 保持局部线性关系
LLE的假设是,每个数据点都可以由其近邻点线性重构,并且这个局部几何关系在低维空间中也应该保持不变。
LLE的核心: 保持重构权重, 而非距离
t-SNE: 数据可视化的瑞士军刀
t-SNE(t-distributed Stochastic Neighbor Embedding)是一种常用的高维数据探索性可视化工具,可将局部邻域关系嵌入到 2D 或 3D;它不提供“最强”或聚类正确性的证据。
- 核心思想(概率匹配):
- 在高维空间中,将点与点之间的欧氏距离转化为一个条件概率,表示点i会选择点j作为其邻居的可能性(使用高斯分布)。
- 在低维空间中,也定义一个类似的条件概率(使用更“长尾”的t分布)。
- 通过优化,调整低维空间中点的位置,使得两个空间的概率分布尽可能相似(最小化KL散度)。
- 优势:常能帮助观察局部邻域与可能的群组结构;是否真正分簇仍须在原空间用预先定义的指标验证。
t-SNE 关键参数与注意事项
- Perplexity (困惑度):
- 这是最重要的参数,大致可以理解为每个点考虑的“有效近邻数”。
- 一般取值在 5 到 50 之间。较低的值关注局部结构,较高的值关注全局结构。
- 注意事项 (非常重要!):
- 不要过分解读簇间距离: t-SNE图上两个簇离得远,不代表它们在原始空间中就“更”远。
- 不要过分解读簇的大小: 某个簇在图上面积大,不代表它包含更多的数据点或方差更大。
- t-SNE是用于可视化的探索性工具,不是用于严格的聚类分析。
稀疏表征:用最少的“积木”来搭建信号
前面的方法旨在“压缩”数据,而稀疏表征的出发点不同。
图解:字典乘以稀疏系数形成信号
稀疏表征:经济学直觉
经济学直觉
市场的复杂动态可能只是由少数几个“潜在经济状态”或“冲击”组合驱动的。稀疏表征旨在找到这些最核心的驱动因子。
压缩感知:用更少的采样恢复完整信号
稀疏性假设带来一个惊人的推论:压缩感知。
- 恢复条件:
- 无噪声且求解器条件满足时可以精确恢复;有噪声时只能保证误差受控。
\[
\large{z = \Phi x = \Phi \Psi s = \Theta s}
\]
- \(z\): 少量观测值 (\(l \times 1\))
- \(\Phi\): 观测矩阵 (\(l \times d\), \(l \ll d\))
- \(\Theta\): 感知矩阵
压缩感知:恢复条件与失败边界
- 恢复条件:稀疏度、测量矩阵、测量数与求解器必须共同满足定理条件;“稀疏”本身不够。
- 失败情形:测量与字典高度相干、\(l\) 太小、噪声过大或信号仅近似稀疏时,恢复可能偏误或不唯一。
- 目标: 已知 \(z\), \(\Theta\),求解稀疏向量 \(s\)。这是现代信号处理和MRI等领域的基石。
重构算法:匹配追踪(Matching Pursuit)
如何从 \(z\) 和 \(\Theta\) 中找到稀疏的 \(s\) 是一个NP-hard问题。匹配追踪是一种贪心算法,用迭代的方式来逼近解。
- 初始化: 残差 \(r_0 = z\),稀疏解 \(s=0\)。
- 寻找最相关原子: 在字典 \(\Theta\) 中,找到与当前残差 \(r\) 最相关的原子(内积最大)。
- 更新解: 将该原子的贡献加入到解 \(s\) 中。
- 更新残差: 从当前残差 \(r\) 中减去该原子的贡献。
- 迭代: 重复步骤2-4,直到残差足够小或达到迭代次数。
经济学应用:筛查稀疏跳跃与离群点
单位字典下的一阶差分稀疏化只能筛查异常跳跃,不能单凭尖峰确认结构性断点。
信号 (x): 经济时间序列的一阶差分。
字典 (Ψ): 一个单位矩阵。
稀疏系数 (s): 单位字典下,s 就是差分序列;大的非零项标记候选跳跃。
普通创新、离群值、季节性或波动率变化也会产生尖峰。
若要声称“制度变化”,必须另设变点模型,说明发生变化的参数、噪声与依赖假设,并在独立窗口控制误报。
选学内容结束:下面进入最终思考。
核心内容与学习目标回顾
- 核心必会(90 分钟): 预处理 → PCA → LDA → 评价与解释。课后拓展:MDS、Isomap、LLE、t-SNE、稀疏表征与压缩感知。
回顾核心内容开场目标:①诊断量纲与缺失问题;②从特征值解释 PCA 方差;③区分无监督 PCA 与监督 LDA;④用测试期评价表征。
- 回顾题: 若变量 A 的标准差是变量 B 的 100 倍,直接对协方差矩阵做 PCA 会怎样?
- 答案: A 可能凭量纲主导第一主成分;除非单位本身有明确经济含义,否则应仅用训练期均值和标准差进行标准化。
形成性检查 1:PCA 数值确认
二维标准化数据的协方差矩阵特征值为 1.6 与 0.4。保留一个主成分时解释方差比是多少?
答案
\(1.6/(1.6+0.4)=0.8\),即 80%。特征向量给出投影方向,特征值给出该方向上的方差。
主要案例:长三角股票 PCA
- 本例数据:
来源:data/stock/stock_price_pre_adjusted.h5,key=data,4 只长三角代表性 A 股。
口径:2018–2024 年的前复权 close;按交易日对齐并删除缺失日。
边界:仅在 2018–2022 年训练期拟合标准化器与 PCA。
- 邻近方法来源: Jolliffe & Cadima (2016), PCA 综述;以下载荷和解释方差均只由训练期估计。
Code
from pathlib import Path # 使用统一路径对象定位数据文件
import pandas as pd # 导入表格工具以读取并对齐本地行情
from sklearn.preprocessing import StandardScaler # 在训练期统一各股票收益率尺度
from sklearn.decomposition import PCA # 用主成分提取共同波动方向
# 公网下载:https://assets.qiufei.site/data/stock/stock_price_pre_adjusted.h5
# 下载后把下一行改为本机文件位置;按课程结构存放时可用 Path("data/stock/stock_price_pre_adjusted.h5")。
# Windows:Path(r"C:\qiufei\data\stock\stock_price_pre_adjusted.h5")
# macOS:Path("/Users/你的用户名/data/stock/stock_price_pre_adjusted.h5")
# Linux:Path("/home/你的用户名/data/stock/stock_price_pre_adjusted.h5")
price_path = Path("/home/ubuntu/r2_data_mount/data/stock/stock_price_pre_adjusted.h5")
company_ids = ['600276.XSHG', '600660.XSHG', '002648.XSHE', '002920.XSHE'] # 选择长三角代表性上市公司代码
price_parts = [pd.read_hdf(price_path, key='data', where=[f'order_book_id=="{company_id}"', 'date>=Timestamp("2018-01-01")', 'date<=Timestamp("2024-12-31")'], columns=['close']) for company_id in company_ids] # 按公司与时期选择性载入收盘价
price_panel = pd.concat(price_parts).reset_index().pivot(index='date', columns='order_book_id', values='close') # 构造日期乘公司的价格面板
return_panel = price_panel.pct_change(fill_method=None).dropna() # 计算共同交易日收益率并删除缺失行
training_returns = return_panel.loc[:'2022-12-31'] # 固定 2018 至 2022 年为训练期
return_scaler = StandardScaler().fit(training_returns) # 仅用训练期估计均值与标准差
scaled_training_returns = return_scaler.transform(training_returns) # 将训练收益率转换为可比尺度
return_pca = PCA(n_components=2).fit(scaled_training_returns) # 提取前两个共同波动主成分
pca_loadings = pd.DataFrame(return_pca.components_.T, index=training_returns.columns, columns=['PC1', 'PC2']) # 将载荷映射回真实股票代码
pd.concat([pd.Series(return_pca.explained_variance_ratio_, index=['PC1', 'PC2'], name='variance_ratio'), pca_loadings.stack().rename('loading')], axis=0) # 输出方差证据与载荷供解释
PC1 0.471032
PC2 0.206372
(002648.XSHE, PC1) 0.483942
(002648.XSHE, PC2) -0.322402
(002920.XSHE, PC1) 0.515698
(002920.XSHE, PC2) -0.390399
(600276.XSHG, PC1) 0.426722
(600276.XSHG, PC2) 0.862146
(600660.XSHG, PC1) 0.563705
(600660.XSHG, PC2) -0.018706
dtype: float64
形成性检查 2:图能否支持结论?
t-SNE 图上两个簇相距很远,能否断言原高维空间中两类也同样远?
答案
不能。t-SNE 优先保持局部邻域,簇间全局距离、面积和方向通常不可作定量解释;应比较不同随机种子/困惑度并回到原空间验证。
分步练习:标准化的作用
- 任务: 用同一训练期分别对原始收益率与标准化收益率做 PCA,比较 PC1 方差比和载荷排序。
Code
raw_pca = PCA(n_components=2).fit(training_returns) # 在同一训练日期上拟合未标准化 PCA
raw_rank = training_returns.columns[abs(raw_pca.components_[0]).argsort()[::-1]].tolist() # 按 PC1 绝对载荷排列原始收益变量
scaled_rank = training_returns.columns[abs(return_pca.components_[0]).argsort()[::-1]].tolist() # 按 PC1 绝对载荷排列标准化变量
pd.DataFrame({'输入版本': ['原始收益率', '标准化收益率'], 'pc1_variance_ratio': [raw_pca.explained_variance_ratio_[0], return_pca.explained_variance_ratio_[0]], 'absolute_loading_rank': [raw_rank, scaled_rank]}) # 并排比较两次 PCA 的结果
综合练习完整答案:PCA 与 LDA 证据
Code
from sklearn.metrics import balanced_accuracy_score, confusion_matrix # 评价测试期的分类表现
ratio_names = list(ratio_definitions) # 固定五维模型输入顺序
statement_train = statement_frame[statement_frame['target_available_at'] <= pd.Timestamp('2022-12-31')] # 训练截止日之前必须同时获得特征与下一期标签
statement_test = statement_frame[(statement_frame['info_date'] >= pd.Timestamp('2023-01-01')) & (statement_frame['target_available_at'] <= pd.Timestamp('2024-12-31'))] # 按信息可得时点确定 2023—2024 评价样本
assert statement_train['target_available_at'].max() < statement_test['info_date'].min() # 确认训练标签实现早于测试特征首次可得时点
ratio_scaler = StandardScaler().fit(statement_train[ratio_names]) # 只由训练期估计尺度
scaled_statement_train = ratio_scaler.transform(statement_train[ratio_names]) # 变换训练期比率
scaled_statement_test = ratio_scaler.transform(statement_test[ratio_names]) # 原样变换测试期比率
statement_pca = PCA(n_components=2).fit(scaled_statement_train) # 只在训练期提取两个主成分
statement_test_scores = statement_pca.transform(scaled_statement_test) # 为测试期生成二维坐标
statement_lda = LinearDiscriminantAnalysis().fit(scaled_statement_train, statement_train['next_profit_positive']) # 只在训练期学习监督方向
statement_lda_prediction = statement_lda.predict(scaled_statement_test) # 对测试期预测利润符号
pd.Series({'train_n': len(statement_train), 'test_n': len(statement_test), 'pc1_share': statement_pca.explained_variance_ratio_[0], 'pc2_share': statement_pca.explained_variance_ratio_[1], 'lda_balanced_accuracy': balanced_accuracy_score(statement_test['next_profit_positive'], statement_lda_prediction), 'confusion_matrix': confusion_matrix(statement_test['next_profit_positive'], statement_lda_prediction).tolist(), 'first_test_score': statement_test_scores[0].round(3).tolist()}) # 输出真实关键结果与二维坐标样例
真实输出为训练 174、测试 18;PC1/PC2 分别解释 0.4874/0.3368,LDA 平衡准确率 0.5000,混淆矩阵为 \([[0,5],[0,13]]\)。
模型把所有测试季度都判为正利润,完全漏掉亏损季度,不能宣称稳健预测。
形成性检查 3:压缩感知的条件
“信号稀疏,所以 3 次任意测量一定能恢复 100 维信号。”对还是错?
答案:错。 还需要测量数随 \(k\log(d/k)\) 增长、感知矩阵满足 RIP/不相干性,并区分无噪声精确恢复与有噪声稳定恢复。
来源与延伸阅读
- Jolliffe & Cadima (2016), “Principal component analysis: a review and recent developments”。
- van der Maaten & Hinton (2008), “Visualizing Data using t-SNE”。
- Candès & Tao (2005/2006), compressed sensing 与 RIP 原始论文。
- 数据:本地
data/stock/financial_statement.h5,HDF key=financial_data,字段与累计口径如迁移任务所列;PCA 前面的案例 另使用本地 A 股前复权行情数据。
核心内容总结:PCA 与 LDA 的选择
课后选学
完成核心内容后,可以继续学习MDS、流形学习与稀疏表示,随后进入最终思考。
| PCA |
线性, 无监督 |
最大化方差 |
简单、快速、可解释性强 |
无法处理非线性结构 |
| LDA |
线性, 有监督 |
最大化类别可分性 |
对分类问题效果好 |
需要类别标签,对类别分布有假设 |
拓展内容 总结:距离、流形与稀疏方法
| MDS |
成对距离 |
依赖距离度量,计算量大 |
| Isomap / LLE |
测地线 / 局部重构 |
对邻域和噪声敏感 |
| t-SNE |
局部邻域概率 |
仅作探索图;全局距离不可定量解释 |
| 稀疏 / 压缩感知 |
少数原子 |
需要测量几何、样本数与求解条件 |
最终思考:降维非目的,而是理解数据的手段
在本章中,我们学习了从线性到非线性的多种表征学习(降维)方法。
- 它们是探索性数据分析的强大工具,能帮助我们从看似混乱的高维数据中发现隐藏的结构,如因子、簇和低维流形。
- 它们也是构建预测模型的关键预处理步骤,能有效提升模型的稳定性和泛化能力。
关键在于,始终要结合你的领域知识(经济学、金融学)来解释降维后的结果,赋予这些抽象的维度和结构现实的意义。