Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
1557 connectés 

 



Utilisez-vous du machine learning dans votre job ?




Attention si vous cliquez sur "voir les résultats" vous ne pourrez plus voter

 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  16  17  18  19  20  21  22  23
Auteur Sujet :

[Topic Unique] Machine Learning & Data Science

n°5013091
Rasthor
Liberté et Patrie
Posté le 02-10-2017 à 00:47:18  profilanswer
 

Reprise du message précédent :
Y'avait d'ailleurs un article pour comment gerer des centaines de Mo dans Pandas:
https://www.dataquest.io/blog/pandas-big-data/


Message édité par Rasthor le 02-10-2017 à 00:47:25
mood
Publicité
Posté le 02-10-2017 à 00:47:18  profilanswer
 

n°5013112
o_BlastaaM​oof_o
Numéricien devenu
Posté le 02-10-2017 à 10:11:06  profilanswer
 

Une base de données, c'est pas forcément plus complexe...
Et puis ça permet de s'entraîner au SQL.

n°5013117
zuf
AMD Fanboy
Posté le 02-10-2017 à 10:36:52  profilanswer
 

Oui s'il veut s'entraîner ça peut être intéressant aussi

n°5013119
fusion_sad​am
:D
Posté le 02-10-2017 à 11:04:19  profilanswer
 

zairo a écrit :

Au début j'avais pas trop envie de me prendre la tête est de simplement faire un fichier texte, mais étant donnée qu'il y a beaucoup de variable je pense qu'une base de donnée type sql serait idéal mais je ne sais pas vraiment si y a de meilleur solution en python  (un peu comme sqllite sur android)


 
Sqlite est disponible en python, et c'est effectivement très pratique pour pas se prendre la tete avec un server sql et faire un truc portable et partageable avec tes amis.
 
Maintenant si tu as assez de RAM charge tout, surtout si tu as un seul fichier plat et que tu n'a pas besoin d'avoir plusieurs table et de faire des jointures.  
 


---------------
On sait pas trop quoi dire dans des circonstances pareilles...
n°5013130
fusion_sad​am
:D
Posté le 02-10-2017 à 11:29:47  profilanswer
 

zuf a écrit :

Oui s'il veut s'entraîner ça peut être intéressant aussi


 
Je dirais que c'est encore intéressant, mais c'est de moins en moins utilisé en data science.
L'explosion de la dispo de la ram y est pour beaucoup, sur ma machine perso j'ai 16Go ce qui est déjà suffisant pour 90% des projets, nos serveur atteigne 128/256 ...
et tout tourne sur du SSD et sql ne sert que de stockage multi utilisateur.
Au dessus, c'est les architecture big data qui prennent le relais
Et pour des appli plus industrielles, des ORM comme SQLAlchemy sont de plus en plus utilisé, ça permet d'avoir une abstraction (un mapping object/table) qui est indépendant de la base de donnée.
Ça permet par exemple d'avoir un sqlite en local, un postgres sur le server de dev et un ms-sql en prod chez le client, en ayant le même code.
 
SQL reste indispensable à connaitre, mais pas au point de maîtriser les requête imbriqué ou récursive avec des clauses dans tout les sens.


---------------
On sait pas trop quoi dire dans des circonstances pareilles...
n°5013141
o_BlastaaM​oof_o
Numéricien devenu
Posté le 02-10-2017 à 11:49:46  profilanswer
 

fusion_sadam a écrit :


 
Je dirais que c'est encore intéressant, mais c'est de moins en moins utilisé en data science.
L'explosion de la dispo de la ram y est pour beaucoup, sur ma machine perso j'ai 16Go ce qui est déjà suffisant pour 90% des projets, nos serveur atteigne 128/256 ...
et tout tourne sur du SSD et sql ne sert que de stockage multi utilisateur.
Au dessus, c'est les architecture big data qui prennent le relais
Et pour des appli plus industrielles, des ORM comme SQLAlchemy sont de plus en plus utilisé, ça permet d'avoir une abstraction (un mapping object/table) qui est indépendant de la base de donnée.
Ça permet par exemple d'avoir un sqlite en local, un postgres sur le server de dev et un ms-sql en prod chez le client, en ayant le même code.
 
