Next homework

L2 class info232 2019

Semaine 12:

Presentation en classe.

Devoir final: soumettre les réponses a ce questionnaire avant le Dimanche 28 Avril:

https://forms.gle/eNp3vPD1QT7hKDVy8

=> version finale du rapport (pensez aux points de bonus, voir ci-dessous)

=> dernière soumission sur Codalab

=> version finale de la video

Semaine 11:

Preparation de la presentation en classe.

Dimanche 14 Avril : Dernière soumission au challenge. 10 points.

Chaque binome 3 points: clarete, originalite, test.

+ 1 point pour efficacite du code (meilleur que starting kit).

Soumettre le code sur Codalab. Rendre la soumission publique. Envoyer le numero de soumission a info232@chalearn.org. Mettre TOUT le code (visualisation+prepro+model).

Mardi 16 Avril : Version finale des diapos. <=10 diapos{background, data, methods, results, conclusion}

==> Mercredi 17 Avril et Vendredi 19 Avril : Présentation des projets en classe. C'est la presentation qui est notee, pas juste les diapos.

APPORTEZ DES SNACKS A PARTAGER POUR FAIRE LA FETE!

Deux points pour chaque critère:

1) Flow: Organize the flow of the presentation in a logical way. Terminate with a message to the students of next year.

2) Charism: Make your talk accessible to a diverse audience and convey your message with enthusiasm and humor.

3) Balance: Limit your talk to less than 10 not-too-busy slides balancing well each topic. Practice explaining every single thing you show on the slides, so you do not exceed your time limit.

4) Simplicity: Use as little text as possible in the slides, avoid complex notations. Avoid cluttering your slides (one idea per slide).

5) Illustrations: Avoid tables of numbers and rather use colorful graphs with labeled axes with large enough fonts.

===================================

PERIODE DE GRACE POUR RAPPORT

Version finale-finale due DIMANCHE 28 AVRIL

30 points

BONUS (+5; faire une section séparée sur PAGES SUPPLEMENTAIRES):

+1 les 2 tableaux (pour le tableau 2, incluez les nouvelles méthodes que vous avez explorées et les performances de votre soumission finale).

+1 explication des méthodes du tableau 2.

+1 définir la métrique utilisée par votre challenge et fournir son code.

+1 définir la “cross-validation”.

+1 expliquer le sur-apprentissage.

STRUCTURE: 10 points FACILES

L’entête contient bien toutes les informations demandées. => 1

1) le nom du groupe administratif (1, 1bis, 2, 3, ou 3bis),

2) le nom de l’équipe (qui sera aussi son login Codalab),

3) le nom de tous les membres de l’équipe,

4) l’URL du challenge Codalab choisi,

5) Le NUMERO de la dernière soumission sur Codalab (c'est le submission ID dans le tableau "Public Submissions")

6) l’URL de la video Youtube (version finale du rapport seulement),

7) l’URL du repository Github de l’équipe où tout le code de l’équipe sera déposé.

8) L’URL des diapos de la présentation (mettre le PDF en ligne).

L’introduction contient: => 1

- motivation et contexte du problème choisi

- pourquoi vous avez choisi ce problème

- problématique et description des données

- de quel type de problème s’agit-il: classification ou regression?

- description de la métrique

Les contributions sont bien précisées en 3 sections: => 3 points total (un point par section)

- Visualisation

- Preprocessing

- Modèle prédictif

avec les noms des binômes associés aux questions.

Les figures et les graphes sont bien numérotés, ont des axes et des légendes => 1

Les figures et les graphes sont sont expliqués dans le texte => 1

Il y a suffisamment de references => 1

Les references sont numerotees et indiquees dans le texte => 1

Le rapport termine par une bonne conclusion resumant les principaux resultats et donnant un message pour les etudiants de l'an prochain => 2

ORIGINALITE (10 points) : L’approche, l’analyse et/ou les algorithmes proposés contiennent des idées originales émanent du groupe.

- La (ou les) méthode(s) choisies qui doivent etre differentes des exemples fournis par les M2 ou les profs.

- Une justification du (ou des) choix.

