Partage
  • Partager sur Facebook
  • Partager sur Twitter

Quelle base en MATH pour le BIG DATA

16 septembre 2017 à 11:04:15

Je m'interesse de plus en plus au big data et j'ai vue qu'il fallait avoir s'assez bonne connaissance en math pour s'y lancer.

J'aimerai donc savoir quelle sont les notions fondamentales à avoir en math ?

  • Partager sur Facebook
  • Partager sur Twitter
17 septembre 2017 à 17:12:40

Bonjour IchAlfa,

Je suis novice aussi mais je m'intéresse beaucoup au big data. Actuellement il y a un Mooc  "Fondamentaux pour le big data" sur une plateforme concurrente à OpenClassrooms qui, je pense, donne une bonne idée des pre-requis à avoir en maths niveau algèbre, stats, proba...

  • Partager sur Facebook
  • Partager sur Twitter
30 octobre 2017 à 21:39:35

Bonjour,

Tu as aussi des cours sur cette plateforme. Apres je ne sais pas ce que tu inclus dans le Big Data. Si c'est juste la mise en place de systèmes de stockage (data architect), de l'analyse/du traitement (data analyst), de la création de modèles "prédictif" (data science) ou carrément de la création d'algo (data research).

Pour la data architecture : https://openclassrooms.com/paths/data-architect)

Pour la data analyse : https://openclassrooms.com/paths/data-analyst

Pour la data science : https://openclassrooms.com/paths/data-scientist

Data architect, c'est assez léger en maths (bon apres j'ai pas trop creusé mais je pense que Terminale S c'est suffisant)

Data Analyse, c'est un peu plus fort car tu as des stats et de la proba mais sans plus. L'objectif étant d’être capable d'analyser des données et les rendre visuelles pour les montrer a un public (par exemple avec seaborn, matplotlib, ...)

Data Scientist, c'est déjà bcp plus chaud (par exemple pour ce chapitre, il faut prevoir du papier et un bon doliprane : lien). La tu vas avoir de la proba/stats comme data analyst mais tu rajoutes a ça de l'algèbre (calcul matricielle, diagonalisation, valuer propre, etc..), utilisation de tenseurs, Calcul de fonctions parfois complexes. La les gens conseilles un BAC +3. Perso pour avoir fait un prepa puis une ecole d'ingé, c'est parfois limite pour comprendre (par exemple le kernel trick) donc il faut faire attention. Par contre il existe bcp de libs, clé en main ou tu peux en faire pour le "fun" car la grande majorité de ce dont tu auras besoin est deja prêt. Mais il faut tout de même comprendre ce que tu fais et pk ca marche.

Data research, c'est le plus complexe. dans ce domaine tu crées les algo du futur, les met a l'épreuve etc... Généralement c'est Doctorat et pour les gros geeks ! Tu travaille sur des travaux comme ceux la par exemple : https://arxiv.org/abs/1611.01576

  • Partager sur Facebook
  • Partager sur Twitter
30 octobre 2017 à 21:48:00

Merci @ coni63 !

C'est vrai que le BigData est un domaine large, mais moi je pensais à la Data Science ! 

Je souhaite m'auto former, mais j'ai malheureusement un niveau L2 tres fragile en math(algebre/analyse) et un niveau TS en proba/stat. J'aimerai tout dabord avoir de solide base en Math(Th des graphes,algo, stat, proba etc etc) avant d'entamer une formation en data science (sur OC ou autre)

Tu sais ou est ce que je pourrais etudier tout ca par moi meme sur internet ?

-
Edité par IchAlfa 30 octobre 2017 à 21:49:25

  • Partager sur Facebook
  • Partager sur Twitter
30 octobre 2017 à 22:07:27

Bah deja tu as tous les cours gratuit du parcours, ensuite tu fais les activite, tu fais quelques script par toi meme pour decouvrir les NN (CNN sur mnist, RNN sur Reber grammar, auto encoder sur MNIST, regression/classiffication avec des dataset de kaggle). Youtube a aussi bcp de tutos comme les cours de Siraj Raval...

SI tu n'est pas a la ramasse sur les cours de datascience OC, ca devrait le faire, bcp de cours ne propose pas la theorie

  • Partager sur Facebook
  • Partager sur Twitter
24 février 2018 à 22:34:37

Si tu vises vraiment data scientist, ça dépend où tu vas aussi. Dans certaines grosses entreprises les "data scientists" sont de simples techniciens qui s'amusent à utiliser des modèles sans les comprendre. Et ça tu peux le faire, tu vas apprendre à utiliser python (avec scikit learn par exemple, puis tu vas aller vers d'autres choses genre Edward) et faire de la "data science".

