XD blog

blog page

2014-06


2014-06-30 Machine Learning with Python

Two very interesting blogs which illustrate how to do machine learning with Python:

I suggest the two following blog posts:

2014-06-20 Python et Excel

On m'a posé récemment la question des divers moyens de travailler avec Python et Excel. J'en connais trois :


more...

2014-06-18 Apprendre à programmer tout seul à l'adolescence

J'ai commencé la programmation à l'âge de 10 ans, avec mon premier ordinateur qui était un Amstrad CPC 464 avec des cassettes (voir aussi L'Amstrad CPC 464 fête ses 30 ans). C'était en Basic. Aujourd'hui les langages ont changé, ils permettent de faire plus rapidement une quantité de chose mais il est très probable que j'apprendrais de la même manière : en suivant pas à pas les exemples des premières pages d'un livre : Apprendre à programmer avec Python. Peut-être y ajouterai-je aujourd'hui un ou deux MOOC : Langage Python, MOOC consacré à la programmation (langage utilisé : Python), Programmation en Python pour débutants - Les bases.

Python est un bon choix de premier langage : il est à la fois très simple et très utilisé. Avec un peu d'anglais, il est facile de trouver une réponse à un problème comme un obscur message d'erreur.


more...

2014-06-17 Download data after redirection

I was looking for a way to download a file from http://sourceforge.net/ with the following code:

url = "something on source forge"
req = urllib.request.Request(url)
u = urllib.request.urlopen(req)
bin = u.read()
u.close()
with open("something.zip","wb") as f : f.write(bin)

It failed due to redirections. Doing it myself or trying to look for some module doing the job. Every query I tried on a search engine about getting a file from SourceForge in Python gave me links to Python projects on hosted on SourceForge. Not exactly what I was looking for. So...


more...

2014-06-14 Sports Scientist et Big Data

Les équipes de football équipent leurs joueurs de capteurs, un sur chaque jambe. Ils enregistrent leurs déplacement, les trajectoires des ballons, et moulinent le tout grâce à des statisticiens spécialisés dans le domaine : Big data football club, Le football professionnel à l'heure du big data, Big Data: Would number geeks make better football managers?. Sports Scientist est le terme qui regroupe les métiers qui étudient le sport sous un angle scientifique. Le statisticien est devenu l'un d'entre deux.

2014/10/30

Un article plus récent paru sur le sujet : La Data Révolution (dans le football et l'Equipe).

2015/02/01

Un autre article plus récent paru sur le sujet : Crowdsourcing ou algorithme : comment évaluer le prix d’un joueur de foot ? (rue89).

2014-06-11 Torsion de problèmes

Il n'existe le plus souvent aucun algorithme qui réponde exactement à un problème, surtout si c'est le vôtre. Mais ça ne veut pas dire qu'il n'existe pas de solution. Avec un peu d'imagination, il faut arriver à tordre le problème initial pour exploiter des algorithmes connus. Cette torsion sera d'autant plus facile qu'on connaît d'algorithmes. Par exemple, voici trois problèmes :

Et voici trois classes d'algorithmes :

Sauriez-vous apparier un problème avec une classe d'algorithmes qui mèneraient à la solution ?

Un indice : Inférer les trajectoires des velib

2014-06-06 De l'usage de Python pour réduire le nombre de régions

C'est un article qui a été repris dans Le Monde d'aujourd'hui où on expose ce que pourraient être les régions si on tenait compte des déplacements à l'intérieur de la métropole : Réforme des régions : et si Hollande avait laissé les bigdata décider ? Découvrez le Régionator3000 ! La méthode s'appuie sur des données produites par l'INSEE : Base sur les flux de mobilité : mobilités professionnelles (déplacements domicile - lieu de travail). L'idée est simple : faire en sorte que la majorité des français habitent et travaillent au sein de la même région et donc réduire le nombre de français qui habitent et travaillent dans deux régions différentes. Je n'aime pas trop le titre qui cite les Big Data alors que ce n'en sont pas vraiment : le résultat est produit avec un script Python et le module scikit-learn et les données ne pèsent pas plus de 8 Mo. Mon propos n'est pas de dire que cette répartition est meilleure qu'une autre. Elle ne prend qu'une donnée en compte - les déplacements quotidien des gens -. C'est également une photo du présent qui n'est pas nécessairement celle qu'on pourrait avoir dans dix ans. Il eut été intéressant d'étudier l'évolution des résultats sur quelques décennies. On constate aussi que la Bretagne et la Corse font partie de la même région. Mon propos est plus de dire que c'est un élément de réflexion qui est devenu tout aussi accessible que les autres même s'il repose sur une méthode complexe : un clustering dans un graphe. Qui plus est, cela a été réalisé en Python.

Ce qu'on reproche probablement à la solution du gouvernement est qu'elle n'est pas expliquée. En cela, elle apparaît arbitraire. Puisqu'elle utilise une méthode qu'on ne peut accuser d'un quelconque biais, l'approche scientifique paraît plus objective, plus équitable et donc plus acceptable. Cela dit, il est vrai qu'on peut trafiquer les données en amont.

2014-06-05 Tout est scandale

Un ton scandaleux est toujours plus prompte d'attirer l'attention du lecteur et dès qu'un sujet est éligible, l'article devient le moyen de clouer au pilori l'auteur du forfait. Récemment, une des entreprises à avoir subi les foudres des journalistes est la SNCF : Pour renouveler ses TER, la SNCF commande des rames... trop larges. Victime d'une erreur de communication avec Réseaux ferré de France (RFF), il faudra raboter les certains quais de gare pour laisser passer de nouveaux trains. Même si le montant paraît important, rapporté à la somme totale, il est petit (moins de 1%). Ensuite, il n'est dit à aucun moment que les nouveaux trains sont trop larges. On peut raisonnablement penser qu'aucun voyageur ne se plaindra d'avoir plus d'espace. L'erreur de la SNCF serait simplement de ne pas avoir anticiper ce coût. Ce serait une erreur finalement petite pour un projet qui semble dans l'ensemble réussi.

J'ai récemment écrit au sujet du nouveau logiciel de paie des fonctionnaires qui fut abandonné après un investissement nettement supérieur aux 80 millions dépensés par RFF pour raboter ses quais. L'article n'est pas très précis quant aux raisons qui ont mené à cet échec. Le ministère du Budget arrive même à tourner cela en un demi-échec puisque le projet était risqué. La décision de l'interrompre était la seule sensée. Elle aura permis d'éviter d'investir plus d'argent dans un échec annoncé.

De ces deux erreurs, je retiens qu'on se scandalise de celle qu'on pense comprendre. On s'en moque aisément même si c'est déjà un problème résolu. Pour celle qu'on ne comprend pas, on s'en remet à celui qui l'annonce sans forcément chercher plus loin. Et on se garde bien de commenter. Ca fait partie de ces petites choses qui nous surprennent quand on les apprend (comme Profs sans élèves: mais combien sont-ils au juste?) et dont on ne sait quoi faire.

2014-06-04 Commencez avec Python

Quelques pointeurs pour ceux qui veulent commencer avec Python.

Et pour les plus jeunes :

2014-06-03 pandas and openpyxl are not compatible anymore

I use a lot openpyxl with pandas. But the new version of openpyxl is not compatible anymore with pandas. So be careful to install an older version until this compatibility issue is fixed:

pip install openpyxl==1.8.6

2014-06-02 Débugger en Python

Je n'ai jamais vraiment débugger en Python. J'ai commencé à coder avec ce langage il y a plusieurs années et j'avoue que le débugger C++ de Visual Studio est inégalé. Il n'y avait pas d'équivalent en Python. Après plusieurs essais au cours des années, je reste toujours un peu sceptique. Débugger en Python prend du temps, l'exécution est très ralentie et il m'est arrivé souvent que mon pointeur d'arrêt soit ignoré. Ou encore, j'ai peiné à configurer l'outil (trop de paramètres). Bref, je débugge rarement, j'insère plus souvent des print. Toutefois, débugger sans utiliser de ligne de commande est possible :

Si vous êtes moins dans le visuel (ce qui n'est pas mon cas), il y a d'autres alternatives comme pudb et le débuggeur de base Debugger en Python: les bases de pdb.

En ce qui me concerne, je vais faire le shadock, si on ne peut pas débugger correctement en python, c'est que ça ne sert à rien.


Xavier Dupré