SQL reste indispensable à connaitre, mais pas au point de maîtriser les requête imbriqué ou récursive avec des clauses dans tout les sens.


L'intérêt d'une base de données, c'est :
- de réaliser certaines opérations "in-database", afin d'éviter le transfert de données entre la base et le client ;
- de récupérer seulement une partie de l'information grâce à l'indexation.
 
Le traitement en mémoire sur le client, c'est bien, mais il faut tout de même charger le jeu de données à un moment donné, ce qui peut effacer tout le gain de performances sur le traitement lui-même.

n°5013149
TiDom
Posté le 02-10-2017 à 12:09:34  profilanswer
 

o_BlastaaMoof_o a écrit :


L'intérêt d'une base de données, c'est :
- de réaliser certaines opérations "in-database", afin d'éviter le transfert de données entre la base et le client ;
- de récupérer seulement une partie de l'information grâce à l'indexation.
 
Le traitement en mémoire sur le client, c'est bien, mais il faut tout de même charger le jeu de données à un moment donné, ce qui peut effacer tout le gain de performances sur le traitement lui-même.


 
En lien avec la question de départ et pour compléter :
Si pour réaliser tes tâches d'analyse, tu as besoin de toutes tes données (les 500Mo), il faut aussi penser à la place en mémoire qu'elles vont prendre lorsque tu les aura mises dans des structures de données. Et ça dépend de l'algorithme d'analyse que tu utilises, vu que ça dépend des structures de données utilisées par l'algo. Tu peux essayer de déterminer la complexité en espace de ton algo ... Ou alors plus simple, do it and let's see

n°5013208
zairo
Posté le 02-10-2017 à 18:58:11  profilanswer
 

je connais déjà sql :o

 

je veux surtout m'entraîner sur l'aspect traitement des données :o
donc je cherchais juste une solution de stockage qui colle avec la taille de mes données

 

je vais creuser du côté de panda :jap:

 


Message édité par zairo le 02-10-2017 à 19:03:13
n°5013243
o_BlastaaM​oof_o
Numéricien devenu
Posté le 02-10-2017 à 23:05:09  profilanswer
 

Bah sinon MATLAB, un fichier CSV, readtable et zou terminé :o

n°5013248
Rontgen
Posté le 02-10-2017 à 23:48:33  profilanswer
 

Ah voilà, je me demandais quand est-ce que tu allais parler de MATLAB :o

mood
Publicité
Posté le 02-10-2017 à 23:48:33  profilanswer
 

n°5013252
Pina Colad​a
Posté le 02-10-2017 à 23:54:29  profilanswer
 

Matlab j'y suis retourné dernièrement car un papier que je lisais était implémenté en Matlab, mais je me suis rendu compte que ça n'avait plus aucun intérêt aujourd'hui avec python, julia et octave/scilab..
ALors certes la documentation est bien faite mais bon... :o

n°5013255
o_BlastaaM​oof_o
Numéricien devenu
Posté le 03-10-2017 à 00:07:29  profilanswer
 

Je sais bien que je suis le seul à défendre cet outil mais, pour faire également un peu de Python par ailleurs, je suis toujours surpris de voir à quel point les gens sont prêts à se faire chier avec des outils pas pratiques :o

n°5013261
TiDom
Posté le 03-10-2017 à 07:50:32  profilanswer
 

o_BlastaaMoof_o a écrit :

Je sais bien que je suis le seul à défendre cet outil mais, pour faire également un peu de Python par ailleurs, je suis toujours surpris de voir à quel point les gens sont prêts à se faire chier avec des outils pas pratiques :o


 
Non tu n'es pas le seul :)
J'ai utilisé Matlab pendant un bon moment : ça rocks (du poney fringant)
Et puis les guerres d'outils / langages de prog / OS ... c'est vieux comme le monde :o
Le but c'est quand même d'être efficace quel que soit ton langage de prédilection

n°5013262
zuf
AMD Fanboy
Posté le 03-10-2017 à 07:55:20  profilanswer
 

o_BlastaaMoof_o a écrit :

