From b6a6d63390aadee3d07151c56ac008b9c5ae8b02 Mon Sep 17 00:00:00 2001 From: Matt Marcha Date: Wed, 28 Nov 2018 17:12:17 +0100 Subject: [PATCH] prise de note cours 1 Bonneton --- .../Data science & Big D.md | 158 ++++++++++++++++++ 1 file changed, 158 insertions(+) create mode 100644 Techniques avancées de programmation/Data science & Big D.md diff --git a/Techniques avancées de programmation/Data science & Big D.md b/Techniques avancées de programmation/Data science & Big D.md new file mode 100644 index 0000000..dd50659 --- /dev/null +++ b/Techniques avancées de programmation/Data science & Big D.md @@ -0,0 +1,158 @@ +Cours de E.Bonneton + +# Intro + +Cours initialement prévu pour les master finance (MPIF). + +On commence par installation de ce qu'il faut installer. 3 lib python : panda, numpy et scipy + +On va bosser avec Python. Python est le 2e langage au monde, juste derrière Java. Il aime bien R aussi mais pour pas trop en rajouter on va pas en faire. À l'occase on peut installer et tester R (mais sans le dire au père N), c'est vraiment chouette. + +On est pas précurseurs en la matière, on aurait pu y a 5/6 ans. Mais à l'époque on avait pas les même capacités techniques et on galérait bien notre maman pour charge des set de data de 1Go + +3 grands axes dans le ML : apprentissage non supervisé (clustering, réduction), supervisé (classification/régression) et de renforcement. + +L'IA n'est pas vraiment I... Un système de recommandation, par exemple, c'est très puissant mais ça fait 10 lignes. Ça se fait même assez rapidement : les entreprises se mettent à exploiter leurs données (genre Darty ou MAIF). Obtenir les données : pas si difficile aujourd'hui, bcp en open-source. + +Plan sur présentation cours. On va faire première page ensemble, le contenu de la deuxième devrait être vu avec l'autre prof (du lendemain). + +Environnement technique : + +- Python 3.7 +- Enthought Canopy // Anaconda +- Apache Spark +- Tensor Flow +- Keras + +Plan de métro plutôt riche : le champ st vaste. On ne va faire qu'un cours d'introduction qui va nous donner une vision d'ensemble, à nous d'aller ensuite où on veut. + +Installation d'Anaconda. Revue rapide de R. + +# Python + +n guerre avec R. Ceux de la finance préfèrent ce dernier. Ls deux sont intéressants, mais on fera pas de réseau de neurones avec R. Explorer R à l'occasion. + +## Types + +- int +- float +- str +- bool + +## Affichage / Saisie + +afficher + +`print("couille")` + +saisir : + +` v = int(input("insérer une valeur"))` + +## Conditions + +```python +if: + ... + +if: + ... +else: + ... + +if: + ... +elif: + ... +else: + ... +``` + + + +## Boucles + +```python +for i in range(0, 10): + +for i in range(10): + if(x is 1): + continue + else: + break + +for i in range(0, 10, 2): +``` + +```python +while ... : +``` + +## Listes + +```python +list = [1, 2, 3] +tuple = (1, 2, 3) +dict = { "one" : 1, "two": 2, "three": 3} + +# permet de tout sélectionner avec un offset correspondant au chiffre +list[:2] +list[2:] +list[-1:] + +# fonctions +list.append(4) # une seule valeur ou un tableau +list. extend(5, 6) # plusieurs valeur +list.sort() +list.sort(reverse=True) + +(x, y) = "56,34".split(',') # x = 56 et y = 34 + +dict.get("key") # revient à dict["key"] +``` + +## Importation de modules + +```python +import numpy as np +from math import random as rd +``` + +Ne pas fabriquer ses jeux de données : c'est chiant. Y en a partout, se servir. + +## Fonctions + +```python +def DoSomething(f, x) + return f(x) + +print(Squareit, 3) + +# on utilise lambda pour faire une fonction inline +print(DoSomething)(lambda x: x * x * x, 3) +``` + +## Biblio + +Voir PDF, du plus simple au plus dur. + +Sinon en ligne on a toute la doc de Scipy. + +# Pandas + +Lancer anaconda > Jupyter lab + +Sur des jeux de data à partir de 2/3 Go, il vaut mieux utiliser Sparks. + +De base, `describe()` retourne que sur les colonnes calculables (int), mais en faisant un `include='all'` il nous retourne des trucs intéressants aussi, genre "top" et "freq" qui indiquent l'entrée qui revient le plus souvent et le nombre. + +Les notebook sont exportables ! Genre en HTML, LaTex... + +Une grosse partie du travail est dans le traitement des données et la normalisation du tableau. + + + +### Nettoyage de données + +NaN : la question qui se pose est : qu'en faire ? +Une solution intéressante st par exemple de calculer la moyenne (sans les NaN), et remplacer les NaN par cette moyenne. On peut aussi faire un tirage au hasard. Il y a vraiment beaucoup de possibilités. Il faut s'adapter au type de colonne auquel on à faire. Supprimer la ligne est pas vraiment la meilleure solution, on vire souvent trop de trucs. \ No newline at end of file