ensae-teaching-cs 0.10.3120
Materials for teachings, notebooks, helpers...
License: MIT
Keywords: ensae_teaching_cs,ENSAE,sqllite,database,teachings


.. image:: https://github.com/sdpython/ensae_teaching_cs/blob/master/_doc/sphinxdoc/source/phdoc_static/project_ico.png?raw=true
    :target: https://github.com/sdpython/ensae_teaching_cs/

.. _l-README:

ensae_teaching_cs: teaching materials, algorithmic, machine learning
====================================================================

.. image:: https://travis-ci.org/sdpython/ensae_teaching_cs.svg?branch=master
    :target: https://travis-ci.org/sdpython/ensae_teaching_cs
    :alt: Build status

.. image:: https://ci.appveyor.com/api/projects/status/ko5g064idp5srm74?svg=true
    :target: https://ci.appveyor.com/project/sdpython/ensae-teaching-cs
    :alt: Build Status Windows

.. image:: https://circleci.com/gh/sdpython/ensae_teaching_cs/tree/master.svg?style=svg
    :target: https://circleci.com/gh/sdpython/ensae_teaching_cs/tree/master

.. image:: https://badge.fury.io/py/ensae_teaching_cs.svg
    :target: http://badge.fury.io/py/ensae_teaching_cs

.. image:: https://img.shields.io/badge/license-MIT-blue.svg
    :alt: MIT License
    :target: http://opensource.org/licenses/MIT

.. image:: https://codecov.io/github/sdpython/ensae_teaching_cs/coverage.svg?branch=master
    :target: https://codecov.io/github/sdpython/ensae_teaching_cs?branch=master

.. image:: http://img.shields.io/github/issues/sdpython/ensae_teaching_cs.png
    :alt: GitHub Issues
    :target: https://github.com/sdpython/ensae_teaching_cs/issues

.. image:: https://api.codacy.com/project/badge/Grade/80a874c0eafd4ea68f3493d73b43f0c5
    :target: https://www.codacy.com/app/sdpython/ensae_teaching_cs?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=sdpython/ensae_teaching_cs&amp;utm_campaign=Badge_Grade
    :alt: Codacy Badge

.. image:: http://www.xavierdupre.fr/app/ensae_teaching_cs/helpsphinx/_images/nbcov.png
    :target: http://www.xavierdupre.fr/app/ensae_teaching_cs/helpsphinx/all_notebooks_coverage.html
    :alt: Notebook Coverage

.. image:: https://pepy.tech/badge/ensae_teaching_cs
    :target: https://pypi.org/project/ensae_teaching_cs/
    :alt: Downloads

.. image:: https://img.shields.io/github/forks/sdpython/ensae_teaching_cs.svg
    :target: https://github.com/sdpython/ensae_teaching_cs/
    :alt: Forks

.. image:: https://img.shields.io/github/stars/sdpython/ensae_teaching_cs.svg
    :target: https://github.com/sdpython/ensae_teaching_cs/
    :alt: Stars

.. image:: https://img.shields.io/github/repo-size/sdpython/ensae_teaching_cs
    :target: https://github.com/sdpython/ensae_teaching_cs/
    :alt: size

This page gives access to the content of practical sessions I give at the
`ENSAE <http://www.ensae.fr/>`_. They are based on Python. The project
is hosted on GitHub can be modified by sending me pull requests:

* `GitHub/ensae_teaching_cs <https://github.com/sdpython/ensae_teaching_cs/>`_
* `documentation <http://www.xavierdupre.fr/app/ensae_teaching_cs/helpsphinx3/index.html>`_
* `Blog <http://www.xavierdupre.fr/app/ensae_teaching_cs/helpsphinx/blog/main_0000.html#ap-main-0>`_

Contributions
-------------

Started in 2014/04. **Contributors:** `Xavier Dupré <http://www.xavierdupre.fr/>`_,
Anne Muller, Elodie Royant, Matthieu Bizien,
Nicolas Rousset, Jérémie Jakubowicz, Gilles Drigout,
Gaël Varoquaux, Xavier Dupré, ENSAE's students.

Setup
-----

Continuous files
`travis.yml <https://github.com/sdpython/ensae_teaching_cs/blob/master/.travis.yml>`_ or
`appveyor.yml <https://github.com/sdpython/ensae_teaching_cs/blob/master/appveyor.yml>`_
give indications on how to setup a machine to run most of the notebooks.
All notebooks do not run on travis or appveyor due to the excessive
amount of times it requires. They are being run a debian machine every week.
A `coverage page <http://www.xavierdupre.fr/app/ensae_teaching_cs/helpsphinx3/all_notebooks_coverage.html>`_
reports on which ones run and the last time it was run.