Si tu veux comprendre ce qu'il y a derrière, alors il te faudra avoir de bonnes bases en mathématiques. En fait , même plus que des bases.

Pour te former en mathématiques tout seul, je dois avouer ne pas savoir comment faire. Mais comme dans tout, fais des exercices. Pleins d'exercices! Les exercices c'est la base de la compréhension.

  • Partager sur Facebook
  • Partager sur Twitter
27 février 2018 à 11:37:47

Pour comprendre ce qui se passe "derriere", un niveau L2/L3 suffit-il ?
  • Partager sur Facebook
  • Partager sur Twitter
11 avril 2018 à 16:37:36

Bonjour,

Je me permet de ranimer ce sujet!! Il me semble que c'est compliqué de parler de niveau L2, L3 en maths car tout n'est pas utilisé, n'est ce pas? 

Il y a de trés bons cours sur coursera "Mathematics for data scientist", "mathematics for machine learning", ... Ca m'intérésse également car j'ai vu et revu tout le programme de L1, et j'aimerais maintenant faire ce qu'il faut de L2/L3 de maths pour ne pas être bloqué. Je pense donc me mettre aux cours coursera prochainement, mais je serais content de connaître l'avis des connaisseurs :-) 

  • Partager sur Facebook
  • Partager sur Twitter
11 avril 2018 à 19:29:32

Bonjour,

