2017-07-20 1 views
0

Je travaille sur une analyse de données exploratoire en utilisant python sur un énorme Dataset (~ 20 Millions d'enregistrements et 10 colonnes). Je vais megmenter, agréger des données et créer des visualisations, je pourrais aussi bien créer des modèles de régression de ligne de calcul d'arbre de décision en utilisant cet ensemble de données.Py-tables vs Blaze vs S-Frames

En raison de l'important ensemble de données, j'ai besoin d'utiliser une trame de données qui permet un stockage de données hors noyau. Comme je suis relativement nouveau à Python et que je travaille avec de grands ensembles de données, je veux utiliser une méthode qui me permettrait d'utiliser facilement sklearn sur mes ensembles de données. Je suis confus temps d'utiliser Py-tables, Blaze ou s-Frame pour cet exercice. Si quelqu'un pouvait m'aider à comprendre quels sont leurs avantages et leurs inconvénients. Quels sont les facteurs importants dans ce genre de prise de décision qui seraient très appréciés?

Répondre

1

bonne question! une option que vous pouvez envisager est de ne pas utiliser les bibliothèques décrits cidessus, mais lire et traiter votre fichier morceau par morceau, quelque chose comme ceci:

csv="""\path\to\file.csv"""

pandas géants permet de lire les données de (grand) fichiers morceau sage via un fichier-iterator:

it = pd.read_csv(csv, iterator=True, chunksize=20000000/10)

for i, chunk in enumerate(it): ...

+0

Je ne pensais pas à ce sujet. Cela ajoute une autre option à ma liste. Pouvez-vous nous en dire un peu plus sur les avantages et les inconvénients de chacune de ces options? – user3510503

+1

dépend du type d'opérations que vous voulez faire: si c'est le traitement de données, alors la méthode mentionnée ci-dessus fonctionne. Cependant, si vous avez le temps d'explorer les bibliothèques que vous avez mentionnées (j'aimerais ajouter PySpark à la liste). Si toutefois votre goulot d'étranglement applique des méthodes sklearn aux données, sklearn prend en charge 'partial_fit' qui formera le morceau d'un modèle à la fois. Un bon billet de blog à ce sujet [ici] (https://adventuresindatascience.wordpress.com/2014/12/30/minibatch-learning-for-large-scale-data-using-scikit-learn/) – lorenzori

+0

Merci @ utilisateur3744868 . Ceci est utile – user3510503