scikit-learn - or why i joined an open source software project
TRANSCRIPT
Scikit-Learn(or why I joined an open source software project)
Gilles Louppe
Dept. of EE & CS, & GIGA-RUniversite de Liege, Belgium
October 30, 2013
Publishing scientific software matters 1
I Software is a central part of modern scientific discovery.
I Software developed in one field can often be applied toadvance a different field if the underlying mathematics iscommon.
I The public availability of code is a corner stone of thescientific method.
1. Pradal C. et al, Publishing scientific software matters, 2013.
if it’s not open and verifiable by others, it’s not science, orengineering, or whatever it is you call what we do 2
2. V. Stodden, The scientific method in practice.
As a young PhD student full of illusions...
I wanted to write useful scientific software, for me and others
Leverage existing software
... but I didn’t want to reinvent the wheel !
... and then I joined an OSS project
I An open source Machine Learning library in PythonI Classical and well-established algorithms
- Supervised and unsupervised algorithms- Model evaluation and selection- Data processing and feature engineering
Collaborative development
Software quality matters
Peer-reviewed and well-tested code
Simple and consistent API
from sklearn.ensemble import RandomForestClassifier
clf = RandomForestClassifier()
clf.fit(X_train, y_train)
y_pred = clf.predict(X_test)
Simple and consistent API
from sklearn.svm import SVC
clf = SVC()
clf.fit(X_train, y_train)
y_pred = clf.predict(X_test)
Simple and consistent API
from sklearn.linear_model import LassoCV
clf = LassoCV()
clf.fit(X_train, y_train)
y_pred = clf.predict(X_test)
Side effect 1 : Learn and improve your skills
I Strict programming practices
I Software management (release cycle, git, etc)
I Team work
Side effect 2 : People might start using your software
In research
In industry
Side effect 3 : You get to meet interesting people
(and eat pizzas !)
Start with small contributions...
Publish and share your research code
Join an open source software project
Questions ?