Local Continuous Integration
----------------------------

Some of the tools used to modify and run all the notebooks
but they are not optional in most of the cases.

`7zip <http://www.7-zip.org/>`_,
`Chrome <https://www.google.fr/chrome/browser/desktop/>`_,
`CMake <https://cmake.org/>`_,
`Graphviz <http://www.graphviz.org/>`_,
`Git <https://git-scm.com/>`_,
`GitHub <https://desktop.github.com/>`_,
`Java 64 bit <https://www.java.com/fr/download/manual.jsp>`_ (for Spark),
`Jenkins <https://jenkins.io/>`_ (CI),
`Miktex Basic Installer 64 bit <https://miktex.org/download>`_ (formula in the documentation)
(check the option to silently install new packages),
`Pandoc <http://pandoc.org/>`_ (documentation),
`Python <https://www.python.org/>`_ 3.7, 64 bit
(do not add the interpreter on the default `PATH` on Windows),
`Scite <http://www.scintilla.org/SciTE.html>`_ (Windows),
`Visual Studio 2017 Community Edition <https://www.visualstudio.com/fr/vs/community/>`_ (Windows)
(check C++, C#, Python, CLang) (Cython).

A *Jenkins* server was installed on a *debian* machine
to run all the notebooks every week.
*Jenkins* requires a few extensions:
`Last Console Output <https://wiki.jenkins.io/display/JENKINS/Display+Console+Output+Plugin>`_,
`Next Executions <https://wiki.jenkins.io/display/JENKINS/Next+Executions>`_,
`Text File <https://wiki.jenkins-ci.org/display/JENKINS/Text+File+Operations+Plugin>`_.
Extension for `Jupyter <http://jupyter.org/>`_ notebooks
can be installed with the following instructions but this is
really optional.

::

    pip install widgetsnbextension
    jupyter nbextension enable --py --sys-prefix widgetsnbextension

A local PyPi server needs to be installed:

::

    pypi-server.exe -u -p 8067 --disable-fallback ..\..\local_pypi\local_pypi_server

Some Python scripts and notebooks use
`keyring <https://pypi.python.org/pypi/keyring>`_
to retrieve passwords, usually to access private data.
You would have to set them to point to your own data.
The following command line tells how to automatically add
Jenkins jobs to a local Jenkins server:

::

    python setup.py local_jenkins --help

.. _l-HISTORY:

=======
History
=======

current - 2021-01-04 - 0.00Mb
=============================

0.9.3079 - 2020-11-09 - 6.67Mb
==============================

* `105`: Add function to add class names to results for ImageNet competition (2020-11-09)
* `103`: Add way to retrieve shapefiles for French departments (2020-10-12)
* `100`: Fix API issue with worldbank (notebook TD2A_eco_les_API.ipynb) (2020-06-25)
* `99`: Fix SVC issues with scikit-learn 0.23 (2020-05-14)
* `98`: Update notebook after update to pandas 1.0 (2020-02-26)
* `81`: Notebook sur openmp (2020-01-30)
* `97`: Notebook sur topk with heap (2019-12-16)

0.9.2894 - 2019-11-05 - 6.65Mb
==============================

* `96`: Fix bug in 2048, see pystrat2048 (2019-11-04)
* `93`: Implémenter la solution de l'énigme des dés + notebook (2019-11-04)
* `94`: Enoncés et corrections du TD noté 2019-2020 (2019-10-22)
* `95`: Fix notebook on tastekid API (url has changed) (2019-10-20)

0.9.2878 - 2019-10-15 - 6.65Mb
==============================

* `92`: Add notebooks and helpers to load data for students projects (2019-10-15)

0.9.2873 - 2019-09-30 - 6.39Mb
==============================

* `91`: Implements LassoRandomForestRegressor which reduces the number of trees of a random forest (2019-09-30)
* `88`: Fix failing unit test due to the move of the website. (2019-09-30)
* `90`: Notebooks for session 10/3 (2019-09-28)

0.9.2865 - 2019-09-25 - 6.39Mb
==============================

* `89`: Ajout de notebooks sur la sélection de variable appliquée à la sélection d'arbres d'une random forest (2019-09-25)
* `87`: Ajout de notebooks pour la séance du 17/10/2019 (2019-09-14)
* `86`: Implements a random strategy for 2048. (2019-08-25)
* `85`: Simulation d'un pendule (2019-08-11)
* `84`: Modification de la simulation d'une corde pour simuler un pendule (2019-08-11)
* `83`: Préparation pour l'année 2019-2020 (2019-08-10)
* `82`: notebook TD2A_eco_les_API is broken (2019-07-17)
* `80`: removes smopy, not maintained anymore (2019-06-05)
* `77`: corriger le notebook sur le morse (2019-04-18)
* `76`: remove test on splinter (2019-04-06)
* `75`: fix link for chromedriver in install_chromedriver (2019-04-06)
* `74`: remove waffle (deprecated) (2019-03-16)
* `73`: api google plus disappeared, a notebook using it must be changed (2019-03-14)
* `72`: add page on ml visualisation (2019-03-12)
* `71`: fix bad links in FAQ (2019-02-21)
* `70`: publishing fails (2019-02-21)
* `69`: add code to detect a specific pattern in code (2018-12-11)
* `68`: td noté + correction TD noté 2018 (2018-10-23)
* `67`: move velib to ensae_projects (2018-10-14)
* `66`: ajouter un notebook sur SSA (2018-10-14)
* `65`: replaces RandomizedPCA with PCA(svd_solver="randomized") (2018-10-01)
* `64`: terminer la correction sur le clustering (2018-09-30)
* `63`: parler de plotly offline, réduire la taille des notebooks sur la visualisation (2018-09-23)
* `62`: remove any link to cspython (2018-08-24)
* `60`: remove dependency on fastcluster (2018-07-29)
* `40`: ajouter geopandas (2018-07-27)
* `38`: replace basemap by cartopy (2018-07-27)
* `42`: split deep learning, make it a separate package (2018-07-02)
* `59`: fix images on page Tests unitaires, setup et ingéniérie logiciel (correction) (2018-06-08)
* `58`: remove function based on ffmpeg.zip (2018-05-27)
* `57`: fix notebook with pytorch (2018-05-27)
* `56`: remove ggplot (2018-05-24)
* `55`: remove old presentations (2018-05-23)
* `54`: replaces griddata by matplotlib.tri.Triangulation (2018-05-23)
* `53`: remove natgrid (2018-05-23)
* `51`: drops theano (2018-05-22)
* `50`: split magics commands into two files, one with C#, the other one without (2018-05-22)
* `49`: extracts the csharp part in a separate module: csharpy (2018-05-22)
* `48`: remove the custom version of pythonnet and use the official one (2018-05-13)
* `47`: move CategorytoIntegers into mlinsights (2018-05-08)
* `44`: replace open_html_form with ipywidgets (2018-04-19)
* `26`: add content about distributed algorithms (2018-04-17)
* `37`: move notebooks on spark in a new package (2018-04-14)
* `45`: fix version of chromedriver in TD2A_Eco_Web_Scraping (2018-04-01)
* `35`: ajouter quelques notes sur la notion de cout (2018-04-01)
* `22`: add direct link wherever pyensae download data is used (2018-04-01)
* `41`: remove skbase..., moved in papierstat, same for cheat sheets (2018-03-09)
* `36`: iterator correction proposal (RM) (2017-10-03)
* `33`: add notebook on streaming algorithms (2017-08-29)
* `28`: aborder d'autres librairies (2017-08-29)
* `23`: add summary to each notebook for the gallery (2017-08-29)
* `24`: ajouter des algorithmes numériques (2017-08-21)
* `34`: lien vers le bon repo pour l'anonymisation (2017-08-06)
* `31`: rédiger un ou deux notebook sur le traitement du langage (2017-05-05)
* `29`: techniques de webscrapping (2017-05-05)
* `15`: fix seance_5_intro_et_json.html (formatting + json) (2017-02-11)
* `18`: add unit test for notebook eco sql, matplotlib (2016-12-27)
* `12`: intégrer Python pour un économiste (2016-12-27)
* `8`: insister plus sur les algorithmes numériques pour les 1A écos (2016-12-27)
* `21`: Add correct definition for dist array in cython 1a tutorial (2016-10-10)
* `20`: Notebook ac modèles logistiques pour compétition codelab (2016-10-09)
* `17`: seance 2 eco (2016-10-03)
* `14`: Td sql (2016-09-25)
* `11`: @FAQ --> ..faqref (2016-08-04)
* `7`: complete page on industrial processes (2016-08-03)
* `10`: changer le style des zones bloc (2016-08-01)
* `9`: exposé finance, fixer le problème avec les tables d'indicateurs (2016-08-01)
* `6`: parler des annotations (2016-05-01)