Je sais bien que je suis le seul à défendre cet outil mais, pour faire également un peu de Python par ailleurs, je suis toujours surpris de voir à quel point les gens sont prêts à se faire chier avec des outils pas pratiques :o

 

J'ai tout appris sur MATLAB puis utilisé  pendant longtemps (1998/2013) en gros. C'est un très bon outil, et même si je suis passé à python depuis quelques temps je comprends que c'est quand même moins pratique ;)

n°5013656
zairo
Posté le 04-10-2017 à 20:38:46  profilanswer
 

développe ?  
"c'est moins pratique" ça veut rien dire :o  

n°5013676
zuf
AMD Fanboy
Posté le 04-10-2017 à 21:10:09  profilanswer
 

zairo a écrit :

développe ?  
"c'est moins pratique" ça veut rien dire :o  


 
Disons que l'interface de matlab est vraiment très bonne. Avec python on a bien spyder qui ressemble mais, n'est pas aussi "puissante".
Si tu veux importer un fichier csv avec matlab, tu peux le faire en 2 clicks puis tracer des colonnes très rapidement par exemple. Pour faire la même chose en python, c'est pas plus compliqué mais c'est bien plus long.
Idem pour éditer tes graphes, tu peux tout customiser à la volée en cliquant sur les traces ou les axes.
C'est surtout ce genre de détails qui sont confortables à l'usage.

n°5013702
Rasthor
Liberté et Patrie
Posté le 04-10-2017 à 22:50:48  profilanswer
 

zuf a écrit :


 
Disons que l'interface de matlab est vraiment très bonne. Avec python on a bien spyder qui ressemble mais, n'est pas aussi "puissante".
Si tu veux importer un fichier csv avec matlab, tu peux le faire en 2 clicks puis tracer des colonnes très rapidement par exemple. Pour faire la même chose en python, c'est pas plus compliqué mais c'est bien plus long.
Idem pour éditer tes graphes, tu peux tout customiser à la volée en cliquant sur les traces ou les axes.
C'est surtout ce genre de détails qui sont confortables à l'usage.


Avec Pandas ?

n°5013703
zuf
AMD Fanboy
Posté le 04-10-2017 à 22:53:18  profilanswer
 

Rasthor a écrit :


Avec Pandas ?

 

Oui j'utilise plus que ça :)

n°5013796
NonComplia​nt
Posté le 05-10-2017 à 17:02:01  profilanswer
 

Salut,
 
Je suis actuellement à la recherche d'un stage en stats/data science/machine learning (école d'ingés, M1 actuellement). On est d'accord que les stages "Data analyst" c'est du pipeau qui n'a rien à voir avec ce que je voudrais faire ?  
 
Pareil pour les stages en BI, c'est bien ou pas ?

n°5013849
deeplearni​ng
Posté le 06-10-2017 à 10:33:43  profilanswer
 

oui c'est des métiers "historique" de la data  dans lesquels il manque justement les composantes data science / machine learning... t'en feras peut être un peu ou pas du tout, si t'as le choix essaye de trouver quelque chose qui ne laisse aucune ambiguïté sur ce que tu feras
 
si c'est un stage entre M1 et M2 c'est pas si important, par contre si c'est ton stage de fin d'étude ça aura un impact considérable sur la suite de ta carrière


Message édité par deeplearning le 06-10-2017 à 10:55:12
n°5013905
NonComplia​nt
Posté le 06-10-2017 à 15:15:25  profilanswer
 

C'est mon stage de M1 et je suis dans une école d'ingé pas top donc je suis pas en position de faire la fine bouche haha
 
Dans l'ordre on aurait : Stage en data science/machine learning > BI > Data analyst ????  
 
 
Quant est-il des stages de "dev web big data", j'ai un peu peur qu'ils utilisent les buzzwords pour attirer pour au final pisser du code web :/
 
J'essaye d'envoyer des candidatures spontanées sans trop de réussites, des idées de secteurs/boites/start-ups susceptibles de prendre un M1 sans exp ? :D
 
Merci :jap:

n°5013937
hugobine
Posté le 06-10-2017 à 18:26:11  profilanswer
 

