XD blog

blog page

2016-02


2016-02-28 Python 2.7 and Python 3, difference with multiple inheritance

There is a little difference in the way Python 3 and Python 2.7 handles multiple inheritance. Class Cl inherits from ClA and ClB. ClA defines method1, ClB defines suffix. The question is: Does method method1 from class ClA know about method suffix from class ClB? In Python 3, it does:

class C0:
    def suffix(self):
        raise NotImplementedError()

class ClA(C0):
    def method1(self):
        return "A.method1" + self.suffix()
        
class ClB(C0):
    def suffix(self):
        return "--B"
        
class Cl(ClA, ClB):
    pass

cl = Cl()
print(cl.method1())

[1]

A.method1--B

In Python 2.7?


more...

2016-02-26 Don't mix return and yield

When a function uses the keyword yield, it becomes a generator. A second function can accept this generator and produce another one as follows.

def generator(seq):
    for v in range(0,3):
        yield v+1
        
def generator2(gen):
    for r in gen:
        yield r

for v in generator2(generator(3)):
    print(v)

[1]

1
2
3

This is not the only way to write this function. Python 3.5 has introduction keyword yield from.


more...

2016-02-21 scikit-learn, dask and map reduce and examples on Python about machine learning

This is blog post about a couple of topics. The first one is about parallelizing a scikit-learn pipeline with dask. Pipelines and Reuse with dask. A little bit more and dask Introducing Dask Distributed. The module distributed distribute work on a local machine with syntax very close to map/reduce syntax. An example taken from the documentation:

def square(x): return x ** 2
def neg(x): return -x

from distributed import Executor
executor = Executor('127.0.0.1:8786')

A = executor.map(square, range(10))
B = executor.map(neg, A)
total = executor.submit(sum, B)
total.result()

I was being asked where to find examples, scripts about machine learning. Most of them happen to be written within a notebook such as the one posted on Kaggle: Python script posted on kaggle or examples from this blog: Yhat blog. Other examples can be found at ENSAE / Bibliography / Python for a Data Scientist. If you are looking for more examples of code, pick one kaggle competition and look for it on a search engine after adding the word "github", you may be able to find interesting projects. Just try kaggle github to begin with.

2016-02-05 Yann Le Cun au collège de France

Yann Le Cun au collège de France. Pour ceux qui découvrent : La leçon d’un maître de l'intelligence artificielle au Collège de France ou sur France Culture Le "Deep Learning", ou l'apprentissage profond des machines.

2016-02-03 Cancer, pesticides, Epidemium

A en croire l'émission Cash Investigation, la France est inondée de pesticides et beaucoup sont cancérigènes. Un article est même paru dans Le monde le lendemain : Pesticides : des substances toxiques, invisibles et omniprésentes. L'émission commence par la construction d'une carte qui recense les pesticides épandus sur le territoire français. Ces données sont a priori très difficiles à obtenir. Il seraient sans doute intéressant de les ajouter dans une version non agrégée aux jeux de données proposés par le challenge Epidemium. Les données que l'émission a regroupé semblent autrement plus détaillées que celles disponibles où la valeur Non renseigné semble assez fréquente.

Aujourd'hui, j'ai regardé les bouteilles de vin de façon différente. Au rayon bordeaux, la région la plus arrosée, j'ai cherché les vins bio.

2016-02-02 Leicester en tête du championnat grâce au Big Data

D'après l'article Football : il était une fois Leicester City..., le manager de Leicester a utilisé des statistiques pour recruter des joueurs méconnus mais prometteurs. Pour citer l'article : Selon lui, 200 000 euros d'investissement dans les algorithmes sont l'équivalent d'un budget de 10 millions d'euros en achat de joueurs. Leicester est premier du championnat aujourd'hui avec le meilleur buteur.


Xavier Dupré