Nicolas M. Thiéry
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
      • Invitee
    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Engagement control
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Versions and GitHub Sync Engagement control Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
Invitee
Publish Note

Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

Your note will be visible on your profile and discoverable by anyone.
Your note is now live.
This note is visible on your profile and discoverable online.
Everyone on the web can find and read all notes of this public team.
See published notes
Unpublish note
Please check the box to agree to the Community Guidelines.
View profile
Engagement control
Commenting
Permission
Disabled Forbidden Owners Signed-in users Everyone
Enable
Permission
  • Forbidden
  • Owners
  • Signed-in users
  • Everyone
Suggest edit
Permission
Disabled Forbidden Owners Signed-in users Everyone
Enable
Permission
  • Forbidden
  • Owners
  • Signed-in users
Emoji Reply
Enable
Import from Dropbox Google Drive Gist Clipboard
   owned this note    owned this note      
Published Linked with GitHub
Subscribed
  • Any changes
    Be notified of any changes
  • Mention me
    Be notified of mention me
  • Unsubscribe
Subscribe
--- tags: Enseignement, MPI, Info 114, Introduction à la Science des données --- # Info 114: Introduction à la Science des Données ## Enseignants Cours: Isabelle Guyon <guyon@clopinet.com> TP: Nicolas M. Thiéry <Nicolas.Thiery@u-psud.fr> ## [Notes de cours](https://www.dropbox.com/sh/qun4oyd12sn5utr/AABXp2ok6YtiOVAl_4UoC_N0a) - [Introduction](https://www.dropbox.com/sh/qun4oyd12sn5utr/AABXp2ok6YtiOVAl_4UoC_N0a?preview=Introduction.pptx) - [Chapter 1: How to become a Data Scientist in ONE hour :-)](https://www.dropbox.com/sh/qun4oyd12sn5utr/AABXp2ok6YtiOVAl_4UoC_N0a?preview=Chapter1.pptx) - [Chapter 2: Exploratory analysis](https://www.dropbox.com/sh/qun4oyd12sn5utr/AABXp2ok6YtiOVAl_4UoC_N0a?preview=Chapter2.pptx) - [Chapter 3: First POM explorations and project selection](https://www.dropbox.com/s/1l95tlgvxjk2mxr/Chapter3.pptx) - [Chapter 4: POM tricks of the trade](https://www.dropbox.com/s/ui3u14fv32qjas9/Chapter4.pptx?dl=0) - [Chapter 5: Neural networks and deep learning](https://www.dropbox.com/s/if6g2padjs3b6nw/Chapter5.pptx?dl=0) - [Chapter 6: From LMS to back-prop](https://www.dropbox.com/s/m5mftr97sktddzb/Chapter6.pptx?dl=0) - [Chapter 7: Big data versus Good data](https://www.dropbox.com/s/3n480qa7doaxmfr/Chapter7.pptx?dl=0) ## Références Hands-On Machine Learning with Scikit-Learn and TensorFlow, O'Reilly (Aurélien Géron); nouvelle édition 11 octobre ## Glossaire | Anglais | Français | Presque synonymes | | ------- | -------- | -------------- | | feature | variable | caractéristique, colonne, attribut | | sample | exemple | ligne, échantillon, pattern | | table | tableau | matrice | | target | objectif | label, vérité terrain, ground truth, output,... | ## Instructions pour le TP 1 (HW1) Comme en Info 111, nous utiliserons l'environnement interactif Jupyter, mais cette fois avec le langage de programmation Python. ### 1. Ouvrez un terminal `Applications -> Terminal` ### 2. Récupérez les sujets et travaillez sur les fiches Jupyter dans `Info114/HW1` 1. Préparez votre dossier avec les commandes suivantes: mkdir ~/Info114 cd ~/Info114 2. Récupérez le sujet de TP: info-114 fetch HW1 Si jamais il y a une erreur `command info-114 not found`, utiliser à la place (ici et plus loin): /public/info-114/bin/info-114 3. Ouvrez Jupyter info-114 jupyter notebook Note: en salle de TP, vous pouvez comme la semaine dernière récupérer les sujets depuis Jupyter avec: Assignment -> cours Info114 -> fetch sur HW1 ### Errata pour la version originale 00-tableau.ipynb: - T[1,2]: c'est pour la deuxieme ligne et troisieme colonne - C'est de T3D qu'il faut extraire les trois premieres colones 01-images.ipynb: - Pour extraire le canal des rouges, faire R = M[:,:,0] * 1. Pour que les valeurs soient stockées en nombre flottants. Sinon elles sont stockées sur es entiers courts (entre 0 et 255), et les calculs arithmétiques vont déborder. Par exemple, on aurait: $255+1 = 0$ . Vous ne pouvez pas modifier l'exemple donné, mais vous pouvez insérer une nouvelle cellule (Insérer -> Cellule -> après) - avant G+R, le texte devrait être: «Il est maintenant facile de faire de l'arithmétique sur tous les pixels. Par exemple la somme des intensités en vert et rouge s'écrit:» ## Instructions pour le TP 2 (HW2) 1. Ouvrez les notes du cours (voir ci-dessus) 2. Récupérez le sujet comme pour le TP 1 (remplacer `HW1` par `HW2`) 3. Ouvrez la feuille de travail `data_analysis` et suivez les instructions qui s'y trouvent. ### Errata pour le TP 2 Les liens vers les feuilles foreground-extractiono et feature-extraction sont cassés (`_` au lieu de `-`); ouvrir les feuilles depuis le navigateur de fichier. couleurs de fond, ... ## Instructions pour le TP 3 (HW3) 1. Ouvrez les notes du cours (voir ci-dessus) 2. Récupérez le sujet comme pour le TP 1 (remplacer `HW1` par `HW3`) 3. Ouvrez la feuille de travail `data_analysis` puis `project_selection` et suivez les instructions qui s'y trouvent. ## Errata pour le TP 3 - Hint: utiliser `ls` plutôt que `glob.glob`. Ou alors importer `glob.glob` - `RL_data.csv` -> `RE_data.csv` - Hint to load csv with panda: use `pd.read_csv` - On ne veut pas travailler sur le fichier des métadatas, mais il est lui aussi en `.csv`. Il faut donc importer seulement les fichiers se terminant par `_data.csv` - 2.3 systematic_data_experiment(data_name, all_scaled_data_df, sklearn_model, sklearn_metric) à remplacer par systematic_data_experiment(data_name, all_data_df, sklearn_model, sklearn_metric) - 2.3-4 assigner le résultat de systematic_data_experiment à result_noscaling et result_scaling - 2.6 utiliser .plot.bar() plutôt que .hist pour créer un histogamme. Notes pour l'année prochaine: - enlever les raccourcis np, pd, ls, importer les vrais modules - donner un exemple de read_csv ## Projet Téléchargez le dossier commun pour le projet: cd ~/Info114 curl -s http://Nicolas.Thiery.name/Project.tgz -o - | tar zxvf - Pour chaque sujet de projet il y a un sous répertoire (par exemple `Project/2.segmentation`, avec du code et éventuellement un jeu de donnée spécifique. En sus, il y a du code commun dans `Project/utilities`. ### Jeu de données Le jeu de données principal du projet est trop gros pour que chacun d'entre vous en fasse une copie. Au lieu de cela, il est installé une fois pour toute sur le système, comme les logiciels du cours (il est en cours d'installation sur JupyterHub). Pour y accéder depuis Python, vous utiliserez la commande suivante qui vous indiquera dans quel dossier le jeu de donnée est installé: import os.path data_dir = os.path.join(os.path.split(os.path.split(sys.executable)[0])[0], 'share', 'info-114-data', 'Project') En salle de TP, `data_dir` vaudra: /public/info-114/miniconda3/envs/info-114/share/info-114-data/Project/ Ensuite vous pourrez, par exemple, remplacer: meta_data_dir = '../mini-dataset/meta-data' par: meta_data_dir = os.path.join(data_dir,'/meta-data') Si vous souhaitez vraiment télécharger le jeu de données (par exemple pour travailler sur colab), vous pouvez faire: git clone https://gitlab.u-psud.fr/Info114/Data.git ### Espaces collaboratifs - [Projet dataset](/P2eRdPTfSeSXfGEX9fsuIw) - [Projet segmentation](/Y8S49ShPQmGckI_t_zmcxA) - [Projet classifieurs](/J5cOBtokRvmINMg4DbCg9A) - [Projet représentation](/Q4xlxt_6QbSJDMkmFCdyYg) - [Projet biais](/6GewVo7vTX2h1LLGSplZrg) - [Projet apprentissage profond](/LR3YEo9SS9WsOBNIvOMiiQ) ## Deuxième session ### Questions de cours Se préparer À L'AVANCE pour des questions de cours qui viennent des QUIZ 1 et 2: 1. Moyenne : Quelle est la moyenne de [1, 2, 3, 4, 5, 6, 7, 8, 9] 2. Médiane : Quelle est la médiane de [1, 2, 3, 4, 5, 6, 7, 8, 9] 3. Variance : Mettez un cercle autour de l’échantillon a la plus grande variance : [1, 3, 5, 7, 9] [1,2,3,4,5] 4. Écart type : Quelle est l’écart type de [-1, 1, -1, 1, -1, 1, -1, 1] 5. Corrélation : On appelle « standardisation » d’un échantillon l’opération qui consiste à soustraire la moyenne puis diviser par l’écart type. Quelle est la formule de la corrélation pour deux échantillons x = [x_1, x_2, x_3, … x_n] et y = [y_1, y_2, y_3, …, y_n] standardisés ? 6. Exemple. Un tableau de données a habituellement les exemples en ligne et les variables en colonnes. Quels sont les synonymes d’ « exemple » : sample (English) ligne (Français) line (English) échantillon (Français) individu (Français) pattern (English) forme (Français) patient (médical) image (computer vision) client (marketing) sujet (Français) subject (English) 7. Variables. Quels sont les synonymes de « variables » : feature (English) caractéristique (Français) colonne (Français) column (English) attribute (English) attribut (Français) pixel (computer vision) 8. Tableau. Quels sont les quasi-synonymes de « tableau » : table (English) matrice (Français) matrix (English) array (English) 9. Vecteur. Quels sont les quasi-synonymes de « vecteur » : vector (English) list (English) liste (Français) collection (Français) 10. Vérité terrain. Quels sont les synonymes de « vérité terrain » : target (English) valeur cible (Français) ground truth (English) truth value (English) label (French/English) output (English) valeur désirée (Français) 11. Barres d’erreurs : On définit l’ « error rate » (taux d’erreurs) comme la la fraction d’erreurs des exemples de test. Quelle variabilité une barre d’erreurs de l’error rate pourrait-elle mesurer ? celle de l’ensemble d’apprentissage celle de l’ensemble de test celle de l’initialisation des algorithmes qui ont des facteurs aléatoires celle d’autres facteurs aléatoires des algorithmes 12. Méthode de base : Nommez une méthode de classification de base 13. Types d’erreur : Quel est le pire type d’erreur, les erreurs de Type I (faux positifs) ou les erreurs de Type II (faux négatifs) ? - Ça n’a pas d’importance - Type I - Type II - Ça dépend de l’application 14. Corrélation. Le concept le plus important en science des données est celui de co-variance/corrélation/dépendance entre variables qui permet de quantifier si une variable peut être prédite à partir d'une autre. En utilisant le cours https://www.dropbox.com/s/1l95tlgvxjk2mxr/Chapter3.pptx et la page Wikipedia, répondre VRAI ou FAUX? - Corrélation n'implique pas causalité - Le coefficient de corrélation de Pearson est une mesure de dépendance linéaire - Il existe d'autres coefficients de corrélation que celui de Pearson - corr(X, Y) = corr(Y, X) - Si X et Y sont indépendantes alors corr(X, Y) = 0 - Si corr(X, Y) = 0 alors X et Y sont indépendantes - Si on standardise X et Y (soustrait la moyenne et divise par l'écart type) on ne change pas corr(X, Y) - Le coefficient de correlation dépend de l'échelle (ou de l'unité) des variables - corr(X, -X) = -1 - La matrice de corrélation est anti-symétrique - Dans un scatter-plot ou tous les points sont alignés, plus la pente est élevée, plus la corrélation est grande - Dans un scatter plot ou les points sont dispersés, la corrélation est plus grande si les points sont presque alignés - Dans un scatter plot ou les points sont sur un cercle les variables sont dépendante mais la corrélation est nulle - La corrélation est la covariance de deux variables standardisées - La variance des variables influe sur leur corrélation - corr(X, X) = 1 - corr(aX+b, cY+d) = corr(X, Y) pour tous nombres a, b, c, d - Si on standardise X et Y, corr(X, Y) est proportionel au produit scalaire de X et Y - Pour des vecteurs centrés, corr(X, Y) est le cosinus de l'angle entre X et Y - Pour prédire une variable Y il est aussi utile d'utiliser une variable corrélée qu'une variable anti-corrélée ### Diapos Nous envoyer A L'AVANCE (avant le 30 juin à 23h59) 10 diapos présentant le projet effectué, selon le [schema général fourni en classe](https://docs.google.com/presentation/d/1G0oqnbelonvi5WB6BU_lKxP7TcGncd4LPZxN4qGBXwA/edit#slide=id.g656157fc01_2_135) par email à Nicolas.Thiery@u-psud.fr ET iguyon@lri.fr LES ÉTUDIANTs N’AYANT PAS FOURNI LEURS DIAPOS A L’AVANCE AURONT ZERO EN DEUXIEME SESSION. Les binomes doivent chacun et INDIVIDUELLEMENT préparer une présentation. Cas particulier étudiant arrivé en cours de semestre: Préparer une présentation de 10 diapos expliquant les méthodes suivantes illustrées sur la page: https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html#sphx-glr-auto-examples-classification-plot-classifier-comparison-py <https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html#sphx-glr-auto-examples-classification-plot-classifier-comparison-py> Titre (1 slide, indiquer son nom) Introduction (1 slide): contexte, qu’est-ce qu’un problème de classification; exemples de la vie réélle Data (1 slide): Description des données montrée sur la page web citée ci-dessus; ce sont des exemples jouets en 2 dimensions; pourquoi ces exemples sont-ils interessants? Que représentent les figures (hint: voir scatter plots) Nearest neighbors (2 slides) Decision tree (2 slides) Neural net (2 slides) Pour chacun des 3 algorithmes ci-dessus: - description de l’algorithme; - dans quelle situation est-ce un bon algorithme à utiliser: avantages, inconvénients; cas des grands et petit nombres d’exemples et des grands et petit nombres de variables - expliquer la forme des surfaces de decision - comment controller l’over-fitting (si nécessaire) Conclusion (1 slide): qu’avez-vous appris? ### Le jour de l’examen: - presentation orale 10 min + 5 min questions - deux questions de cours (parmi celles à préparer) : 5 min. ### Barème /20: - clareté de l’exposé, logique de l’enchaînement des idées, et respects des consignes : 5 points - compréhension des méthodes employées, qualités techniques, résultats décrits : 5 points - charisme, qualité esthétique de la présentation (y compris des illlustrations) : 5 points - questions de cours : 5 points ## Serveur JupyterHub Comme pour Info 111, vous pourrez travailler sur vos fiches de TP et projet à distance en utilisant le serveur JupyterHub de Paris Sud. Voir les [instructions pour Info 111](http://nicolas.thiery.name/Enseignement/Info111/logiciels/jupyter.html#jupyterhub), en ajustant 111 par 114. ## Installer les logiciels sur votre propre machine (pour les expérimentés) Suivre les [instructions similaires pour le cours Info111](http://nicolas.thiery.name/Enseignement/Info111/logiciels/jupyter-installation), en utilisant le dépot git suivant à la place d'`Info111-notebooks`: https://gitlab.u-psud.fr/Info114/sujets ## De C++ à Python Vous trouverez ci-dessous quelques notes à propos du langage de programmation Python - pas besoin de déclarer les variables - pas de `;` entre les instructions - les instructions sont séparées par des sauts de ligne - les blocs sont déterminés par l'indentation (et non les {}) Affectations: x = 42 s = "Bonjour!" f = 3.14159 Un `if` en C++: if ( x < 10 ) { ...; ...; } else { ...; } Le même `if` en Python: if x < 10: ... ... else: ... Une boucle for en C++: for (int i = 0; i < 10 ; i++) { cout << i << endl; } La même boucle `for` en Python: for i in range(0, 10): print(i) Les *compréhensions* en Python: comment construire des listes avec une syntaxe proche des mathématiques. Essayez les commandes suivantes: range(5, 10) range(5, 95, 10) [ 2*i for i in range(0, 10) ] [ i**2 for i in range(0, 10) ] ## Utiliser une compréhension pour fabriquer une image; essayer les commandes suivantes: | Coluhgvmn 1 | Column 2 | Column 3 | | -------- | -------- | -------- | | Text | Text | Text | def cercle(x,y,r): return Point([x,y]).buffer(r).boundary cercle(0,0,1) cascaded_union([cercle(0,0,1), cercle(0,0,2), cercle(0,0,3)]) cascaded_union( [ cercle(0,0,r) for r in range(10) ]) ## Fonctions mathématiques usuelles from math import sin, cos sin(3.14) ## Définir une fonction En C++: int f(int x, int y, int r) { return x + y - r } En Python: def f(x, y, r): return x + y - r