Bonjour, si des personnes sont intéressées par des formations spécialisés dans le machine learning /data science.
La faculté d'Orléans ouvre une " graduate school of data science"  
Ce projet regroupe une équipe de recherche mais également une formation diplômante sous la forme d'un DU.
Ce DU peut venir compléter le master économétrie et statistiques appliqués qui possède déjà plusieurs modules en data science  
Plus d'infos ici :  
http://www.univ-orleans.fr/icon/
http://www.univ-orleans.fr/deg/masters/ESA/

n°5014639
jupiter39
Posté le 12-10-2017 à 21:57:24  profilanswer
 

lefilpourpre a écrit :

Des anciens du master esa ? Pr savoir le niveau des débouchés (agences régionales / nationales / internationales ?) Kthxbye


 
En quoi consistait ce master ESA?

n°5014923
hugobine
Posté le 14-10-2017 à 19:14:15  profilanswer
 

jupiter39 a écrit :


 
En quoi consistait ce master ESA?


 
Le master ESA c'est la formation économétrie et statistiques appliqués dont je parle dans le précédent message ahah.
Une solide formation en stats et en économétrie.
Si tu veux plus d'infos ya la plaquette des cours sur ce site  
http://www.univ-orleans.fr/deg/masters/ESA/

n°5015056
NonComplia​nt
Posté le 15-10-2017 à 15:53:25  profilanswer
 

Salut tout le monde !
 
Dans le cadre d'un cours, je dois implémenter un petit réseau de neurones pour un problème de classification...
 
3 couches, la couche cachée a 5 neurones.  
 
Le prof nous a donné un fichier texte qui ressemble à ça :
 
x1  x2    y
2.1 2.5   0
4.7 3.89 1
etc.  
 
J'ai tout codé à la main mais je n'obtiens pas une bonne prédiction, quelqu'un est motivé pour regarder mon code et m'expliquer où j'ai merdé ? (en R)
 
Merci :jap:

n°5015066
Rontgen
Posté le 15-10-2017 à 17:33:00  profilanswer
 

Il faut être plus précis si tu veux qu'on t'aide
À quoi ressemble la courbe de ton erreur d'apprentissage en fonction des itérations ?

n°5015082
NonComplia​nt
Posté le 15-10-2017 à 20:06:15  profilanswer
 

Rontgen a écrit :

Il faut être plus précis si tu veux qu'on t'aide
À quoi ressemble la courbe de ton erreur d'apprentissage en fonction des itérations ?

 


EDIT : merci


Message édité par NonCompliant le 18-10-2017 à 10:02:03
n°5015120
rogermajax
Posté le 16-10-2017 à 01:56:37  profilanswer
 

Quelle méthode pour entraîner ton réseau ? Si ta méthode a des hyper paramètres, tu as essayé différents réglages?

n°5015123
zuf
AMD Fanboy
Posté le 16-10-2017 à 07:13:27  profilanswer
 

Ça vient pas de l'initialisation des coefs?
Le fait que ça marche aléatoirement ?

n°5015124
Rontgen
Posté le 16-10-2017 à 07:17:59  profilanswer
 

zuf a écrit :

Ça vient pas de l'initialisation des coefs?
Le fait que ça marche aléatoirement ?


C'est fort possible oui

 

Par contre si ton erreur c'est celle sur l'ensemble d'apprentissage, c'est pas normal qu'elle remonte dans la figure 3, le gradient doit avoir un problème
Elle peut être bruitée si c'est un gradient stochastique mais elle ne devrait pas avoir de tendance à la hausse

n°5015129
NonComplia​nt
Posté le 16-10-2017 à 09:05:54  profilanswer
 

Merci des réponses !
 
J'initialisais mes deux matrices de coefficients via rnorm() (pour tirer des nombres aléatoires suivant une loi normale)
 
J'utilise la fonction sigmoid = 1/(1+e^-x) pour train le réseau...
 
J'ai peut être merdé sur la condition de mon while... jvais essayer de faire un for et de faire tourner l'algo 10 000 fois pour voir...
 
J'utilise le gradient normal (taux d'apprentissage fixe)

n°5015133
NonComplia​nt
Posté le 16-10-2017 à 09:12:51  profilanswer
 

Si le pb via de l'initialisation, j'ai un gros pb de compréhension.
 
