zoukankan      html  css  js  c++  java
  • PCA(matlab)学习,与记录

    最近学习ML(Matlab),用到了PCA,参考了网上的一些资料,现在总结如下,以后忘记的话,可以回来看看。
    参考地址:https://blog.csdn.net/qq1987924/article/details/45965431

    先来看个例子:(借用参考地址的数据)
    load hald; %载入matlab内部数据
    [pc,score,latent,tsquare] = pca(ingredients); %调用pca分析函数
    pc:是ingredients的协方差矩阵特征值对应的特征向量,排列按照特征值从大到小的顺序排列。
    负载矩阵pc =
      -0.0678 -0.6460 0.5673 0.5062
      -0.6785 -0.0200 -0.5440 0.4933
      0.0290 0.7553 0.4036 0.5156
      0.7309 -0.1085 -0.4684 0.4844
    score:原数据集ingredients转换到新空间的矩阵。
    得分矩阵score =
      36.8218 -6.8709 -4.5909 0.3967
      29.6073 4.6109 -2.2476 -0.3958
      -12.9818 -4.2049 0.9022 -1.1261
      23.7147 -6.6341 1.8547 -0.3786
      -0.5532 -4.4617 -6.0874 0.1424
      -10.8125 -3.6466 0.9130 -0.1350
      -32.5882 8.9798 -1.6063 0.0818
      22.6064 10.7259 3.2365 0.3243
      -9.2626 8.9854 -0.0169 -0.5437
      -3.2840 -14.1573 7.0465 0.3405
      9.2200 12.3861 3.4283 0.4352
      -25.5849 -2.7817 -0.3867 0.4468
      -26.9032 -2.9310 -2.4455 0.4116
    latent:
    ingredients协方差矩阵对应的特征值,从大到小排列,其实也是score矩阵每一列的方差,方差越大,也就
    代表数据越离散,表示的信息越多
    517.7969
      67.4964
      12.4054
      0.2372
    tsquare:
    5.6803
      3.0758
      6.0002
      2.6198
      3.3681
      0.5668
      3.4818
      3.9794
      2.6086
      7.4818
      4.1830
      2.2327
      2.7216
    这是一个统计量,用来衡量多变量之间的距离,这个距离是指样本观测值到数据集中心的距离。(不懂)
    tsquare(i)=score(i,:)*inv(diag(latent))*score(i,:)'
    score(i,:) 得分矩阵的第i行
    inv(diag(latent)):特征值组成的对角矩阵的 逆

    下面按照参考blo里面,进行验证
    [V,D] = eig(cov(ingredients))
      V =特征向量
      0.5062 0.5673 0.6460 -0.0678
      0.4933 -0.5440 0.0200 -0.6785
      0.5156 0.4036 -0.7553 0.0290
      0.4844 -0.4684 0.1085 0.7309
      D =特征值
      0.2372 0 0 0
      0 12.4054 0 0
      0 0 67.4964 0
      0 0 0 517.7969
    pca是按特征值的大小排列的,这里没有按大小顺序排列,仅仅计算了特征值和特征向量。

    至于选取几个主元,常用的方法也就是方差累计百分比法。

    今天学习的时候,看到师姐的论文里面有用到Hotelling T2图,T2是多个变量共同累计的标量,通过单变量控制图的形式来监控多变量工况,T2统计量的控制限

    在二维面上表示一个椭圆。

    目前还在看的过程中,还不懂什么意思。

    大家有懂的,请多多指教~~~

  • 相关阅读:
    tail命令语法
    正则表达式示例
    HTTP状态码对照表 HTTP response codes
    linux 源的配置更新
    shell基本语法
    谁偷走了程序员的时间??
    Spring Data JPA 简单查询-接口方法
    GET和POST两种基本请求方法的区别
    您是怎样度过人生的低潮期的
    树莓派中Docker部署.Net Core 3.1 (一)
  • 原文地址:https://www.cnblogs.com/Airboy1/p/9657050.html
Copyright © 2011-2022 走看看