Import from clipboard

Paste your markdown or webpage here...

Advanced permission required

Your current role can only read. Ask the system administrator to acquire write and comment permission.

This team is disabled

Sorry, this team is disabled. You can't edit this note.

This note is locked

Sorry, only owner can edit this note.

Reach the limit

Sorry, you've reached the max length this note can be.
Please reduce the content or divide it to more notes, thank you!

Import from Gist

Import from Snippet

or

Export to Snippet

Are you sure?

Do you really want to delete this note?
All users will lose their connection.

Create a note from template

Create a note from template

Oops...
This template has been removed or transferred.
Upgrade
All
  • All
  • Team
No template.

Create a template

Upgrade

Delete template

Do you really want to delete this template?
Turn this template into a regular note and keep its content, versions, and comments.

This page need refresh

You have an incompatible client version.
Refresh to update.
New version available!
See releases notes here
Refresh to enjoy new features.
Your user state has changed.
Refresh to load new user state.

Sign in

Forgot password

or

By clicking below, you agree to our terms of service.

Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
Wallet ( )
Connect another wallet

New to HackMD? Sign up

Help

  • English
  • 中文
  • Français
  • Deutsch
  • 日本語
  • Español
  • Català
  • Ελληνικά
  • Português
  • italiano
  • Türkçe
  • Русский
  • Nederlands
  • hrvatski jezik
  • język polski
  • Українська
  • हिन्दी
  • svenska
  • Esperanto
  • dansk

