47、数据与统计中的降维技术详解

数据与统计中的降维技术详解

1. 特征值与特征向量计算

在矩阵运算中,我们常常需要计算矩阵的特征值与特征向量。例如,对于矩阵 (C),我们通过求解方程 (\det(C - b I) = 0) 来得到特征值 (b)。以矩阵
[
\begin{bmatrix}
1 & 3 \
3 & 1
\end{bmatrix}
]
为例,计算过程如下:
(\det(C - b
I) = (1 - b)*(1 - b) - 9 = b^2 - 2b - 8)
使用二次公式或因式分解,可得出方程的解为 (b = -2) 或 (b = 4),这两个值就是矩阵 (C) 的特征值。

接下来求特征向量,当 (b = -2) 时,将其代入 ((C - b I)x’ = 0),得到
[
\begin{bmatrix}
3 & 3 \
3 & 3
\end{bmatrix}
\begin{bmatrix}
x_1 \
x_2
\end{bmatrix}
=
\begin{bmatrix}
0 \
0
\end{bmatrix}
]
化简后得到 (3x_1 + 3x_2 = 0),其通解为 (x_1 = -x_2)。我们可以令 (x_2 = 1),则 (x_1 = -1),所以特征向量为 ([-1, 1])。同理,当特征值为 (4) 时,特征向量为 ([1, 1])。并且,这两个特征向量是正交的,因为它们的内积 ([-1, 1] * [1, 1] = (-1)
1 + (1)*1 = 0)。

2. 高斯 - 约旦消元法

高斯 - 约旦消元法是一种求解线性方程组的有效方法,它通过一系列算术运算将给定矩阵转化为单位矩阵。下面以方程组
(\begin{cases}2x + 2y = 6 \ 4x - y = 2\end{cases})
为例,介绍具体步骤:
1. 构建增广矩阵 :创建一个 (2×2) 矩阵,第一列是 (x) 的系数,第二列是 (y) 的系数,接着是 (2×2) 单位矩阵,最后一列是等号右边的数字。
[
\begin{bmatrix}
2 & 2 \
4 & -1
\end{bmatrix}
\begin{bmatrix}
1 & 0 \
0 & 1
\end{bmatrix}
\begin{bmatrix}
6 \
2
\end{bmatrix}
]
2. 行变换
- 给第一行乘以 (-2) 加到第二行,得到
[
\begin{bmatrix}
2 & 2 \
0 & -5
\end{bmatrix}
\begin{bmatrix}
1 & 0 \
-2 & 1
\end{bmatrix}
\begin{bmatrix}
6 \
-10
\end{bmatrix}
]
- 第二行除以 (-5),得到
[
\begin{bmatrix}
2 & 2 \
0 & 1
\end{bmatrix}
\begin{bmatrix}
1 & 0 \
\frac{2}{5} & -\frac{1}{5}
\end{bmatrix}
\begin{bmatrix}
6 \
2
\end{bmatrix}
]
- 给第二行乘以 (2) 加到第一行,得到
[
\begin{bmatrix}
2 & 0 \
0 & 1
\end{bmatrix}
\begin{bmatrix}
\frac{1}{5} & \frac{2}{5} \
\frac{2}{5} & -\frac{1}{5}
\end{bmatrix}
\begin{bmatrix}
2 \
2
\end{bmatrix}
]
- 第一行除以 (2),得到
[
\begin{bmatrix}
1 & 0 \
0 & 1
\end{bmatrix}
\begin{bmatrix}
\frac{1}{10} & \frac{1}{5} \
\frac{2}{5} & -\frac{1}{5}
\end{bmatrix}
\begin{bmatrix}
1 \
2
\end{bmatrix}
]
- 第二行乘以 (-1),得到
[
\begin{bmatrix}
1 & 0 \
0 & 1
\end{bmatrix}
\begin{bmatrix}
\frac{1}{10} & \frac{1}{5} \
-\frac{2}{5} & \frac{1}{5}
\end{bmatrix}
\begin{bmatrix}
1 \
2
\end{bmatrix}
]

此时,左边矩阵为单位矩阵,右边矩阵是原矩阵的逆矩阵,最右边一列是方程组的解,即 (x = 1),(y = 2)。

3. 主成分分析(PCA)

PCA 是一种线性降维技术,用于确定数据集中最重要的特征。它具有以下特点:
- 基于方差的算法。
- 创建的新变量是原始变量的线性组合。
- 新变量两两正交。
- 可作为聚类前的预处理步骤。
- 通常用于数据降维。
- 对于强相关变量很有用,如果相关矩阵中大部分系数小于 (0.3),则 PCA 效果不佳。

PCA 的优势在于减少模型训练的计算时间、简化模型,并且在选择两个或三个特征时能够直观展示数据。其核心步骤如下:
1. 计算数据集的相关矩阵 (C)(从协方差矩阵得到)
2. 求解 (C) 的特征值
3. 求解 (C) 的特征向量
4. 构建包含特征向量的新矩阵

例如,使用 Python 的 Sklearn 库进行简单的 PCA 操作:

import numpy as np
from sklearn.decomposition import PCA

data = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
pca = PCA(n_components=2)
pca.fit(data)

不过,PCA 也有局限性,它不太适用于具有非线性关系的数据和特殊分类问题。相关的算法 Kernel PCA 引入了非线性变换,可继续使用 PCA 的思路。

4. 降维算法概述

降维是将高维向量空间转换为低维向量空间的过程,常见的降维算法有:
|算法名称|算法类型|特点|
| ---- | ---- | ---- |
|主成分分析(PCA)|线性降维|基于方差,创建正交新变量|
|奇异值分解(SVD)|矩阵分解|适用于任意矩阵|
|局部线性嵌入(LLE)|非线性降维|保留局部关系|
|UMAP|非线性降维|假设数据均匀分布|
|t - SNE|非线性降维|用于可视化|
|PHATE|可视化与降维|对生物数据有应用|

这些算法可分为不同类别,如矩阵分解(PCA 和 SVD)、基于模型的降维(LDA)和流形学习(SOM 和 t - SNE)。

5. 维度灾难与流形概念

随着数据集维度的增加,数据点之间的距离会变大,从而增加过拟合的可能性,这就是维度灾难。在实际数据中,不同特征具有不同的分布,如高斯分布、双峰分布等。

流形是拓扑学中的概念,对于理解流形学习这种降维技术很有帮助。简单来说,流形是一个局部类似于欧几里得空间的拓扑空间。例如,在地球上行走或开车感觉是二维运动,但实际上是在三维空间中移动,因为高度的影响很小,所以感觉像二维运动。常见的流形例子有:
- 一维流形:直线、圆。
- 二维流形:平面、球体、圆环面。

下面是一个简单的 mermaid 流程图,展示 PCA 的主要步骤:

graph LR
    A[计算相关矩阵 C] --> B[求解特征值]
    B --> C[求解特征向量]
    C --> D[构建新矩阵]
6. 奇异值分解(SVD)

奇异值分解是线性代数中的一种技术,它可以将任意 (m×n) 矩阵 (A) 分解为三个矩阵 (U)、(S) 和 (V) 的乘积,即 (A = U S V^t)。这里,矩阵 (U) 是 (m×m) 的正交矩阵((U U^t = I)),其列向量为左奇异向量;矩阵 (V) 是 (n×n) 的正交矩阵((V V^t = I)),其列向量为右奇异向量;矩阵 (S) 是 (m×n) 的对角矩阵,对角元素为奇异值。

