Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Data Kaggler #1

Data Kaggler #1

L’objectif de la création de ce groupe est de découvrir et partager les meilleures recettes à utiliser dans les compétitions de Machine Learning organisées par Kaggle: Feature engineering, hyper paramètres, cross validation, stacking, ensemble, blending ainsi que la star des algo sur Kaggle 'eXtreme Gradient Boosting' seront quelques uns des sujets abordés.

Sommaire :
• Présentation & règles des compétitions Kaggle
• REX
• Présentation des compétitions actuelles
• Discussion ouverte sur le fonctionnement / mode d’organisation des prochaines rencontres

Toulouse Data Science

April 13, 2016
Tweet

More Decks by Toulouse Data Science

Other Decks in Programming

Transcript

  1. SOMMAIRE • Comment se passe une Compétition Kaggle ? •

    Les règles • REX • Les compétitions actuelles • Discussion
  2. Enfin un classement, des prix On peux y gagner des

    €, un job, faire connaissances avec d’autres Kaggler, vivre une aventure en équipe, etc.
  3. Un forum, des scripts Un excellent moyen pour monter en

    compétence, être une source d’inspiration, éviter la feuille blanche, avoir des avis (pas toujours bons à suivre), etc.
  4. Règles Générales Peu de règles générales • Voir le wiki

    de Kaggle (https://www.kaggle.com/w iki/Home) • Chaque compétition dispose de ses propres règles
  5. Calculs des scores Calcul d’une métrique en fonction du type

    de problème https://www.kaggle.com/wiki/ Metrics Très important de comprendre la métrique pour créer le bon modèle
  6. Classement public et privé q A chaque soumission, un score

    « public » est calculé sur une portion du jeu de test (entre 1/4 et 1/3), ce qui donne lieu à un classement public (public leaderboard). q A la fin d’une compétition, il faut choisir quelles soumissions proposer pour le calcul du score privé sur le reste du jeu de test (learderboard inconnu des compétiteurs). C’est ce score qui détermine le vainqueur. q La soumission peut (ou pas) être votre meilleur score public ou dernière soumission. q Le but est de trouver le modèle le plus généraliste.
  7. Former une équipe q Chaque participant doit être membre de

    Kaggle. Désignation d’un leader. q Même nombre de soumissions quelque soit le nombre d’équipiers. q Communications interdites en dehors de l’équipe. q Prix répartis équitablement (frais applicables si > 6). Possibilité de répartir différemment.
  8. q La problématique posée • Estimer la probabilité de survie

    d’un passage du Titanic q L'approche utilisée / les outils • R • MICE / CART / randomForest / cForest / Kmeans • Approche basée sur du feature engineering q Les données • Données par passage : nom, classe, cabine, âge… • Données manquantes q Leçons apprises • Utilisation des arbres de décision • Traiter les données manquantes
  9. q La problématique posée • Déterminer la sévérité d’une perturbation

    ayant lieu sur un réseau télécom (3 niveaux de sévérité). • Enjeu: déterminer rapidement l’étendu et l’impact d’une perturbation pour mieux informer et satisfaire ses clients. q L'approche utilisée / les outils • R • XGBoost / randomForest / Matrix / K-means • Utilisation de l’emprunte d’un événement pour déterminer sa sévérité q Les données • Evénements, sévérité, ressources, log features • Labels déséquilibrés • Pas de données manquantes J q Leçons apprises • Travailler sur des matrices creuses • Ne pas se débarrasser de l’id avant d’être sûr qu’il n’apporte pas d’information • Feature selection • Choisir la bonne stratégie de CV
  10. q La problématique posée • Quel est le chiffre représenté

    sur cette image ? q L'approche utilisée / les outils • Classification multi-classe • Python • SVM, NeuralNets q Les données • Images en niveaux de gris 28x28 pixels q Leçons apprises • Manipulation et préparation d’une image
  11. q La problématique posée • Identifier les coordonnées de certains

    points d’intérêts sur l’image d’un visage (nez, centre des yeux, bouche, sourcils…) q L'approche utilisée / les outils • Python • SVM, NN, CNN q Les données • Images en niveaux de gris 96x96 pixels • 7049 / 1783 q Leçons apprises • Utilisation d’un CNN • Optimization d’un réseau de neurones (performances / généralisation) • Enrichissement d’une base d’images par transformation (translation, rotation…) • SIFT Methods
  12. q La problématique posée • Quelles sont les 5 prochaines

    destinations préférées des clients américains de AirBnb ? q L'approche utilisée / les outils • Python, scikit learn • Gradient boosting • Classification multi label q Les données • Navigation Internet des clients/prospects • Statistiques touristiques • Données linguistiques • Données identitaires q Leçons apprises • Scoring : Normalized Discounted Cumulative Gain • Cross validation instable • Feature engineering sur la navigation Internet • Analyse prédictive sur les données manquantes (age)
  13. q La problématique posée • Prédire les ventes de 1200

    magasins Rossmann en Allemagne sur une période pour faciliter l’approvisionnement. q L'approche utilisée / les outils • Python, • scikit learn, • Regression linéaire, • Gradient boosting, Random Forest • Blend, • Cross validation q Les données • Campagnes promotionnelles, • Vacances scolaires, jour férié, etc. • Contexte concurentiel du magasin, • Ajout des données météo, • Ajout des données google trend de recherche. q Leçons apprises • Scoring : Root Mean Square Percentage Error (RMSPE), • Apprentissage et blend selon plusieurs axes : random split, par magasin, • Séries temporelles, • Intégration de données exogènes.
  14. q La problématique posée • Prédire les milliers de modèles

    de tubes le devis des fournisseurs q L'approche utilisée / les outils • Python, • scikit learn, • Régression linéaire, • XgBoost, • Blend q Les données • Description détaillée des tubes (usinage, matière, traitement, etc.), q Leçons apprises • Scoring : Root Mean Squared Logarithmic Error | Kaggle • Validation, • Gradient boosting, • Feature engineering, • Dummification
  15. q La problématique posée • Identifier les clients insatisfaits du

    service bancaire Santander q L'approche utilisée / les outils • Python, • scikit learn, • Classification/Régression logistique • Blend, Stacking (linéaire, non linéraire) q Les données • Des centaines de données anonymisées… ;-( q Leçons apprises • Scoring : Area Under Curve • Split du Leader board un peu étrange • Cross validation locale instable
  16. q La problématique posée • Evaluer la pertinence des résultats

    du moteur de recherche pour l’améliorer q L'approche utilisée / les outils • Python, • Scikit learn, • Régression linéaire, • TFIDF, SVD, • Bagging. q Les données • Description détaillée des produits • Set d’apprentissage évalué à la main q Leçons apprises • Scoring : Root Mean Squared Error (RMSE) • Stemmer, correcteurs, stopwords, • Beaucoup, beaucoup de feature engineering • A suivre…
  17. q La problématique posée • Aider à classer les déclarations

    de sinitres des clients de l’assureur q L'approche utilisée / les outils • Python, • Scikit learn, • Stacking à 2 niveaux efficace • Régression logistique. • ExtraTreeClassifier, KNN q Les données • Des centaines de données anonymisées de tous types … q Leçons apprises • Scoring : logloss • Stacking • Attention aux équipiers…