Documents

Help & Tutorial

How to use Book mode

Slide Example

API Docs

Edit in VSCode

Install browser extension

Contacts

Feedback

Discord

Send us email

Resources

Releases

Pricing

Blog

Policy

Terms

Privacy

Cheatsheet

Syntax Example Reference
# Header Header 基本排版
- Unordered List
  • Unordered List
1. Ordered List
  1. Ordered List
- [ ] Todo List
  • Todo List
> Blockquote
Blockquote
**Bold font** Bold font
*Italics font* Italics font
~~Strikethrough~~ Strikethrough
19^th^ 19th
H~2~O H2O
++Inserted text++ Inserted text
==Marked text== Marked text
[link text](https:// "title") Link
![image alt](https:// "title") Image
`Code` Code 在筆記中貼入程式碼
```javascript
var i = 0;
```
var i = 0;
:smile: :smile: Emoji list
{%youtube youtube_id %} Externals
$L^aT_eX$ LaTeX
:::info
This is a alert area.
:::

This is a alert area.

Versions and GitHub Sync
Get Full History Access

  • Edit version name
  • Delete

revision author avatar     named on  

More Less

Note content is identical to the latest version.
Compare
    Choose a version
    No search result
    Version not found
Sign in to link this note to GitHub
Learn more
This note is not linked with GitHub
 

Feedback

Submission failed, please try again

Thanks for your support.

On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

Please give us some advice and help us improve HackMD.

 

Thanks for your feedback

Remove version name

Do you want to remove this version name and description?

Transfer ownership

Transfer to
    Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

      Link with GitHub

      Please authorize HackMD on GitHub
      • Please sign in to GitHub and install the HackMD app on your GitHub repo.
      • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
      Learn more  Sign in to GitHub

      Push the note to GitHub Push to GitHub Pull a file from GitHub

        Authorize again
       

      Choose which file to push to

      Select repo
      Refresh Authorize more repos
      Select branch
      Select file
      Select branch
      Choose version(s) to push
      • Save a new version and push
      • Choose from existing versions
      Include title and tags
      Available push count

      Pull from GitHub

       
      File from GitHub
      File from HackMD

      GitHub Link Settings

      File linked

      Linked by
      File path
      Last synced branch
      Available push count

      Danger Zone

      Unlink
      You will no longer receive notification when GitHub file changes after unlink.

      Syncing

      Push failed

      Push successfully