主成分分析简单例子

主成分分析简单例子一 数据降维 nbsp nbsp 对于现在维数比较多的数据 我们首先需要做的就是对其进行降维操作 降维 简单来说就是说在尽量保证数据本质的前提下将数据中的维数降低 降维的操作可以理解为一种映射关系 例如函数 即由原来的二维转换成了一维 处理降维的技术有很多种 如前面的 SVD 奇异值分解 主成分分析 PCA 因子分析 FA 独立成分分析 ICA 等等 二 PCA 的概念 nbsp nbsp PCA 是一种较为常用的降

一、数据降维

    对于现在维数比较多的数据,我们首先需要做的就是对其进行降维操作。降维,简单来说就是说在尽量保证数据本质的前提下将数据中的维数降低。降维的操作可以理解为一种映射关系,例如函数主成分分析简单例子,即由原来的二维转换成了一维。处理降维的技术有很多种,如前面的
SVD奇异值分解,主成分分析(PCA),因子分析(FA),独立成分分析(ICA)等等。

二、PCA的概念

    PCA是一种较为常用的降维技术,PCA的思想是将主成分分析简单例子维特征映射到主成分分析简单例子维上,
主成分分析简单例子维是全新的正交特征。这主成分分析简单例子维特征称为主元,是重新构造出来的主成分分析简单例子维特征。在PCA中,数据从原来的坐标系转换到新的坐标系下,新的坐标系的选择与数据本身是密切相关的。其中,第一个新坐标轴选择的是原始数据中方差最大的方向,第二个新坐标轴选取的是与第一个坐标轴正交且具有最大方差的方向,依次类推,我们可以取到这样的主成分分析简单例子个坐标轴。

三、PCA的操作过程

    1、PCA的操作流程大致如下:

  • 去平均值,即每一位特征减去各自的平均值
  • 计算协方差矩阵
  • 计算协方差矩阵的特征值与特征向量
  • 对特征值从大到小排序
  • 保留最大的主成分分析简单例子个特征向量
  • 将数据转换到主成分分析简单例子个特征向量构建的新空间中

    2、具体的例子

        假设二维数据为主成分分析简单例子
主成分分析简单例子

  • 取平均值

       我们计算每一维特征的平均值,并去除平均值,我们计算出均值主成分分析简单例子

主成分分析简单例子

去除均值后的矩阵为主成分分析简单例子
主成分分析简单例子

  • 计算主成分分析简单例子的协方差矩阵主成分分析简单例子

主成分分析简单例子
  • 计算主成分分析简单例子的特征值与特征向量

其中,特征值为


主成分分析简单例子

特征向量为
主成分分析简单例子

  • 对特征值进行排序,显然就两个特征值
  • 选择最大的那个特征值对应的特征向量主成分分析简单例子

主成分分析简单例子
  • 转换到新的空间

主成分分析简单例子
主成分分析简单例子

四、实验的仿真

我们队一个数据集进行了测试:
主成分分析简单例子

MATLAB实验代码如下:
主程序

[plain]  view plain   copy

  1. %% pca  
  2.   
  3. dataSet = load(‘testSet.txt’);%导入数据  
  4.   
  5. % pca  
  6. [FinalData, reconData] = PCA(dataSet, 1);  
  7.   
  8. %% 作图  
  9. hold on  
  10. plot(dataSet(:,1), dataSet(:,2), ‘.’);  
  11. plot(reconData(:,1), reconData(:,2), ‘.r’);  
  12. hold off  
  13.       
  14.       

PCA函数段

