zoukankan      html  css  js  c++  java
  • 奇异值分解(SVD)实例,将不重要的特征值改为0,原X基本保持不变

    >> s = rand(5,7)

    s =

    0.4186  0.8381  0.5028 0.1934 0.6979 0.4966 0.6602
    0.8462  0.0196  0.7095 0.6822 0.3784 0.8998 0.3420
    0.5252  0.6813  0.4289 0.3028 0.8600 0.8216 0.2897
    0.2026  0.3795  0.3046 0.5417 0.8537 0.6449 0.3412
    0.6721  0.8318  0.1897 0.1509 0.5936 0.8180 0.5341

    >> [U,S,V] = svd(x)

    U =

    -0.4898    -0.3969    -0.4590   -0.6260
    -0.5360    -0.3441    0.7673    0.0750
    -0.5182    0.8415     0.0300    -0.1500
    -0.4519    -0.1266    -0.4469   0.7616


    S =

    4.9686    0            0
    0            0.4454    0
    0            0            0.1566
    0            0            0


    V =

    -0.8576       0.5123           -0.0451
    -0.0320       0.0344           0.9989
    0.5133        0.8581           -0.0131

    -- 修改不重要的值

    >> S(3,3)=0

    S =

    4.9686     0             0
    0             0.4454     0
    0             0             0
    0             0             0

    >> U*S*V'

    ans =

    1.9968   0.0718    -1.4009
    2.2054   0.0800   -1.4984
    2.4002   0.0953   -0.9999
    1.8968   0.0699   -1.2009

    结论:和原理的值差别不大

    >> S(3,3)=0.1566

    S =

    4.9686    0                0
    0            0.4454        0
    0            0                0.1566
    0            0                0

    >> U*S*V'

    ans =

    2.0000    0.0000    -1.4000
    2.2000    0.2000    -1.5000
    2.4000    0.1000    -1.0000
    1.9000    0.0000    -1.2000

  • 相关阅读:
    零基础用Docker部署微服务
    HashMap负载因子为什么是0.75
    一个JavaBean和DTO转换的优秀案例
    golang三方包应该如何安装--在线和离线
    Restful API 设计参考原则
    消息队列 RabbitMQ
    Python中的str与unicode处理方法
    MySQL索引背后的数据结构及算法原理
    Python面试题目--汇总
    How to check Logstash's pulse
  • 原文地址:https://www.cnblogs.com/qqhfeng/p/5294167.html
Copyright © 2011-2022 走看看