zoukankan      html  css  js  c++  java
  • singular value decomposition

    http://web.stanford.edu/class/cs246/slides/dim-red.pdf

    http://web.mit.edu/be.400/www/SVD/Singular_Value_Decomposition.htm
    http://mathworld.wolfram.com/SingularValueDecomposition.html
    https://www.cs.cmu.edu/~venkatg/teaching/CStheory-infoage/book-chapter-4.pdf

    【close to a matrix of low rank 用低秩矩阵逼近  svd是得到低秩矩阵的计算方法之一】

    First, in many applications, the data matrix A is close to a
    matrix of low rank and it is useful to find a low rank matrix which is a good approximation
    to the data matrix .

    【从一维直线切入】

    To gain insight into the SVD, treat the rows of an n × d matrix A as n points in a
    d-dimensional space and consider the problem of finding the best k-dimensional subspace
    with respect to the set of points. Here best means minimize the sum of the squares of the
    perpendicular distances of the points to the subspace. We begin with a special case of
    the problem where the subspace is 1-dimensional, a line through the origin. We will see
    later that the best-fitting k-dimensional subspace can be found by k applications of the
    best fitting line algorithm. Finding the best fitting line through the origin with respect
    to a set of points {xi|1 ≤ i ≤ n} in the plane means minimizing the sum of the squared
    distances of the points to the line. Here distance is measured perpendicular to the line.
    The problem is called the best least squares fit.

    Singular matrix

    C:Python36python.exe "C:Program Files (x86)JetBrainsPyCharm 2017.1helperspydevpydevd.py" --multiproc --qt-support --client 127.0.0.1 --port 63304 --file D:/pymine/clean/filter_mac/1.py
    pydev debugger: process 49536 is connecting
    
    Connected to pydev debugger (build 171.3780.115)
    Traceback (most recent call last):
      File "C:Program Files (x86)JetBrainsPyCharm 2017.1helperspydevpydevd.py", line 1578, in <module>
        globals = debugger.run(setup['file'], None, None, is_module)
      File "C:Program Files (x86)JetBrainsPyCharm 2017.1helperspydevpydevd.py", line 1015, in run
        pydev_imports.execfile(file, globals, locals)  # execute the script
      File "C:Program Files (x86)JetBrainsPyCharm 2017.1helperspydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile
        exec(compile(contents+"
    ", file, 'exec'), glob, loc)
      File "D:/pymine/clean/filter_mac/1.py", line 16, in <module>
        x = np.linalg.solve(a, b)
      File "C:Python36libsite-packages
    umpylinalglinalg.py", line 375, in solve
        r = gufunc(a, b, signature=signature, extobj=extobj)
      File "C:Python36libsite-packages
    umpylinalglinalg.py", line 90, in _raise_linalgerror_singular
        raise LinAlgError("Singular matrix")
    numpy.linalg.linalg.LinAlgError: Singular matrix
    
    import numpy as np
    
    a, b = np.matrix('1 1;1 1'), np.matrix('1;1')
    c = a * b
    
    a, b = np.array([[3, 1], [1, 2]]), np.array([9, 8])
    x = np.linalg.solve(a, b)
    
    a, b = np.array([[1, 1, 0, 0], [1, 0, 1, 0], [0, 1, 0, 1], [0, 0, 1, -1]]), np.array([8, 13, 8, 6])
    x = np.linalg.solve(a, b)
    
    a, b = np.array([[1, 1, 0, 0], [1, 0, 1, 0], [0, 1, 0, 1], [0, 0, 1, -1]]), np.array([8, 13, 8, 6])
    x = np.linalg.solve(a, b)
    
    a, b = np.array([[1, 1, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 1, -1]]), np.array([8, 13, 8, 6])
    x = np.linalg.solve(a, b)
    
    import numpy as np
    
    a, b = np.matrix('1 1;1 1'), np.matrix('1;1')
    c = a * b
    
    a, b = np.array([[3, 1], [1, 2]]), np.array([9, 8])
    x = np.linalg.solve(a, b)
    
    a, b = np.array([[1, 1, 0, 0], [1, 0, 1, 0], [0, 1, 0, 1], [0, 0, 1, -1]]), np.array([8, 13, 8, 6])
    x = np.linalg.solve(a, b)
    
    a, b = np.array([[1, 1, 0, 0], [1, 0, 1, 0], [0, 1, 0, 1], [0, 0, 1, -1]]), np.array([8, 13, 8, 6])
    x = np.linalg.solve(a, b)
    
    a, b = np.array([[1, 1, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 1, -1]]), np.array([8, 13, 8, 6])
    x = np.linalg.solve(a, b)
    
    
    a, b = np.array([[1, 1, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]), np.array([8, 13, 8, 6])
    x = np.linalg.solve(a, b)
    
    
    s = 9
    C:Python36python.exe "C:Program Files (x86)JetBrainsPyCharm 2017.1helperspydevpydevd.py" --multiproc --qt-support --client 127.0.0.1 --port 64411 --file D:/pymine/clean/filter_mac/1.py
    pydev debugger: process 27204 is connecting
    
    Connected to pydev debugger (build 171.3780.115)
    Traceback (most recent call last):
      File "C:Program Files (x86)JetBrainsPyCharm 2017.1helperspydevpydevd.py", line 1578, in <module>
        globals = debugger.run(setup['file'], None, None, is_module)
      File "C:Program Files (x86)JetBrainsPyCharm 2017.1helperspydevpydevd.py", line 1015, in run
        pydev_imports.execfile(file, globals, locals)  # execute the script
      File "C:Program Files (x86)JetBrainsPyCharm 2017.1helperspydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile
        exec(compile(contents+"
    ", file, 'exec'), glob, loc)
      File "D:/pymine/clean/filter_mac/1.py", line 16, in <module>
        x = np.linalg.solve(a, b)
      File "C:Python36libsite-packages
    umpylinalglinalg.py", line 375, in solve
        r = gufunc(a, b, signature=signature, extobj=extobj)
      File "C:Python36libsite-packages
    umpylinalglinalg.py", line 90, in _raise_linalgerror_singular
        raise LinAlgError("Singular matrix")
    numpy.linalg.linalg.LinAlgError: Singular matrix

    http://mathworld.wolfram.com/SingularMatrix.html

    square matrix that does not have a matrix inverse. A matrix is singular iff its determinant is 0.

    【当且仅当 -- 方阵且行列式为0】奇异矩阵首先是方阵,其次是行列式值为0;;; 

    http://mathworld.wolfram.com/Determinant.html

  • 相关阅读:
    CUDA运行时 Runtime(一)
    CUDA C++程序设计模型
    CUDA C++编程手册(总论)
    深度学习到底有哪些卷积?
    卷积神经网络去雾去雨方法
    马斯克如何颠覆航天? 1/5385成本,c++和python编程!
    CUDA 9中张量核(Tensor Cores)编程
    利用表达式调用全局变量计算出错原因
    述函数的作用,浏览器执行函数的过程
    表达式的差异和相同点
  • 原文地址:https://www.cnblogs.com/rsapaper/p/7532553.html
Copyright © 2011-2022 走看看