[plain]  view plain   copy

  1. function [ FinalData,reconData ] = PCA( dataSet, k )  
  2.     [m,n] = size(dataSet);  
  3.   
  4.    %% 去除平均值  
  5.     %取平均值  
  6.     dataSetMean = mean(dataSet);  
  7.     %减去平均值  
  8.     dataSetAdjust = zeros(m,n);  
  9.     for i = 1 : m  
  10.         dataSetAdjust(i , :) = dataSet(i , :) – dataSetMean;  
  11.     end  
  12.   
  13.     %% 计算协方差矩阵  
  14.     dataCov = cov(dataSetAdjust);  
  15.   
  16.     %% 计算协方差矩阵的特征值与特征向量  
  17.     [V, D] = eig(dataCov);  
  18.       
  19.     % 将特征值矩阵转换成向量  
  20.     d = zeros(1, n);  
  21.     for i = 1:n  
  22.         d(1,i) = D(i,i);  
  23.     end  
  24.       
  25.     %% 对特征值排序  
  26.     [maxD, index] = sort(d);  
  27.       
  28.     %% 选取前k个最大的特征值  
  29.     % maxD_k = maxD(1, (n-k+1):n);  
  30.     index_k = index(1, (n-k+1):n);  
  31.     % 对应的特征向量  
  32.     V_k = zeros(n,k);  
  33.     for i = 1:k  
  34.         V_k(:,i) = V(:,index_k(1,i));  
  35.     end  
  36.       
  37.     %% 转换到新的空间  
  38.     FinalData = dataSetAdjust*V_k;  
  39.       
  40.     % 在原图中找到这些点  
  41.     reconData = FinalData * V_k’;  
  42.     for i = 1 : m  
  43.         reconData(i , :) = reconData(i , :) + dataSetMean;  
  44.     end  
  45. end  
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/225006.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 上午10:21
下一篇 2026年3月17日 上午10:21


相关推荐

  • Kimi-Dev-72B:月之暗面如何用720亿参数“驯服”代码世界?

    Kimi-Dev-72B:月之暗面如何用720亿参数“驯服”代码世界?

    2026年3月12日
    2
  • java虚拟机内存分配_深入理解java虚拟机第二版

    java虚拟机内存分配_深入理解java虚拟机第二版深入理解Java虚拟机之对象的内存布局、访问定位

    2022年4月20日
    44
  • python构建配对t检验(Paired Student’s t-test)

    python构建配对t检验(Paired Student’s t-test)python构建配对t检验(PairedStudent’st-test)配对样本t检验是单样本t检验的特例。配对t检验有多种情况:配对的两个受试对象分别接受两种不同的处理;同一受试对象接受两种不同的处理;同一受试对象处理前后的结果进行比较(即自身配对);同一对象的两个部位给予不同的处理。配对样本t检验用于检验两个相关的样本是否来自具有相同均值的正态总体。实质是检验两相关样本之差的均值和零之间的差异大小。适用情况有:为了比较两种方法(或两种产品、两种仪器等)的差异,因此令两..

    2022年6月19日
    105
  • rider 激活码分享【2021.10最新】

    (rider 激活码分享)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~23…

    2022年3月30日
    84
  • 【回溯法】--01背包问题

    【回溯法】--01背包问题回溯法 01 背包问题 1 问题描述 给定 n 种物品和一背包 物品 i 的重量是 wi gt 0 其价值为 vi gt 0 背包的容量为 c 问应如何选择装入背包中的物品 使得装入背包中物品的总价值最大 要求使用回溯法 例如 算法分析 整体思路 01 背包属于找最优解问题 用回溯法需要构造解的子集树 对于每一个物品 i 对于该物品只有选与不选 2 个决策 总共有 n 个物品 可以顺序依次考虑每个物品 这

    2026年3月26日
    1
  • linux播放音乐,录音命令—–arecord,aplay

    linux播放音乐,录音命令—–arecord,aplay用了这么长时间的 Linux 系统 是不是还没有用 Linux 听过音乐 一般使用 Linux 系统的人都是纯属办公需要或者自己对软件开发玩的 很少是做日常生活电脑使用 在 linux 下也同样有播放音乐的软件 包括桌面式的音乐播放软件 这些桌面软件在 Linux 社区都能找到 现在要说的是 Linux 下怎么用命令去播放音乐 在 pc 机上或者根文件系统稍微正式一点的开发板上 都会安装有 alsa 软件 这是一个 aud

    2026年3月17日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号