- Une explication de la contribution originale qui sera faite (nouvel algorithme, nouvelle implementation, et/ou comparaison systématique de méthodes.

- Une explication du pourquoi des ameliorations obtenues par la methode FINALE par rapport au starking kit de M2 ou d'autres methodes.

- Des references/citations pour supporter les affirmations ou donner du credit aux auteur de sotfware/algorithmes/methodes que vous avez utilise.

QUALITE SCIENTIFIQUE ET TECHNIQUE (10 points) :

- Les algorithmes sont decrits de manière claire.

- Les explications fournies sur les resultats sont bonnes.

- Méthodologie. Varier les options/paramètres/hyper-paramètres des fonctions/classes utilisées, utiliser la “cross-validation”.

- Les résultats sont bons.

Semaine 10: Semaine rouge (tout le monde doit etre present).

Nous passerons en revue votre rapport et les contributions de chacun [VOIR LES NOTES TEMPORAIRES]. Des suggestions d'amelioration seront faites.

Dimanche 7 Avril : Version finale du rapport + video + soumission de code avec preprocessing.

========= CONSEILS GENERAUX RAPPORT =========

INCLUDE OBLIGATOIREMENT SUR LA PREMIERE PAGE:

1) le nom du groupe administratif (1, 1bis, 2, 3, ou 3bis),

2) le nom de l’équipe (qui sera aussi son login Codalab),

3) le nom de tous les membres de l’équipe,

4) l’URL du challenge Codalab choisi,

5) Le NUMERO de la dernière soumission de CODE sur Codalab [DU TABLEAU PUBLIC SUBMISSION]

6) l’URL de la vidéo Youtube (version améliorée),

7) l’URL du repository Github de l’équipe où tout le code de l’équipe sera déposé.

8) L’URL des diapos de la présentation (mettre le PDF en ligne).

ORIGINALITE:

L'introduction du rapport sera organisée selon le plan suivant:

Background

Material and methods

Results

Conclusion

Reprenant les grandes lignes du rapport pour en souligner les contributions originales.

BONUS (+5; faire une section séparée sur UNE PAGE SUPPLEMENTAIRE):

+1 les 2 tableaux de bonus (pour le tableau 2, incluez les nouvelles méthodes que vous avez explorées).

+1 explications des méthodes du tableau 2.

+1 définir la métrique utilisée par votre challenge et fournir son code.

+1 définir la “cross-validation”.

+1 expliquer le sur-apprentissage.

======================

ORIGINALITE (10 points) : L’approche, l’analyse et/ou les algorithmes proposés contiennent des idées originales émanent du groupe.

Voir idees de GRAPHES.

QUALITE SCIENTIFIQUE ET TECHNIQUE (10 points) : Les algorithmes sont implémentés de manière claire et efficace. Les explications fournies dans le texte sont bonnes.

- Méthodologie. Varier paramètres, utiliser la cross-validation.

- Algorithmes bien expliqués.

- Test unitaires.

- Résultats et leur analyse.

PRESENTATION (10 points) : Le rapport est écrit clairement, bien présenté avec des figures et des graphes et une bibliographie. Les figures et les graphes sont bien numérotés, ont des axes et des légendes, et sont expliqués dans le texte.

STRUCTURE:

- Motivation et contexte.

- Problématique.

- Choix de la méthodologie.

- Résultats.

- Discussion et conclusion.

- Références.

- Exemples de code et bonus en annexe.

Semaine 9 : But = Préparer le rapport. Raffiner les graphes, introduire des barres d’erreur, comparer des méthodes.

Vous pouvez encore ameliorer la video et votre soumission sur Codalab jusqu'au 7 Avril.

Notes provisoires de soumission

Dimanche 31 Mars : Rendre une première version du rapport. Envoyez le PDF a info232@chalearn.org.

Rapport écrit (30 points):

Le rapport écrit ne devra pas excéder 6 pages + 1 page de bibliographie.

Le rapport devra inclure en entête :

1) le nom du groupe administratif (1, 1bis, 2, 3, ou 3bis),

2) le nom de l’équipe (qui sera aussi son login Codalab),

3) le nom de tous les membres de l’équipe,

4) l’URL du challenge Codalab choisi,

5) Le NUMERO de la dernière soumission de CODE sur Codalab [DU TABLEAU PUBLIC SUBMISSION]

6) l’URL de la vidéo Youtube (version améliorée),

7) l’URL du repository Github de l’équipe où tout le code de l’équipe sera déposé.