À chaque tour de boucle on update tous les élèments de la matrice des coefs avec la descente du gradient de façon à minimiser une erreur... qu'est-ce que ça peut bien changer de partir de telle ou telle matrice ???? :o

n°5015135
Rontgen
Posté le 16-10-2017 à 09:17:48  profilanswer
 

- Attention à l'initialisation des poids, l'écart-type de la loi normale peut jouer un role important (il y a des heuristiques pour le choisir, par exemple http://philipperemy.github.io/xavier-initialization/ )
- Je te conseille de fixer la seed de ton generateur aleatoire quand tu debug, au moins tes resultats seront reproductibles
- A priori, je dirais le problème n'a pas l'air relié à la condition d'arrêt
Peut-être que ton pas d'apprentissage est trop grand par contre

n°5015136
Rontgen
Posté le 16-10-2017 à 09:19:26  profilanswer
 

NonCompliant a écrit :

Si le pb via de l'initialisation, j'ai un gros pb de compréhension.
 
À chaque tour de boucle on update tous les élèments de la matrice des coefs avec la descente du gradient de façon à minimiser une erreur... qu'est-ce que ça peut bien changer de partir de telle ou telle matrice ???? :o


Ca ne changerait rien si le problème était convexe (une belle courbe lisse avec un seul minimum), mais la fonction que tu minimises ne l'est pas du tout
Une descente de gradient, si elle est bien réglée, te fait converger vers un minimum local (le minimum local le plus proche); changer d'init peut donc changer le minimum local le plus proche

n°5015138
zuf
AMD Fanboy
Posté le 16-10-2017 à 09:27:31  profilanswer
 

Les coefs doivent être aléatoires mais aussi à la bonne échelle, sinon tu peux avoir des problèmes de convergence.
Tu peux essayer de les réduire ou les augmenter (0.001, 0.01) pour voir si ça change quelque chose.

 

C'est dommage je connais pas du tout R sinon j'aurais bien jeté un coup d'œil au code.


Message édité par zuf le 16-10-2017 à 09:27:44
n°5015139
NonComplia​nt
Posté le 16-10-2017 à 09:32:28  profilanswer
 

Putain merci Rontgen (et Zuf), je suis archi stupide de pas y avoir pensé...
 
Du coup question : comment je dois les initialiser ? Il y a une méthode ? Je suis débutant, je connais pas toute la littérature :o

n°5015144
Rontgen
Posté le 16-10-2017 à 09:51:52  profilanswer
 

Tu as plein de ressources en ligne sur ca, je t'en ai donné une deja dans mon message précédent
Tu peux aussi lire ca:
https://stats.stackexchange.com/que [...] al-network

n°5015150
zuf
AMD Fanboy
Posté le 16-10-2017 à 10:03:22  profilanswer
 

Pour un exercice de classification tout simple, j'ai fait comme ça :  
 

Code :
  1. def initialize_parameters(n_x, n_h, n_y):
  2.     """
  3.     Argument:
  4.     n_x -- size of the input layer
  5.     n_h -- size of the hidden layer
  6.     n_y -- size of the output layer
  7.    
  8.     Returns:
  9.     parameters -- python dictionary containing your parameters:
  10.                     W1 -- weight matrix of shape (n_h, n_x)
  11.                     b1 -- bias vector of shape (n_h, 1)
  12.                     W2 -- weight matrix of shape (n_y, n_h)
  13.                     b2 -- bias vector of shape (n_y, 1)
  14.     """
  15.    
  16.     W1 = np.random.randn(n_h,n_x)*0.01
  17.     b1 = np.zeros((n_h,1))
  18.     W2 = np.random.randn(n_y,n_h)*0.01
  19.     b2 = np.zeros((n_y,1))
  20.    
  21.     assert(W1.shape == (n_h, n_x))
  22.     assert(b1.shape == (n_h, 1))
  23.     assert(W2.shape == (n_y, n_h))
  24.     assert(b2.shape == (n_y, 1))
  25.    
  26.     parameters = {"W1": W1,
  27.                   "b1": b1,
  28.                   "W2": W2,
  29.                   "b2": b2}
  30.    
  31.     return parameters


 
Ca fonctionnait bien.
 
Input layer/ 1 hidden layer / output layer.
 
W c'est les poids pour tes coefficients, b c'est tes bias vectors qui peuvent être nuls dans ce cas là.
 
 
Avec plus de couches, j'ai fait ça (désolé c'est du python)
 

