Je serai présent pour vous encadrer toutes les semaines, à l'horaire du Jeudi matin. Si vous avez un besoin particulier, je peux venir à l'horaire du vendredi également. Si vous avez des questions, que ce soit directement sur le projet, ou sur le "data science" en général, n'hésitez pas à me contacter par mail, de préférence à l'adresse : remy.cazabet AT univ-lyon1.fr. J'ai 2 bureaux, un à l'INSA et l'autre à Nautibus, donc si vous voulez me voir, envoyez un mail avant et je vous donnerez un lieu de rendez-vous.
Python est un langage qui est rapidement devenu très populaire, autant dans l'entreprise que dans la recherche. Il a comme avantage d'être proche aux standards C/Java, mais d'être plus flexibles (utilisation comme simple script ou en orienté objet). Il a surtout l'avantage de posséder énormément de librairies, faciles à installer, pour faire beaucoup de choses. Il a aussi des inconvénients, deux en particulier:
Données :
Il est important de bien choisir vos données. Passez un peu de temps à regarder ce qui est disponibles sur les sites que j’ai déjà donné, notamment celui de Lyon : https://data.grandlyon.com
Vous êtes très libre d’en trouver d’autres, du moment qu’elles sont suffisamment “riches” pour faire quelque chose d’intéressant.
Un fichier qui me semble particulièrement intéressant sur Lyon :
https://data.grandlyon.com/culture/point-dintfrft-touristique/
Variantes :
Si 2/3 groupes souhaitent travailler sur ce sujet, c’est possible, mais je souhaite qu’ils prennent des orientations bien différentes. Par exemple,
L’objectif général de ce projet est de prendre une base de donnée contenant beaucoup d’information, et d’appliquer des algorithmes de l’état de l’art en datamining/machine learning pour en tirer quelque chose d’intéressant.
J’ai proposé de prendre une base d’alimentation, et d’appliquer du clustering et de l’analyse en composante principale dessus pour visualiser des produits qui se ressemblent et pour aider à choisir un produit plutôt qu’un autre.
Un groupe m’a proposé de prendre une base de données de résultats sportifs, et de programmer un “prédicteur de résultats”, par exemple qui donnerait une probabilité de victoire ou même une probabilité d’obtenir tel ou tel score. C’est une bonne idée aussi !
Les outils
Librairie de data mining en python
scikit-learn
Cette librairie est très pratique et très efficace, elle implémente tous les algos classiques.
Vous voyez les 6 grandes familles d’algos sur la première page (Classification, Regression…) et si vous cliquez dessus vous avez même un espèce de mini-cours qui vous explique ce que font les fonctions. Je vous guiderai évidemment sur le choix des outils.
Pour la visualisation, je vous conseille l’excellente librairie
https://seaborn.pydata.org
Qui non seulement permet de faire la plupart des graphiques classiques (histogramme, nuage de points, etc.) en une ligne de code, mais en plus ils sont beau !
Tutoriels : https://seaborn.pydata.org/tutorial.html
Pour manipuler vos données, il existe une librairie très utilisée, et qui en plus est parfaitement intégrée aux deux précédents, qui s’appelle pandas
https://pandas.pydata.org
Pour ceux qui connaissent R, l’idée est d’avoir le même genre d’outils de manipulation de “tables” que dans R. Ce n’est pas obligatoire de l’utiliser, mais à mon avis c’est pratique.
Pour apprendre à utiliser tout ça, si vous connaissez le système des “notebook”, je vous conseille d’utiliser l’outil python “jupyter notebook”, si vous ne connaissez pas je vous montrerez de quoi il s’agit.
http://jupyter.org
Les données
La base que je propose proviens de ce site :
https://world.openfoodfacts.org
On peut télécharger les données sous forme d’un fichier csv, elle fait un petit Go ...
Je pense qu’on peut aller jusqu’à 3 équipes qui choisissent ce sujet, mais dans ce cas il faut se répartir des objectifs différents: