Sto lavorando a un progetto che include l'uso dell'analisi semantica latente (LSA). Ciò richiede l'utilizzo della decompressione del valore singolare (SVD), talvolta su set di dati di grandi dimensioni. Esiste un'implementazione di SVD randomizzato (rSVD) disponibile per l'ambiente Windows \ Visual Studio? Ho visto un progetto chiamato redsvd ma sembra che sia supportato solo su Linux.SVD randomizzato per LSA LSI su ambiente Windows
risposta
ILNumerics potrebbe averlo ma non ho visto se lo fanno rSVD e non ho esperienza personale con la libreria, ma è disponibile tramite NuGet per fortuna.
Qui ci sono i documenti sulla loro attuazione SVD:
http://ilnumerics.net/apidoc/Index.html?topic=html/Overload_ILNumerics_ILMath_svd.htm
C'è anche NAG, ma il suo corrispettivo: http://www.nag.co.uk/numeric/numerical_libraries.asp
Inoltre ho verificato redsvd, e scommetto Potrei portarlo in C# per te o almeno farlo compilare su Windows. Se quelli non soddisfano le tue esigenze fammi sapere e darò un'occhiata alla complessità del porto.
UPDATE:
Ben tornato a casa stasera e ha deciso di dare un colpo. Ecco un modo molto veloce per ottenere redsvd lavorare su Windows utilizzando Visual Studio 2010. ho postato su GitHub:
https://github.com/hoonto/redsvdwin
aprire il rsvd3.sln in Visual Studio, costruire, e si otterrà un rsvd3.exe nella directory Debug.
Run che:
C:\Users\MLM\Documents\Visual Studio 2010\Projects\redsvdwin\Debug>rsvd3.exe
usage: redsvd --input=string --output=string [options] ...
redsvd supports the following format types (one line for each row)
[format=dense] (<value>+\n)+
[format=sparse] ((colum_id:value)+\n)+
Example:
>redsvd -i imat -o omat -r 10 -f dense
compuate SVD for a dense matrix in imat and output omat.U omat.V, and omat.S
with the 10 largest eigen values/vectors
>redsvd -i imat -o omat -r 3 -f sparse -m PCA
compuate PCA for a sparse matrix in imat and output omat.PC omat.SCORE
with the 3 largest principal components
options:
-i, --input input file (string)
-o, --output output file's prefix (string)
-r, --rank rank (int [=10])
-f, --format format type (dense|sparse) See example. (string [=dense])
-m, --method method (SVD|PCA|SymEigen) (string [=SVD])
E non lo è. A proposito, questo crea redsvdMain.cpp, se si desidera il file Incr con main it, escludere redsvdMain.cpp e includere redsvdMainIncr.cpp. Dato che entrambi hanno il main in loro ho solo escluso la versione di Incr e ho costruito la versione normale.
Inoltre, ho incluso anche le intestazioni Eigen3 nel repository github e le ho inserite nella sezione Additional Include per la configurazione della soluzione, quindi non c'è bisogno di giocarle affatto.
Un'ultima cosa, non c'è nulla come cxxabi.h per quanto ne so per Visual Studio, quindi ho fatto un po 'di barare, vedrai dove ho apportato le modifiche perché saranno commentate in questo modo:
//MLM: commented next 3
//...
//...
//...
//MLM: added 1
...
e così via. Quindi, se hai bisogno di apportare modifiche, saprai dove sono i miei cambiamenti.
qr in ILNumerics ha un sovraccarico ILMath.qr (A, outR, outE, economy) che consente di eseguire la decomposizione in scala economica.
In qualche modo ho perso questa opzione ... Vado a dare un'occhiata, grazie! – Leeor
- 1. Installare un ambiente Python/Sfinge su Windows?
- 2. installare il mio ambiente PhoneGap per Android su Windows
- 3. SVD per matrice sparsa in R
- 4. Implementazione parallela per più SVD utilizzando CUDA
- 5. sparse matrix svd in python
- 6. Ambiente Windows SDK e PowerShell
- 7. La variabile di ambiente è troppo grande su Windows 10
- 8. complessità di un algoritmo di ricerca randomizzato
- 9. OpenCV per Python 3.x in ambiente Windows
- 10. Ambiente di sviluppo Java di Windows preferito
- 11. Golang: distribuzione HTTP in ambiente Windows
- 12. Sviluppo GUI con C++ in ambiente Windows
- 13. Come usare Mahout in un ambiente Windows?
- 14. Ambiente pseudografico in Windows Prompt dei comandi
- 15. Singular Value Decomposition (SVD) in PHP
- 16. ASP.NET MVC su Windows Azure è una scelta sensata per un ambiente di produzione?
- 17. C'è un modo per impostare il percorso di ambiente in modo programmatico in C++ su Windows?
- 18. anaconda - variabile di ambiente path in windows
- 19. Comando personalizzato per '\ begin {ambiente} ... \ end {ambiente}'
- 20. Ricerca DLL su Windows
- 21. Rails: inizializzatori per ambiente?
- 22. Come assegnare un colore in modo randomizzato all'effetto hover
- 23. IDE per ironpython su windows
- 24. quicksort randomizzato: probabilità del confronto di due elementi?
- 25. Esiste un ambiente di sviluppo locale Windows Azure?
- 26. postgres 'psql' comando non riconosciuto in ambiente windows
- 27. Esiste un supporto per gli script su Windows Phone?
- 28. Qualsiasi ambiente * nix leggero per la programmazione
- 29. Usa Mono Runtime anziché Microsoft su Windows per Monodevelop
- 30. SVD in una matrice termine documento non danno me valori che voglio
Innanzitutto, grazie per lo sforzo! In secondo luogo, un'implementazione efficiente di SVD non può essere eseguita con Ilnumerics in quanto non esiste un'implementazione di una decomposizione QR di economia ... – Leeor
Piacere mio, se hai qualche problema con questo, non esitare a contattare SO o Github. Interessante su Ilnumerics e l'economia QR.Al giorno d'oggi la mia matematica è molto arrugginita, ma mi chiedo perché INumerici andrebbero a tanto e non lo fanno? Secondo Matlab è solo: "Se m> n, vengono calcolate solo le prime n colonne di Q e le prime n righe di R. Se m <= n, questo è uguale a [Q, R] = qr (A) ". Forse non lo vedo, ma ciò non sembra difficile da implementare per i ilnumerici. Devo trascurare qualcosa. Forse lo hanno sul radar per una data futura. – hoonto