.. _l-ensae2016: ENSAE 14/11/2016 ================ .. sharenet:: :facebook: 1 :linkedin: 2 :twitter: 3 :head: False Source: `Blog Kaggle `_. Présentation ++++++++++++ * :ref:`kagglereview2016rst` Librairies ++++++++++ * `VLFeat `_ : Vision Lab Features Library * `MXNet Tutorial and Hand Written Digit Recognition `_ : deep learning with MXNet * `XGBFIR `_ : Xgbfir is a XGBoost model dump parser, which ranks features as well as feature interactions by different metrics. * `libFM `_ : Library for factorization machines * `pywFM `_ : pywFM is a Python wrapper for Steffen Rendle's libFM * `Regularized Greedy Forest (RGF) in C++ `_ * `Quizlet `_ (voir `Quizlet `_) * `LightGBM `_ * `jellyfish `_ Idées / algorithmes +++++++++++++++++++ * :ref:`Les bases de train et test sont-elles homogènes ? ` : une idée simple pour vérifier cette hypothèse et corriger l'apprentissage et façon à coller au plus près des données d'évaluation, lire `Adversarial validation, part one `_. * `RANSAC `_ : abréviation pour **RANdom SAmple Consensus**, `scikit-learn/RANSAC `_ * `Normalized compression distance `_ : mesure la proximité entre deux séquences d'objets * `The Boosting Margin, or Why Boosting Doesn’t Overfit `_ * `Ad Click Prediction: a View from the Trenches `_ (FTRL-Proximal online learning algorithm) * `DMLC Model Gallery `_ * `KAGGLE ENSEMBLING GUIDE `_ * `Optimization of AMS using Weighted AUC optimized models `_ Liens +++++ * 09/2016 - `The Allen AI Science Challenge `_ : Is your model smarter than an 8th grader? * `The Allen AI Science Challenge, Winner's Interview: 3rd place, Alejandro Mosquera `_ * `comparaison des trois solutions gagnantes `_ * 09/2016 - `Predicting Red Hat Business Value `_: Classify customer potential * `Red Hat Business Value Competition, 1st Place Winner's Interview: Darius Barušauskas `_ * 09/2016 - `TalkingData Mobile User Demographics `_: Get to know millions of mobile device users * `TalkingData Mobile User Demographics Competition, Winners' Interview: 3rd Place, Team utc(+1,-3) | Danijel & Matias `_ * 08/2016 - `Grupo Bimbo Inventory Demand `_ : Maximize sales and minimize returns of bakery goods * `Grupo Bimbo Inventory Demand, Winners' Interview: Clustifier & Alex & Andrey `_ (+FFM, + FTRL) * 07/2016 - `Facebook V: Predicting Check Ins `_ : Identify the correct place for check ins * `Facebook V: Predicting Check Ins, Winner's Interview: 1st Place, Tom Van de Wiele `_ * `Facebook V: Predicting Check Ins, Winner's Interview: 2nd Place, Markus Kliegl `_ (`GitHub `_) * `Facebook V: Predicting Check Ins, Winner's Interview: 3rd Place, Ryuji Sakata `_ * 07/2016 - `Avito Duplicate Ads Detection `_ : Can you detect duplicitous duplicate ads? * `Avito Duplicate Ads Detection, Winners' Interview: 1st Place Team, Devil Team | Stanislav Semenov & Dmitrii Tsybulevskii `_ * `Avito Duplicate Ads Detection, Winners' Interview: 2nd Place, Team TheQuants | Mikel, Peter, Marios, & Sonny `_ * 06/2016 - `Draper Satellite Image Chronology `_ : Can you put order to space and time? Le jeu de données est consitué d'images satellites prises aux mêmes endroits sur une durée de cinq jours. Elles sont mélangées. Il faut retrouver leur ordre chronologique. * `Draper Satellite Image Chronology: Pure ML Solution | Vicens Gaitan `_ (`R code `_) * `Draper Satellite Image Chronology: Pure ML Solution | Damien Soukhavong `_ * 04/2016 - `Home Depot Product Search Relevance `_ : Predict the relevance of search results on homedepot.com * `Home Depot Product Search Relevance, Winners' Interview: 2nd Place | Thomas, Sean, Qingchen, & Nima `_ * 04/2016 - `Yelp Restaurant Photo Classification `_ : Predict attribute labels for restaurants using user-submitted photos * `Yelp Restaurant Photo Classification, Winner's Interview: 1st Place, Dmitrii Tsybulevskii `_ * `Yelp Restaurant Photo Classification, Winner's Interview: 2nd Place, Thuyen Ngo `_ * 02/2016 - `Homesite Quote Conversion `_ : Which customers will purchase a quoted insurance plan? * `Homesite Quote Conversion, Winners' Write-Up, 1st Place: KazAnova | Faron | clobber `_ * `Homesite Quote Conversion, Winners' Interview: 2nd Place, Team Frenchies | Nicolas, Florian, & Pierre `_ * 12/2015 - `Second Annual Data Science Bowl `_ : Transforming How We Diagnose Heart Disease * `Diagnosing Heart Diseases in the Data Science Bowl: 2nd place, Team kunsthart `_ * 12/2015 - `How Much Did It Rain? II `_ : Predict hourly rainfall using data from polarimetric radars * `How Much Did It Rain? II, Winner's Interview: 1st place, PuPa (aka Aaron Sim) `_ * 10/2015 - `Truly Native? `_ : Predict which web pages served by StumbleUpon are sponsored * `Dato Truly Native? Winner's Interview: 2nd place, mortehu `_ * 08/2015 - `Liberty Mutual Group: Property Inspection Prediction `_ : Quantify property hazards before time of inspection * `Liberty Mutual Property Inspection, Winner's Interview: 1st place, Qingchen Wang `_ * 07/2015 - `ECML/PKDD 15: Taxi Trajectory Prediction (I) `_ : Predict the destination of taxi trips based on initial partial trajectories * `Taxi Trajectory Winners' Interview: 1st place, Team ? `_ * 07/2013 - `Facebook Recruiting III - Keyword Extraction `_ : Identify keywords and tags from millions of text questions * `Keyword Extraction and Semantic Tag Prediction `_ FAQ +++ .. faqref:: :title: Les bases de train et test sont-elles homogènes ? :lid: faq-train-test-homogeneous Lors d'une compétition, on dispose le plus souvent d'un jeu d'apprentissage :math:`(X_t, Y_t)` et d'un jeu qui sert à évaluer les participants qui ne connaissent que :math:`X_e`. Seul le jury connaît les :math:`Y_e` correspondant. *Les bases de train et test sont-elles homogènes ?* Pour répondre à cette question, on apprend un classifieur qui est appris sur une base réordonnée aléatoirement à partir de :math:`(X_t \cup X_e, (x_i \in X_e)_i)`. Autrement dit, on essaye de construire un classifieur qui prédit si l'observation :math:`x_i` appartient au jeu d'apprentissage ou à celui d'évaluation. Si le classifieur n'y parvient pas, alors les deux bases sont homogènes. *Que faire dans les deux bases ne sont pas homogènes ?* Une option consiste à utiliser le classifieur :math:`C_e` précédent pour déterminer les observations de la base d'apprentissage qui sont proches de la base d'évaluation (le classifieur les classes dans :math:`X_e`) et de les surpondérer pour estimer le modèle :math:`M_c` lié à au problème de la compétition. On peut choisir comme pondération le score de classification du modèle :math:`C_e`. Cela revient à corriger l'erreur d'apprenissage en construisant un estimateur de l'erreur que le modèle ferait sur la base d'évaluation : .. math:: E(X_e, M_c) = \mathbb{E}( E(X, M_c) | X \in X_e ) \sim \sum_i e(x_i, M_c) \mathbb{P}(x_i \in X_e) Par extension, si les bases d'apprentissage et d'évaluation ont été construites de telle sorte qu'elles soient homogènes, un modèle capable de bien prédire l'appartenance d'une observation à l'une des deux bases fait nécessaire du surapprentissage (ou *overfitting*). Il en sera de même si le modèle est utilisé pour prédire autre chose. **Séries temporelles** Dans le cas des séries temporelles, le découpage apprentissage / évaluation est très souvent temporel. Les données passées sont utilisées pour l'apprentissage, les données futures pour l'évaluation. S'il est possible de construire un classifier capable de déterminer si une observation :math:`x_i` fait partie du passé ou du futur, cela signifie certainement qu'il est préférable de prétraiter la série pour enlever une tendance.