8) L’URL des diapos de la présentation (mettre le PDF en ligne).

Le rapport devra s’appuyer sur la proposition de projet et en développer les composantes,

expliquer les succès et les échecs, et les éventuels changements d’orientation (différents

choix d’algorithmes, améliorations). Suivre le schéma suivant: (1) Introduction avec brève

description du challenge et des données; (2) Description des algorithmes étudiés et pseudo-

code; (3) Résultats obtenus dans le challenge (inclure un tableau avec le leaderboard, des

graphes et des figures); (4) Discussion and conclusion (leçons apprises, message aux étudiants

de l’an prochain).

L’exigence absolue est que le code fonctionne. Il n’y aura pas de points au rapport si le code ne

fonctionne pas (c’est à dire si l’exécution du Jupyter notebook par les assistants ou le

professeur flanche ou le code soumis sur Codalab ne fournit pas les résultats indiqués dans le

rapport). Il n’y aura aussi pas de points au rapport si un des membres de l’équipe est convaincu

de plagiaire. Notez que cette politique s’applique à toute l’équipe : pas de points au rapport de

l’équipe si une seule des classes Python fournies ne marche pas ou un seul morceau de code

est copié : entraidez-vous !

En dehors de ces exigences absolues, le travail sera évalué selon les critères suivants:

1) Originalité (10 points) : L’approche, l’analyse et/ou les algorithmes proposés contiennent

des idées originales émanent du groupe.

2) Qualité scientifique et technique (10 points) : Les algorithmes sont implémentés de

manière claire et efficace. Les explications fournies dans le texte sont bonnes.

3) Présentation (10 points) : Le rapport est écrit clairement, bien présenté avec des figures et des graphes et une bibliographie.

Semaine 8 : Préparer des diapos et la vidéo. Obtenir de bons graphes et de bonnes visualisations des données et des résultats.

Dimanche 24 Mars : POUR RENDRE LES DEVOIRS, REMPLIR CE FORMULAIRE: https://goo.gl/forms/dRxbBa0uVFoSrK4m1

==> Link to video Youtube link (3 minutes) (/10 points)

==> Link to PDF brouillon diapos (max 15 diapos) on Github (pas de note, mais pour simple retour)

==> Second version of your Codalab submission to improve your grades (/10 points). PRELIMINARY GRADES ARE HERE.

DEBUG TIPS:

- Make sure to submit your CODE (not results).

- Give meaningful names to your submission zip files to identify them more easily.

- Test your code first on your local computer to make sure it works. You should have a main in your model.py that allows to do a test then also try it into the Jupyter notebook.

- Common errors include indentation errors. Copy the indentation from previous lines (it may include a combination of spaces and tabs that look alike to the eye but not to the computer).

- Remove the pickle, submit ONLY metadata and model.py in a zip file NOT containing the top directory.

- Look at the log files if there is an error.

- If your submit results (only for debug purposes): use the public data to generate the results (NOT the sample data).

- Clarity: Add comments and prints in your code; make your code modular (to get your 3 points of clarity)

- Originality: Include some personal code and HIGHLIGHT IT e.g. ### NEW CONTRIBUTION OF GROUP XXX ###: A new algorithm OR automatic selection of best model, preprocessing, and/or hyper-parameters (by cross-validation).

- Tests: Add a main at the bottom of model.py showing how you tested your code.

- Preprocessing: Make a separate class for the preprocessor. Keep preprocessing and model in 2 separate files (easier for development). Using pipelines is a good idea to combine preprocessing and model.

To win without preprocessing: show in your code that you compared some model with and without preprocessing and that the model without won.

VIDEO:

Suivre le schéma suivant: (1) Introduction avec brève description du challenge et des données; (2) Description des algorithmes étudiés et pseudo-code; (3) Résultats obtenus dans le challenge (inclure un tableau avec le leaderboard, des graphes et des figures); (4) Discussion and conclusion (leçons apprises, message aux étudiants de l’an prochain).

Notation de la video:

1) La complétude et l'équilibre (4 points): Le projet est entièrement expliqué et assez de temps est consacré à chaque sujet.

2) La clarté et la logique (3 points): Le projet est clairement présenté avec de bons chiffres et bon texte, et une séquence logique.

3) Les qualités de communication et le charisme (3 points): La présentation capte l'attention de l'auditoire et son imagination, fait partager sa conviction, attire le public à en savoir plus.

