2017-10-09 10 views
0

Je travaille sur un problème de Régression Linéaire d'Apprentissage Machine où mon fichier train est d'environ 8Go.Machine de Régression Linéaire Apprentissage du modèle avec d'énormes données

Bien que mon Tp soit de configuration élevée, il ne supporte pas. Donc, au lieu de passer le fichier entier à des fins de formation, puis-je diviser le fichier train en fichiers 10/20 et former le modèle avec ces fichiers un par un?

Cette approche fonctionnera-t-elle ou est-ce que je dois former le modèle avec toutes les données en une seule fois?

+0

Seriez-vous en mesure de fournir plus d'informations? Qu'avez-vous essayé? Pourquoi ne pouvez-vous pas lancer le fichier 8gb (qui est relativement petit pour la plupart des apprentissage machine)? Qu'est-ce que vous utilisez pour votre apprentissage automatique? Cette information nous aidera à donner de meilleures réponses, merci! –

+0

de quel type de données parlons-nous, pouvez-vous donner un échantillon? Quelles sont les spécifications de votre machine et 8Gb n'est pas un très petit jeu de données mais ce n'est même pas énorme! Bien que l'exécution en morceaux n'est pas un très gros problème, mais d'abord, nous avons besoin d'informations! –

+0

Salut Steve, J'essaie de prédire les valeurs d'un montant à payer en utilisant la régression linéaire. Pourriez-vous suggérer comment procéder? Veuillez trouver le code ci-dessous: –

Répondre

0

Oui, cela fonctionne. C'est ce que l'on appelle la Descente graduelle stochastique pour le faire de cette façon, et c'est une façon standard de s'entraîner lorsque vos données ne peuvent pas rentrer dans la mémoire.

Stochastique signifie "avec un caractère aléatoire", et s'appelle ceci parce que vous ne suivez pas le gradient réel de toutes vos données, mais une approximation de votre gradient basé sur certaines de vos données. Même si vous n'êtes pas toujours à jour dans la bonne direction, tant que votre taille de pas est assez petite et que vos lots sont assez grands, la procédure fonctionne toujours très bien.

Mais, un mot d'avertissement: Vous ne pouvez pas l'entraîner à la fin sur chaque fichier, l'un après l'autre. Si vous le faites, l'apprentissage du deuxième fichier l'amènera à oublier les valeurs apprises sur le premier fichier. Au lieu de cela, vous devriez le former sur ce qu'ils appellent des «lots» de données, et effectuer une mise à jour par lot.

Alors, cela est mauvais:

for file in files: 
    while not Model.stop_condition(): 
     Model.train_step(file) 

Et ce qui est bon:

while not Model.stop_condition(): 
    for file in files: 
     Model.train_step(file) 
+0

Salut Sam, Merci pour la solution. Ce sera très utile si vous fournissez du code pour la référence, en particulier pour lire les fichiers .csv les uns après les autres et entraîner le modèle. –