Code :
  1. def initialize_parameters_deep(layer_dims):
  2.     """
  3.     Arguments:
  4.     layer_dims -- python array (list) containing the dimensions of each layer in our network
  5.    
  6.     Returns:
  7.     parameters -- python dictionary containing your parameters "W1", "b1", ..., "WL", "bL":
  8.                     Wl -- weight matrix of shape (layer_dims[l], layer_dims[l-1])
  9.                     bl -- bias vector of shape (layer_dims[l], 1)
  10.     """
  11.    
  12.     np.random.seed(3)
  13.     parameters = {}
  14.     L = len(layer_dims)            # number of layers in the network
  15.     for l in range(1, L):
  16.         parameters['W' + str(l)] = np.random.randn(layer_dims[l],layer_dims[l-1])*0.01
  17.         parameters['b' + str(l)] = np.zeros((layer_dims[l],1))
  18.        
  19.         assert(parameters['W' + str(l)].shape == (layer_dims[l], layer_dims[l-1]))
  20.         assert(parameters['b' + str(l)].shape == (layer_dims[l], 1))
  21.        
  22.     return parameters


Message édité par zuf le 16-10-2017 à 10:05:53
n°5015220
NonComplia​nt
Posté le 16-10-2017 à 12:22:28  profilanswer
 

Merci beaucoup à tous les deux. Je me penche dessus et je reviens vers vous si ça marche (ou si je recoince sur qq chose :jap: )

n°5015239
Nufeu
Posté le 16-10-2017 à 14:00:49  profilanswer
 

Salut les gars, j'essaye de coder l'algorithme Stochastic variance reduced gradient sur python, et je n'y arrive, il ne converge pas du tout ...
 
https://image.noelshack.com/minis/2017/42/1/1508155175-capture-d-ecran-2017-10-16-a-13-57-24.png
 

Code :
  1. w = w0.copy()
  2.     w_old = w.copy()
  3.     n_samples = model.n_samples
  4.     v= w.copy()
  5.     callback(w)
  6.     for idx in range(n_iter):       
  7.         w = w0.copy()
  8.         z=model.grad(w_old)
  9.         v= w.copy()
  10.         for t in range(n_samples -1):
  11.             i=idx_samples[idx]
  12.             w = w -step*(model.grad_i(i,w)-model.grad_i(i,w_old)+z)
  13.             v=w+v
  14.         w_old = (1/(n_samples))*v     
  15.         if idx % n_samples == 0:
  16.             callback(w)
  17.     return w

 
 
En fait il existe un moyen de coder ça avec une seule boucle, mais je suis incapable de voir comment  ...

n°5015242
Rontgen
Posté le 16-10-2017 à 14:17:19  profilanswer
 

Le code a pas l'air faux, par rapport a la slide; mais leur ligne avec le premier bullet point m'étonne, j'aurais plutot vu un truc genre  
w_0^k <- \tilde{w}_k [:transparency]
(je connaissais pas cet algo, c'est juste que ca me parait bizarre de recommencer de w_1 à chaque fois)
 
Sinon, est-ce que tu as essayé de diminuer fortement la variable step ?


Message édité par Rontgen le 16-10-2017 à 14:21:02
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  16  17  18  19  20  21  22  23

Aller à :
Ajouter une réponse
 

Sujets relatifs
Recherche d'emploi[Topik Unique] Les girls de la section E&E
Avez vous des problèmatiques sur le Big Data ?Master Finance et Stratégie de Science Po après des études de droit ?
Je veux travailler dans les Big DATAOrientation pour Data Science & Recherche Opérationnelle
[Topic Unique] Concours ingénieur ENAC/IESSA : 30 postes [Topic Unique] EIVP
[Topic Unique] L'Aylite !!! 
Plus de sujets relatifs à : [Topic Unique] Machine Learning & Data Science


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR