数据降维

简介: 数据降维分类PCA(主成分分析降维)相关系数降维PCA 降维(不常用)实现思路对数据进行标准化计算出数据的相关系数矩阵(是方阵, 维度是nxn, n是特征的数量)计算出相关系数矩阵的特征值和特征向量(虽然这里说的是向量, 但是是矩阵, 这个矩阵的每一列都是特征值或者特征向量,...

数据降维

分类

  • PCA(主成分分析降维)
  • 相关系数降维

PCA 降维(不常用)

实现思路

  • 对数据进行标准化
  • 计算出数据的相关系数矩阵(是方阵, 维度是nxn, n是特征的数量)
  • 计算出相关系数矩阵的特征值和特征向量(虽然这里说的是向量, 但是是矩阵, 这个矩阵的每一列都是特征值或者特征向量, 是nxn), 特征值是每一个特征的特征值的集合, 但是在特征向量是每一个特征的特征向量的集合, 前者我们提到的特征值和特征向量是集合
  • 多特征值进行降序排序
  • 根据已经得到的特征值计算出贡献率和累计贡献率(主要看累计贡献率, 单单一个贡献率指的是一个主成分保存的原始特征的信息, 累计贡献率是总共保存的原始特征信息)
  • 设置信息阈值T, 一般设置为0.9, 如果大于T, 则记录下来当前的位置k(k也就是我们选择的主成分的个数, 主成分就是特征, 也就是一列)
  • 根据k选择主成分对应的特征向量
  • 将标准化之后的数据(矩阵)右乘在上一步中选择出来的特征向量(在这一步得到的矩阵就是m x new_n维度的了), 得到的就是主成分的分数, 也就是降维之后的数据集合

伪代码

X = load('data.xlsx', 'B1:I11');
m = size(X, 1); % m 表示样本的数量
n = size(X, 2); % n 表示特征的数量
% 数据标准化
for i = 1:m
    SX(:, i) = (X(:, i) - mean(X(:, i))) / std(X(:, i));
end

% 计算相关系数
CM = corrcoef(SX);
% V 是特征向量, D 是特征值
[V D] = eig(CM);

% 对D特征值进行降序排序, 将结果保存到DS的第一列
for i = 1:n
    DS(:, 1) = D(n + 1 - i, n + 1 - i);
end

% 计算贡献率和累计贡献率
for i = 1:n
    % 第二列为当前单个, 每一个, 主成分的贡献率
    DS(:, 2) = D(i, 1) / sum(D(:, 1));
    % 第三列为到当前主成分的累计贡献率
    DS(:, 3) = sum(D(1:i, 1)) / sum(D(:, 1));
end

% 选择主成分
T = 0.9;
for i = 1:n
    if DS(:, i) > T
        k = i;
        break;
    end
end

% 获取主成分对应的特征向量
for i = 1:n
    PV(:, i) = DS(:, n + 1 - i);
end

% 获取新的特征样本
X_new = SX * PV;

相关系数降维

  • 公式: \[r=\sum_{j=1}^{m}{{(x_{j}-\overline{x_{j}})({y_{j}-\overline{y_{j}}})}\over{std(x_{j})std(y_{j})}}\]
  • 如果|r|在[0.7, 1]时表示强线性关系, 说明x和y有很紧密的线性关系
  • 如果|r|在[0.5, 0.7]时表示中线性关系
  • 如果|r|在[0.2, 0.5]时表示低线性关系
  • 如果|r|在[0, 0.2]时表示没有关系
  • r > 0表示正相关, r < 0表示负关系
目录
相关文章
|
机器学习/深度学习 监控 自动驾驶
深度学习在图像处理领域的应用与前景展望
【10月更文挑战第18天】深度学习在图像处理领域的应用与前景展望
460 0
C#获取应用程序所在路径的父级目录
C#获取应用程序所在路径的父级目录
|
Java
Java有没有goto?
goto是java中的保留字,但是没有在java中使用。
1303 0
|
1天前
|
云安全 人工智能 自然语言处理
|
9天前
|
数据采集 人工智能 自然语言处理
Meta SAM3开源:让图像分割,听懂你的话
Meta发布并开源SAM 3,首个支持文本或视觉提示的统一图像视频分割模型,可精准分割“红色条纹伞”等开放词汇概念,覆盖400万独特概念,性能达人类水平75%–80%,推动视觉分割新突破。
648 56
Meta SAM3开源:让图像分割,听懂你的话
|
6天前
|
搜索推荐 编译器 Linux
一个可用于企业开发及通用跨平台的Makefile文件
一款适用于企业级开发的通用跨平台Makefile,支持C/C++混合编译、多目标输出(可执行文件、静态/动态库)、Release/Debug版本管理。配置简洁,仅需修改带`MF_CONFIGURE_`前缀的变量,支持脚本化配置与子Makefile管理,具备完善日志、错误提示和跨平台兼容性,附详细文档与示例,便于学习与集成。
319 116
|
5天前
|
人工智能 Java API
Java 正式进入 Agentic AI 时代:Spring AI Alibaba 1.1 发布背后的技术演进
Spring AI Alibaba 1.1 正式发布,提供极简方式构建企业级AI智能体。基于ReactAgent核心,支持多智能体协作、上下文工程与生产级管控,助力开发者快速打造可靠、可扩展的智能应用。

热门文章

最新文章