通过计算 (A^t A) 和 (A A^t),可以确定矩阵 (U) 和 (V) 的性质:
- (A^t A = (V S U^t) (U S V^t) = V S^2 V^t),所以 (V) 是 (A^t A) 的特征向量矩阵,(S^2) 是 (A^t A) 的特征值矩阵。
- (A A^t = (U S V^t) (V S U^t) = U S^2 U^t),所以 (U) 是 (A A^t) 的特征向量矩阵,(S^2) 是 (A^t A) 的特征值矩阵。由于 (S^2) 是特征值的对角矩阵,所以 (S) 由特征值的平方根组成。

SVD 存在一些可扩展性和性能相关的问题:
- 当 (n < m) 时,复杂度为 (O(m*n^2))。
- 对于数百万个单词/文档的情况,可扩展性较差。
- 难以纳入新的单词/文档。

SVD 在推荐系统中可用于将评分矩阵分解为三个矩阵的乘积,在基因表达分析中也有应用。此外,还有一些 SVD 的变体,如 Truncated SVD、Thin SVD、Compact SVD、SVDpp、HybridSVD、PureSVD 和 timeSVDpp 等。

7. 局部线性嵌入(LLE)

局部线性嵌入是一种非线性降维技术,主要基于以下两个任务:
1. 计算数据点到其最近邻的线性距离
2. 尝试确定数据点的低维表示,以保留局部关系

LLE 的直觉与 t - SNE 相似。使用 Sklearn 进行局部线性嵌入的示例可参考: https://scikit - learn.org/stable/modules/generated/sklearn.manifold.LocallyLinearEmbedding.html

8. UMAP

UMAP 是 Uniform Manifold Approximation and Projection 的缩写,是一种非线性降维技术。它与 t - SNE 算法类似,但假设数据在局部连通的黎曼流形上均匀分布,并且黎曼度量局部恒定或近似局部恒定。关于黎曼度量的详细讨论可参考: https://arxiv.org/pdf/1212.2474.pdf

9. t - SNE

t - SNE(T - distributed stochastic neighbor embedding)是一种用于可视化的非线性降维技术。其目标是:
1. 将相似的对象映射到附近的点
2. 将不相似的对象映射到更远的点

t - SNE 的实现涉及两个概率分布,一个用于高维对象对,另一个用于低维对象对。通过最小化这两个概率分布的 KL 散度来实现降维。与 PCA 相比,PCA 是 20 世纪 30 年代的技术,进行线性降维,最大化方差并保留大的成对距离;而 t - SNE 是 2008 年开发的,通过计算高维和低维空间中数据点之间的相似度来保留小的成对距离,并使用成本函数优化相似度度量。

10. PHATE

PHATE 是 potential of heat - diffusion affinity - based transition embedding 的缩写,是一种可视化和降维技术,与 t - SNE 相似,对局部和全局关系都很敏感,试图保留近距离和远距离对象之间的关系。该技术在生物数据中有所应用,更多信息可参考: https://www.biorxiv.org/content/10.1101/120378v1.full.pdf

11. 线性与非线性降维技术对比

线性降维与非线性降维算法的区别需要从数学定义开始理解。假设 (T) 是从向量空间 (U) 到向量空间 (V) 的映射((T:U->V)),如果对于 (U) 中的任意向量 (u_1) 和 (u_2) 以及任意实数 (a),满足以下两个条件,则 (T) 是线性变换:
1. (T(u_1 + u_2) = T(u_1) + T(u_2))
2. (T(a u) = a T(u))

例如,平面上向量的旋转或缩放是线性变换,而向量的平移是仿射变换,不是线性变换。

如果 (U) 和 (V) 的维度相同且为 (n),则线性变换 (T) 可以用一个 (n×n) 的可逆矩阵表示;如果 (V) 的维度低于 (U),则 (T) 涉及投影;如果 (V) 的维度高于 (U),则 (T) 涉及嵌入。