Semaine 7: Soumission de votre propre code sur CODALAB (sur 10 points maximum, incluant les bonus).

Pas de points du tout si retard (devoir du Dimanche 3 Mars) ou code qui ne fonctionne pas. Le code doit aussi etre mis sur Github.

- Clarete du code: 3 points

- Originalite: 3 points

- (Bons) tests presents avec le code: 3 points

- Efficacite: 1 point (resultats meilleur que la methode de base)

- Preprocessing: -3 points si pas de preprocessing

- Bonus:

* equipe gagnante + 2 points

* soumission a partir des "raw data" + 3 points

Semaine 6: Revision de la proposition de projet (sur 15 points, note maximale, incluant les points de bonus)

AREAL et PERSODATA: Commencez par travailler sur les données préprocessées.

[SUIVRE CE MODELE] <= C'est ici que vous trouverez le modèle des tableaux de bonus!

BONUS (5 points supplémentaires):

- Tableau de statistique des données (2 points): FACILE, similaire a ce que vous avez fait dans les TPs TP1 et TP2.

- Tableau de performances d’algorithmes (3 points): Vous pouvez juste modifier le code de sample_code_submission. Pour tous les challenges sauf L2RPN, il vous suffira d'appeler la méthode de scikit-learn appropriée. Pour les lignes "Training" et "CV", vous pouvez utiliser votre le notebook README.ipynb pour obtenir les scores d'apprentissage et de cross-validation. Pur la ligne "Valid(ation", vous devez soumettre sur Codalab pour obtenir les performances.

A cette occasion, apprenez a modifier votre projet et le Jupyter notebook de votre starting kit et a utiliser Github pour “poussez” vos changements sur le repo. Voir [TP3].

TEXTE (5 points):

Pour réussir: faites des recherches sur Internet pour trouver de bonnes idées; n’oubliez pas de CITER VOS SOURCES. Le [MODELE] vous donne la structure a suivre pour l'introduction.

L’entête contient bien toutes les informations demandées. => 0.5

- Team name (e.g. health, orbiter, …):

