Sto cercando di implementare algoritmi per dati 1000-dimensionali con punti dati 200k + in python. Voglio usare numpy, scipy, sklearn, networkx e altre librerie utili. Voglio eseguire operazioni come la distanza a coppie tra tutti i punti e fare il clustering su tutti i punti. Ho implementato algoritmi di lavoro che eseguono ciò che voglio con ragionevole complessità ma quando provo a ridimensionarli a tutti i miei dati, ho esaurito ram. Certo che lo faccio, creando la matrice per le distanze a coppie su 200k + i dati richiedono molta memoria.Lavorare con i big data in python e numpy, non abbastanza ram, come salvare i risultati parziali sul disco?
Ecco il trucco: mi piacerebbe davvero farlo su computer scadenti con basse quantità di RAM.
C'è un modo fattibile per far funzionare questo lavoro senza i limiti del basso ram. Che ci vorrà molto più tempo non è davvero un problema, a patto che le richieste di tempo non vadano all'infinito!
Mi piacerebbe essere in grado di mettere i miei algoritmi al lavoro e poi tornare indietro di un'ora o più e non averlo bloccato perché è rimasto senza ram! Mi piacerebbe implementarlo in python, ed essere in grado di usare le librerie numpy, scipy, sklearn e networkx. Mi piacerebbe essere in grado di calcolare la distanza a due a tutti i miei punti, ecc.
È fattibile? E come potrei farlo, cosa posso iniziare a leggere?
migliori saluti // Mesmer
La tua domanda è piuttosto vaga e molto ampia. Sono dimensioni di dati abbastanza normali per molte applicazioni nell'elaborazione del segnale e nell'apprendimento automatico. Suggerisco di andare a scoprire gli algoritmi e le tecniche utilizzate in quei campi. –
Voglio essere in grado di eseguire, ad esempio, la distanza a coppie tra tutti i punti in una matrice 200.000 x 1000 in python senza avere abbastanza ram per mantenere in memoria l'intera matrice della distanza. Sto cercando informazioni su come farlo :) risposte più concrete quindi un vago "sguardo in due interi sottosistemi dell'informatica" sarebbe utile! – Ekgren
Probabilmente vorrai dare un'occhiata a [memmap] di numpy (http://docs.scipy.org/doc/numpy/reference/generated/numpy.memmap.html) e possibilmente [PyTables] (http: // www. pytables.org) come punto di partenza. –