以下是一些线性变换的矩阵表示示例:
- 若 (T) 将二维欧几里得空间中向量的分量加倍,则 (T) 可表示为矩阵 (\begin{bmatrix}2 & 0 \ 0 & 2\end{bmatrix})。
- 若 (T) 将二维空间中向量的第一个分量减半,第二个分量加倍,则 (T) 可表示为矩阵 (\begin{bmatrix}0.5 & 0 \ 0 & 3\end{bmatrix})。
- 若 (T) 将形式为 ((x,y,z)) 的向量映射为 ((x,y,0)) 的向量,则 (T) 是投影,可表示为矩阵 (\begin{bmatrix}1 & 0 & 0 \ 0 & 1 & 0 \ 0 & 0 & 0\end{bmatrix})。

下面是一个 mermaid 流程图,展示不同降维算法的分类:

graph LR
    A[降维算法] --> B[线性降维]
    A --> C[非线性降维]
    B --> D[PCA]
    B --> E[SVD]
    C --> F[LLE]
    C --> G[UMAP]
    C --> H[t - SNE]
    C --> I[PHATE]

综上所述,不同的降维算法有各自的特点和适用场景。在实际应用中,需要根据数据的特点和任务的需求选择合适的降维算法。例如,对于线性关系的数据,PCA 可能是一个不错的选择;对于需要可视化的非线性数据,t - SNE 可能更合适。同时,还可以结合多种降维算法进行特征提取和数据预处理,以提高模型的性能。

【评估多目标跟踪方法】9个高度敏捷目标在编队中的轨迹和测量研究(Matlab代码实现)内容概要:本文围绕“评估多目标跟踪方法”,重点研究9个高度敏捷目标在编队飞行中的轨迹生成测量过程,并提供完整的Matlab代码实现。文中详细模拟了目标的动态行为、运动约束及编队结构,通过仿真获取目标的状态信息观测数据,用于验证和比较不同多目标跟踪算法的性能。研究内容涵盖轨迹建模、噪声处理、传感器测量模拟以及数据可视化等关键技术环节,旨在为雷达、无人机编队、自动驾驶等领域的多目标跟踪系统提供可复现的测试基准。; 适合人群:具备一定Matlab编程基础,从事控制工程、自动化、航空航天、智能交通或人工智能等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①用于多目标跟踪算法(如卡尔曼滤波、粒子滤波、GM-CPHD等)的性能评估对比实验;②作为无人机编队、空中交通监控等应用场景下的轨迹仿真传感器数据分析的教学研究平台;③支持对高度机动目标在复杂编队下的可观测性跟踪精度进行深入分析。; 阅读建议:建议读者结合提供的Matlab代码进行实践操作,重点关注轨迹生成逻辑测量模型构建部分,可通过修改目标数量、运动参数或噪声水平来拓展实验场景,进一步提升对多目标跟踪系统设计评估的理解。
本软件实现了一种基于时域有限差分法结合时间反转算法的微波成像技术,旨在应用于乳腺癌的早期筛查。其核心流程分为三个主要步骤:数据采集、信号处理可视化。 首先,用户需分别执行“WithTumor.m”“WithoutTumor.m”两个脚本。这两个程序将在模拟生成的三生物组织环境中进行电磁仿真,分别采集包含肿瘤模型不包含肿瘤模型的场景下的原始场数据。所获取的数据将自动存储为“withtumor.mat”“withouttumor.mat”两个数据文件。 随后,运行主算法脚本“TR.m”。该程序将加载上述两组数据,并实施时间反转算法。算法的具体过程是:提取两组仿真信号之间的差异成分,通过一组专门设计的数字滤波器对差异信号进行增强净化处理,随后在数值模拟的同一组织环境中进行时间反向的电磁波传播计算。 在算法迭代计算过程中,系统会按预设的周期(每n次迭代)自动生成并显示三模拟空间内特定二切面的电场强度分布图。通过对比观察这些动态更新的二场分布图像,用户有望直观地识别出由肿瘤组织引起的异常电磁散射特征,从而实现病灶的视觉定位。 关于软件的具体配置要求、参数设置方法以及更深入的技术细节,请参阅软件包内附的说明文档。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值