Je suis d'accord avec Nol38. Je viens de finir le parcours de Data Scientist sur OC et niveau mathématique ce n'est pas "très complexe". Majoritairement, tu vas surtout devoir jouer avec les données pour les préparer. Ça ne nécessite pas de maths incroyable (aller au pire un log si tu as des données très éclatés, normalisation, calcul de moyenne, variances etc.... Ensuite au niveau des modèles, 99.9 % des modèles ne nécessite pas de maths. Au pire avec Tensorflow, tu vas devoir calculer la taille des matrices pour faire les placeholder mais c'est tout. 

Par contre, si tu veux faire qqch de très particulier, la les maths seront plus que nécessaires tout comme la maîtrise de la programmation avec Numpy. Par exemple, il n'existait pas d’implémentation d'un algorithme qui projette des données sur une sphère basé sur une matrice de similarité. Bah, j'ai trouvé une publication officielle qui avait une implémentation MatLab et j'ai passé quelques temps a comprendre l'algo et la publication pour la re-implémenter en python. La en effet les maths sont nécessaires. Voila l'ordre d'idée de la difficulté (https://arxiv.org/pdf/1609.01977.pdf) si tu comprends ce qu'il faut faire c'est bon. Biensur la théorie n'est pas vraiment a connaitre mais c'est mieux de la comprendre...

En esperant que ca aide !

  • Partager sur Facebook
  • Partager sur Twitter
11 avril 2018 à 22:25:46

Je n'ai pas trop regardé mais il me semble que le calcul stochastique est même plus de niveau M1 M2 en maths, non?
  • Partager sur Facebook
  • Partager sur Twitter
12 avril 2018 à 18:18:54

Oui mais tu n'en auras pas besoin dans 99% des cas. Tout est pré-implémenté dans des librairies. Regarde par exemple des exemple sur Tensorflow ou Keras pour les réseaux de neurones. Si tu regarde des algo "plus simple", tu n'as meme pas a prévoir quoi que ce soit par exemple avec sklearn c'est :

from sklearn.model_type import le_model
from sklearn.metrics import ta_métrique

model = le_model(paramètres)
model.fit(X, "y")
y_predit = model.transform(X_a_predire)

ta_métrique(y_voulu, y_predit)

ce n'est pas plus complexe que ca dans bcp de cas. Bon tu as du supervisé, non supervisé etc.. mais le plus important est de bien choisir son modele et sa métrique mais derrière c'est automatique. 

Pour tensorflow oui c'est plus complexe si tu veux faire un truc particulier (cf la doc de tensorflow):

from __future__ import print_function

import tensorflow as tf

# Import MNIST data
from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets("/tmp/data/", one_hot=True)

# Parameters
learning_rate = 0.01
training_epochs = 25
batch_size = 100
display_step = 1

# tf Graph Input
x = tf.placeholder(tf.float32, [None, 784]) # mnist data image of shape 28*28=784
y = tf.placeholder(tf.float32, [None, 10]) # 0-9 digits recognition => 10 classes

# Set model weights
W = tf.Variable(tf.zeros([784, 10]))
b = tf.Variable(tf.zeros([10]))

# Construct model
pred = tf.nn.softmax(tf.matmul(x, W) + b) # Softmax

# Minimize error using cross entropy
cost = tf.reduce_mean(-tf.reduce_sum(y*tf.log(pred), reduction_indices=1))
# Gradient Descent
optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(cost)

# Initialize the variables (i.e. assign their default value)
init = tf.global_variables_initializer()

# Start training
with tf.Session() as sess:

    # Run the initializer
    sess.run(init)

    # Training cycle
    for epoch in range(training_epochs):
        avg_cost = 0.
        total_batch = int(mnist.train.num_examples/batch_size)
        # Loop over all batches
        for i in range(total_batch):
            batch_xs, batch_ys = mnist.train.next_batch(batch_size)
            # Run optimization op (backprop) and cost op (to get loss value)
            _, c = sess.run([optimizer, cost], feed_dict={x: batch_xs,
                                                          y: batch_ys})
            # Compute average loss
            avg_cost += c / total_batch
        # Display logs per epoch step
        if (epoch+1) % display_step == 0:
            print("Epoch:", '%04d' % (epoch+1), "cost=", "{:.9f}".format(avg_cost))

    print("Optimization Finished!")

    # Test model
    correct_prediction = tf.equal(tf.argmax(pred, 1), tf.argmax(y, 1))
    # Calculate accuracy
    accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
    print("Accuracy:", accuracy.eval({x: mnist.test.images, y: mnist.test.labels}))

La c'est a toi de savoir la taille des layers (par exemple w, b, x, y). Il y a biensur des layer tout fait, celui ci est l'implementation basique du fully connected. mais c'est tres souvent a toi de prévoir la taille des tenseur mais ca s'arrete la. 

Tu ne calculera , on peut dire presque jamais, toi même le gradient pour la gradient descente... sauf si tu l'implemente a partir d'un papier officiel sans implementation existante



  • Partager sur Facebook
  • Partager sur Twitter
13 avril 2018 à 5:43:16

D'accord je vois ce que tu veux dire !

Du coup, je me demandais: J'ai un niveau post L1, j'ai vu et revu tout le programme de première année:

Derivées, primitives, developpement limité, espaces vectoriels, matrices, ... 

Je ne sais pas trop par où commencer pour la suite. J'ai vu ces cours coursera:

https://fr.coursera.org/learn/bayesian-statistics

https://fr.coursera.org/specializations/mathematics-machine-learning

Est ce qu'il y a plus intéressant? 

  • Partager sur Facebook
  • Partager sur Twitter
13 avril 2018 à 16:40:28

Si ton objectif c'est vraiment de taffer les maths qui sont derrieres, alors regardes :

https://www.youtube.com/user/hugolarochelle/

Il a différents "cours" plus théorique et pratique. Mais si j'étais toi, je ne regarderai que ca apres avoir un minimum de connaissance de ce qu'est la Data Science, Data Analyse et surtout le Machine Learning. Concernant dans la liste des chapitres que tu as regardé, je t'ai mis en dessous l'utilisé que j'y trouve après avoir fait 1 ans de cours et exercice sur le domaine (env. 30h/sem) :

Derivées : Peut-être utile pour les gradients

Primitives : Inutile

Developpement limité : Inutile

Espaces vectoriels : Dans certains cas (par exemple pour les théories des manifolds)

Matrices : très utile, bien évidemment ^^

  • Partager sur Facebook
  • Partager sur Twitter
14 avril 2018 à 17:26:37

Salut ! 

Merci pour tes reponses. 

Le truc c'est que coursera proposé des certifications derrière les cours, et ca, c'est cool. 

Pour ma part, je vais essayer de me spécialiser un peu plus dans le machine learning. C'est pour ça que le cours coursera que jai mis au dessus me semble pas mal. Après mon but n'est Pas de faire de la recherche, Donc je veux juste avoir  bonnes bases. 

Dans le cours coursera il y a: 

Partie 1 => Mactrices, valeurs propres , vecteurs propres ... ca jai déjà fais

Partie 2 => Fonction à plusieurs variables (je n'ai pas fais) 

partie 3 => pas vraiment compris ce que c'était mais je pense approfondissement des matrices.

Peux tu me donner ton point de vu sur ces deux Cours? (Ils sont sur le message du dessus)

Le deuxième cours est un cours sur les probabilités. 

je vais également rgegzrder le lien YouTube que tu as mis !!

je pensais également démarrer un cours de Mysql, qu'en penses tu? 

-
Edité par Nol38 14 avril 2018 à 17:28:18

  • Partager sur Facebook
  • Partager sur Twitter
16 avril 2018 à 21:59:39

Bonjour,

Désolé du retard :)

Alors MySQL oui... clairement ce n'est pas obligatoire lors que tu débutes (les dataset passeront tous en mémoire sauf si tu as 2go de ram...). Par contre il t'apportera une fompréhension par exemple de ce que tu peux faire avec pandas (l'equivalent de select, join, etc..). Il te faut un minimum de connaissance dessus (pour ca le cours OC est pas mal foutu)

TU peux aussi regarder du coté du NoSQL qui peut parfois servir mais ca tu peux le faire au besoin.

Concernant les cours. commence peut-etre par le commencement. Regardes du coté de OC (les cours dispo sous le parcours Data Scientist, Data Analyst). C'est un très bon départ. SI tu veux en parrallèle apprendre un language (Python ou R), regarde du coté de DataCamp. Perso j'apprends R dessus, c'est répétitif mais globalement tu vois bcp de choses. Malheureusement, j'ai tendance a rester accorché à Python pour les projets de A-Z mais pour la phase d'exploration, R > Python.

Pour info que ce soit OC, Coursera ou DataCAmp, ils font tous des certificats publiables sur Linkedin car c'est leur fond de commerce ^^.

Une fois que tu auras de bonne bases (connaissance des modèles de base (Lineaire, SVM, Forest, clustering, manifolds), des types de travaux (régression, classification), des bonnes habitudes (split train/test/validation, détecter l'overfitting, les régularisation, le grid search etc)  ) tu pourras t'attaquer a des cours plus théorique comme ceux de Coursera. NOn pas qu'ils soit inabordable (ca je ne pense pas), mais ce n'est pas les choses a apprendre en 1er. Si je veux faire une analogie à la voiture, commence par savoir passer les vitesse, accélérer et freiner avant de te lancer dans les manœuvres (créneaux, rangement en bataille, etc). Biensur que c'est faisable, mais ce n'est pas la priorité numéro 1.

Regarde notamment des Notebook sur Kaggle. même les mieux notés n'ont pas bcp de maths purs dedans et sont souvent faits par des gens expérimentés. 

A mon humble avis, tu mets la charrue bien avant les boeufs mais apres je ne veux pas te decourager a faire les cours coursera, je pense juste que c'est trop tot et pas encore utile sauf si tu veux te spécialiser dans un domaine (et meme si c'est ton but, tu dois connaitre la base)

Bon courage

Nicolas

  • Partager sur Facebook
  • Partager sur Twitter
30 octobre 2018 à 11:29:36

Bonjour,

Je m'intéresse aussi au Big Data. Mais mes connaissances en Maths sont beaucoup plus réduites et lointaines (BTS Electronique 89).

Dans le classement que tu fais ci-dessous, les connaissances demandées sont à la l'inverse des salaires escomptés ... Bizarre !

Du coup je partirai plutôt sur Data Architect ...

coni63 a écrit:

Bonjour,

Tu as aussi des cours sur cette plateforme. Apres je ne sais pas ce que tu inclus dans le Big Data. Si c'est juste la mise en place de systèmes de stockage (data architect), de l'analyse/du traitement (data analyst), de la création de modèles "prédictif" (data science) ou carrément de la création d'algo (data research).

Pour la data architecture : https://openclassrooms.com/paths/data-architect)

Pour la data analyse : https://openclassrooms.com/paths/data-analyst

Pour la data science : https://openclassrooms.com/paths/data-scientist

Data architect, c'est assez léger en maths (bon apres j'ai pas trop creusé mais je pense que Terminale S c'est suffisant)

Data Analyse, c'est un peu plus fort car tu as des stats et de la proba mais sans plus. L'objectif étant d’être capable d'analyser des données et les rendre visuelles pour les montrer a un public (par exemple avec seaborn, matplotlib, ...)

Data Scientist, c'est déjà bcp plus chaud (par exemple pour ce chapitre, il faut prevoir du papier et un bon doliprane : lien). La tu vas avoir de la proba/stats comme data analyst mais tu rajoutes a ça de l'algèbre (calcul matricielle, diagonalisation, valuer propre, etc..), utilisation de tenseurs, Calcul de fonctions parfois complexes. La les gens conseilles un BAC +3. Perso pour avoir fait un prepa puis une ecole d'ingé, c'est parfois limite pour comprendre (par exemple le kernel trick) donc il faut faire attention. Par contre il existe bcp de libs, clé en main ou tu peux en faire pour le "fun" car la grande majorité de ce dont tu auras besoin est deja prêt. Mais il faut tout de même comprendre ce que tu fais et pk ca marche.

Data research, c'est le plus complexe. dans ce domaine tu crées les algo du futur, les met a l'épreuve etc... Généralement c'est Doctorat et pour les gros geeks ! Tu travaille sur des travaux comme ceux la par exemple : https://arxiv.org/abs/1611.01576



  • Partager sur Facebook
  • Partager sur Twitter