2013-01-23 3 views
12

Je suis intéressé par les jeux de données python mining trop volumineux pour s'asseoir en RAM mais assis dans une seule HD.Outils Python pour le calcul/extraction de données hors-noyau

Je comprends que je peux exporter les données en tant que fichiers hdf5, en utilisant pytables. De plus, le numexpr permet un calcul de base hors-noyau.

Que se passerait-il ensuite? Mini-batching si possible, et s'appuyant sur des résultats d'algèbre linéaire pour décomposer le calcul lorsque le mini-batching ne peut pas être utilisé?

Ou y at-il des outils de niveau supérieur que j'ai manqués?

Merci pour avoir un aperçu,

Répondre

3

Dans sklearn 0.14 (à paraître dans les prochains jours), il y a un exemple à part entière de classification hors-noyau des documents texte.

je pense que ce pourrait être un excellent exemple pour commencer:

http://scikit-learn.org/dev/auto_examples/applications/plot_out_of_core_classification.html

Dans la prochaine version, nous allons prolonger cet exemple avec plus classificateurs et ajoutez la documentation dans le guide de l'utilisateur. NB: vous pouvez aussi reproduire cet exemple avec 0.13, tous les blocs de construction étaient déjà là.

3

Que voulez-voulez-vous faire — pouvez-vous donner un exemple ou deux s'il vous plaît?

numpy.memmap est facile —

Créer une carte mémoire à un tableau stocké dans un fichier binaire sur le disque.
Les fichiers mappés en mémoire sont utilisés pour accéder à des petits segments de grands fichiers sur le disque, sans lire le fichier entier en mémoire. memmap de numpy sont des objets de semblable à un tableau ...

voir aussi sur numpy+memmap SO.

Les personnes scikit-learn sont très bien informés, mais préfèrent des questions spécifiques.

+0

Merci pour la réponse Denis. Il semble que skilearn dispose de mini-installations de traitement par lots. En fait, je suis à la recherche de la façon la plus rationnelle de gérer l'apprentissage hors-noyau d'une sous-carte - réduire la taille. Particulièrement je cherche à comprendre les forces relatives de hdf5, sql, nosql. – user17375

+0

La question des grands flux de données de Zelazny7 est meilleure car concrète, et obtient de meilleures réponses – denis

3

J'ai un besoin similaire de travailler sur des ensembles de données de taille inférieure à la carte. J'ai posé cette question sur SO quand j'ai commencé à enquêter sur les pandas python comme une alternative sérieuse à SAS: "Large data" work flows using pandas

La réponse présentée ici suggère l'utilisation de l'interface HDF5 de pandas pour stocker les structures de données pandas directement sur le disque. Une fois stocké, vous pouvez accéder aux données par lots et former un modèle de manière incrémentielle. Par exemple, scikit-learn a plusieurs classes qui peuvent être formées sur des parties incrémentales d'un ensemble de données. Un tel exemple se trouve ici:

http://scikit-learn.org/0.13/modules/generated/sklearn.linear_model.SGDClassifier.html

Toute classe qui implémente la méthode partial_fit peut être progressivement formé. J'essaie toujours d'obtenir un flux de travail viable pour ce genre de problèmes et je serais intéressé à discuter de solutions possibles.

Questions connexes