Outils logiciels pour les cours Paris II

Cours Paris II

Stages/ Thèses/ Séminaires

Laboratoire

edit SideBar

Python 4

  • Matrice de Gram
    • Peut-on décomposer A tel qu'il existe u1,...un et A(i,j)=ui.uj ?
    • Toujours possible pour une matrice positive semi-définie comme une matrice covariance
    • Decomposition de Cholesky

import numpy as np

import scipy.linalg as la

A = np.array([ [0.1,2,2.0,1],[0.2,3,3.0,1],[0.1,4,4.1,1] ])

B=np.cov(A)

L = la.cholesky(B)

  • Réduction de dimensions: trouver les vecteurs de dimension petite

import numpy as np

import scipy.linalg as la

A = np.array([ [0.1,2,2.0,1],[0.2,3,3.0,1],[0.1,4,4.1,1] ])

B=np.cov(A)

L = la.cholesky(B)

print(np.dot(L.T, L))

print(L)

print(B)

w,v=la.eig(B)

print("Eigenvalues of B",w)

print("Eigenvectors of B \n",v)

L1=L[:2,:]

print("reduced L \n", np.dot(L1.T, L1))

La dimension est réduite de 3 à 2. On peut réduire à 1 en écrivant:

L1=L[:1,:]

L'erreur entre L1t .L1 et B la matrice de covariance est légèrement plus grande

  • Recommandations
UP2