Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Realizar factorización de matriz no negativa

Este ejemplo muestra cómo realizar la factorización de matriz no negativa.

Cargue los datos de ejemplo.

load moore X = moore(:,1:5); rng('default'); % For reproducibility

Calcule una aproximación de rango-dos de uso de un algoritmo de actualización multiplicativa que comienza a partir de cinco valores iniciales aleatorios para y.XWH

opt = statset('MaxIter',10,'Display','final'); [W0,H0] = nnmf(X,2,'replicates',5,'options',opt,'algorithm','mult');
    rep    iteration    rms resid   |delta x|       1       10      358.296   0.00190554       2       10      78.3556  0.000351747       3       10      230.962    0.0172839       4       10      326.347   0.00739552       5       10      361.547   0.00705539 Final root mean square residual = 78.3556 

El algoritmo es sensible a los valores iniciales, lo que lo convierte en una buena opción cuando se utiliza para buscar y de varios valores iniciales aleatorios.'mult''replicates'WH

Ahora realiza la factorización usando el algoritmo de mínimos cuadrados alternos, que converge más rápido y más consistentemente. Ejecute 100 veces más iteraciones, comenzando por la inicial e identificada anteriormente.W0H0

opt = statset('Maxiter',1000,'Display','final'); [W,H] = nnmf(X,2,'w0',W0,'h0',H0,'options',opt,'algorithm','als');
    rep    iteration    rms resid   |delta x|       1        2      77.5315  0.000830334 Final root mean square residual = 77.5315 

Las dos columnas de son los predictores transformados.W Las dos filas de dar las contribuciones relativas de cada uno de los cinco predictores en los predictores en.HXW Display H.

H
H = 2×5

    0.0835    0.0190    0.1782    0.0072    0.9802
    0.0559    0.0250    0.9969    0.0085    0.0497

El quinto predictor en (peso 0,9802) influye fuertemente en el primer predictor.XW El tercer predictor en (peso 0,9969) influye fuertemente en el segundo predictor.XW

Visualice las contribuciones relativas de los predictores con, mostrando los datos y las variables originales en el espacio de la columna de.XbiplotW

biplot(H','scores',W,'varlabels',{'','','v3','','v5'}); axis([0 1.1 0 1.1]) xlabel('Column 1') ylabel('Column 2')

Consulte también

Temas relacionados