- Project name (e.g. HADACA, AREAL, …:

- Group name (M, V1, V2):

- Team members:

- Challenge URL:

- Github repo of the project:

L’introduction contient: => 1

- motivation et contexte du problème choisi

- pourquoi vous avez choisi ce problème

- problématique et description des données

- de quel type de problème s’agit-il: classification ou regression?

- description de la métrique (voir la page "Evaluation" de votre challenge)

- resumé et justification des méthodes choisies par les binômes.

Les contributions des différents binômes sont bien précisées en 3 sections, avec les noms des binômes associés aux questions.: => 0.5

- Visualisation: regardez pour inspiration la doc de scikit-learn et de Matplotlib et les TPs TP1 et TP2.

- Preprocessing: regardez les methodes de reduction de dimension, clustering, et preprocessing.

- Modèle prédictif: regardez les methodes de supervised-learning de scikit-learn. Pour SURVIVAL, regardez aussi la doc de lifelines. Pour L2RPN check your options.

Chaque binôme a indiqué dans sa section: (1 point par binôme => 3 points)

- La (ou les) méthode(s) choisies

- Une justification du (ou des) choix.

- Une explication de la contribution originale qui sera faite (nouvel algorithme, nouvelle implementation, et/ou comparaison systématique de méthodes.

- Une explication des ameliorations attendues par rapport au starking kit de M2 (ce qui implique qu’il faut expliquer ce qu’ils ont fait et contraster votre approche).

- Des references/citations pour supporter les affirmations ou donner du credit aux auteur de sotfware/algorithmes/methodes que vous allez utiliser.

FIGURES (5 points):

Les figures sont:

- Informatives (de preference montrent des choses intéressantes sur VOS données et ne recopient pas juste les figures de README.ipynb).

- Numérotées

- Elles on de labels sur les axes, un titre et des légendes lisibles et informatives.

- Référencées dans le texte.

- Assorties d’une citation de leur source.

APPENDICES (5 points):

Le pseudo-code ou le schema des classes a: (1.5 points par binôme => 4.5 points)

- Une structure qui permet de comprendre comment les 3 modules (visualisation, preprocessing, et classification) vont interagir. Apprendre a se servir des pipelines pour le groupe preprocessing.

- Une structure simple et claire qui permet de comprendre la logique de la méthode.

- Suffisamment de details pour que quelqu’un puisse implementer la méthode.

- Pour chaque module, son TEST unitaire. Ceci compte pour 0.5/1.5 points dans la note du pseudo-code: expliquez, meme en langage courant, comment vous allez tester votre code.

Note: profitez-en pour bien organiser votre code dans votre repo: chaque binome peut avoir un sous-repertoire different et travailler sur une classe python differente. Depuis le notebook, on peut indiquer le chemin des differents sous-repertoires avec path.append(my_dir).

Les references bibliographiques sont: => 0.5 points

- Dans un format standard.

- Numérotées.

- Référencées dans le texte.

- Suffisamment nombreuses.

- Adéquates (donnent bien du credit aux auteurs originaux des méthodes et algorithmes).

Semaine 5 (TP3): Soumission a votre propre projet (starting kit seulement)

La composition des equipes a été revisee, verifiez la [LISTE].

Venez OBLIGATOIREMENT le bon jour pour rencontrer votre équipe. Ceci est une SEMAINE ROUGE: les absents ne peuvent pas bénéficier des points de leur équipe pour le devoir:

Proposition de projet (15 points) à rendre avant le 17 Février par le chef de projet (note de groupe) par [EMAIL].

Chaque équipe (pas chaque binome) devra écrire un document de 2 pages + appendices [SUIVRE CE MODELE][CET EXEMPLE A EU UNE BONNE NOTE]:

    • Une page de texte et une page de figures expliquant le challenge choisi et décrivant les algorithmes qui seront implémentés (5 points pour le texte et 5 points pour les figures).

    • Autant de pages que nécessaire avec le pseudo-code des algorithmes et les références (5 points).

CECI EST UN PLAN DE TRAVAIL.

La première heure nous vous guiderons pour créer le repo de votre groupe sur Github, verifier que le starting kit marche bien, et faire une soumission de test sur Codalab, voir [INSTRUCTIONS].

La deuxième heure vous pourrez vous répartir les tâches entre 3 binômes:

- preprocessing,

- prediction, et

- visualisation.

Semaine 4 (TP2): Preprocessing et prediction

La composition des equipes a ete revisee, verifiez la [LISTE].

Venez de preference le bon jour pour rencontrer votre equipe.

Le 2eme TP doit etre rendu au plus tard le 10 Fevrier. Voir [INSTRUCTIONS].

Pour avoir les points du TP, vous devez "pousser" vos reponses sur votre Github repo et faire votre premiere soumission sur [CODALAB].

​Les notes de ce deuxieme TP sont individuelles: chacun dont rendre sont propre TP. Il est note sur 5.

Semaine 3 (TP1): Visualisation

Les equipes on ete formees, voir la [LISTE].

Venez de preference le bon jour pour rencontrer votre equipe.

Le PREMIER TP doit etre rendu au plus tard le 3 Fevrier. Voir [INSTRUCTIONS].

Pas de points si voir ne fournissez pas l'URL de votre Github repo a temps en remplissant le [FORMULAIRE].

​Les notes de ce premier TP sont individuelles: chacun dont rendre sont propre TP. Il est note sur 5.

Semaine 2: Presentation des M2

Cette semaine les M2 vous ont presente les projects. Pour 5 points (quelque soient vos reponses) repondez au questionnaire qui me permettra de faire les groupes:

Les projets a choisir: [HERE]

Le questionnaire (date butoir Dim Jan 27): [HERE]

A partir de la semaine prochaine: plus de cours, seulement des TPs au bat 336. Au choix:

Groupe M: Mercredi 13h30-15h30 (Nautilus A ou B)

Groupe V1: Vendredi 8h15-10h15 (Info 213/214)

Groupe V2: Vendredi 15h45-17h45 (Info 209/213)

Si vous voulez aller a la classe (facultative) pour apprendre a programmer en Python (vendredi 15h15-17h45) choisissez de venir aux TPs des groupes M ou V1 (car elle est en meme temps que le groupe V2).

Semaine 1: Introduction

Slides of the presentation: [HERE]

Devoir = Questionnaire (return before Sunday Jan 27): [HERE]

Full syllabus of the class: [HERE]

In previous years, homework was posted on this blog.