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

  • 相关阅读:
    python设计模式
    tomcat在ubuntu下的配置
    排序算法
    python爬虫(一)
    python实现推荐系统(二)
    python实现k近邻
    python实现逻辑回归
    python实现推荐系统(一)
    SGD实现推荐系统
    pyqt4+chatterbot实现简单聊天机器人程序
  • 原文地址:https://www.cnblogs.com/qqhfeng/p/5294167.html
Copyright © 2011-2022 走看看