MARGO

Actualité

Kaggle Challenge : Ad Tracking fraud detection pour TalkingData

Découvrez le retour d’expérience de Hao Chen suite à son premier Kaggle Challenge

Par Hao Chen Data Scientist

31/05/2018

J’ai écrit cet article suite à ma participation à mon premier challenge Kaggle  – TalkingData Ad Tracking Fraud Detection Challenge – pour partager avec vous les apprentissages que j’en ai retirés. Je commencerai par une courte introduction sur Kaggle et sur ce challenge en particulier, puis je parlerai plus en détail de mon expérience.

 

La plateforme Kaggle

Selon Wikipedia :

Kaggle est une plateforme de concours de modélisation et d’analyse prédictive sur laquelle les statisticiens et les data miners se font concurrence pour produire les meilleurs modèles de prédiction et de description de datasets, ajoutés par des entreprises et des utilisateurs lambdas. Cette approche de crowdsourcing repose sur le fait qu’il existe d’innombrables stratégies qui peuvent être appliquées à toute tâche de modélisation prédictive et qu’il est impossible de savoir à l’avance quelle technique sera la plus efficace.

 

Récemment, de nouvelles fonctionnalités ont été ajoutées à Kaggle, comme par exemple le partage de code dans des “Kernels”, la possibilité de poser des questions dans une section “Discussions”, l’apprentissage de nouvelles techniques de Data Science grâce à la rubrique “Learn” ou encore la recherche d’emploi dans une section “Jobs”. Kaggle est ainsi devenue la première plateforme pour les Data Scientists et les Machine Learners.

 

Le Challenge : TalkingData AdTracking Fraud Detection

Le risque de fraude est partout, mais pour les entreprises qui utilisent la publicité en ligne, la fraude au clic peut être particulièrement massive et engendrer des taux de clics faussés ainsi qu’une perte d’argent. Les médias publicitaires peuvent par exemple facilement augmenter leurs revenus au coût par clic en cliquant simplement un grand nombre de fois sur l’annonce. Avec plus d’un milliard d’appareils mobiles intelligents en utilisation active tous les mois, la Chine est le plus grand marché mobile du monde et souffre donc d’énormes volumes de trafic frauduleux.

 

TalkingData est la plus grande plateforme indépendante de services Big Data en Chine, couvrant plus de 70% des appareils mobiles actifs dans tout le pays. Ils traitent 3 milliards de clics par jour, dont 90% sont potentiellement frauduleux. Leur approche actuelle  pour empêcher la fraude au clic, pour  les développeurs d’applications, consiste à mesurer le parcours du clic d’un utilisateur sur leur portefeuille et à signaler les adresses IP qui génèrent un grand nombre de clics, sans jamais installer d’applications. Avec cette information, ils ont construit une liste noire d’adresses IP et de périphériques.

 

Bien que cette technique fonctionne, ils souhaitent garder une longueur d’avance sur les fraudeurs et ont ainsi décidé de se tourner vers la communauté Kaggle pour obtenir de l’aide dans le développement de leur solution. Il s’agit de leur deuxième Challenge Kaggle , dans lequel vous devez créer un algorithme qui prédit si un utilisateur va télécharger une application après avoir cliqué sur une annonce d’application mobile. Pour soutenir la modélisation des candidats, ils leur ont mis à disposition un jeu de données couvrant environ 200 millions de clics sur 4 jours !

 

Les étapes à suivre pour finir le Challenge

Il y a 4 étapes majeures à prendre en considération, chacune ayant plus ou moins de poids :

  • 80% de feature engineering
  • 10% pour faire des validations locales le plus rapidement possible
  • 5% pour le réglage des hyper-paramètres
  • 5% pour des méthodes ensemblistes

 

Feature engineering

L’étape la plus importante pour gagner un challenge est l’étape de feature engineering. Celle-ci peut représenter jusqu’à 80% du challenge. Pour une meilleure prédiction, vous devez additionner toutes les fonctionnalités que vous pouvez trouver ou composer à partir de votre ensemble de données d’origine. Par exemple : Group by, unique, count, cumulative_count, sort, shift(next & previous), mean, variance, etc.

 

Validation locale

L’étape suivante consiste à définir un jeu de validation locale le plus rapidement possible. Une fois créé, vous pouvez ajuster vos hyperparamètres et tester les importances de vos fonctions sur votre ensemble de validation locale.

Si vous ne disposez pas d’un bon système de validation, et que vous vous fiez uniquement au classement publique, cela peut facilement conduire à un surapprentissage.

 

Réglage des hyper-paramètres

Les deux méthodes les plus utilisées sont XGBoost et Light GBM, vous pouvez vous référer à ce site web xgboost/Light GBM parameters pour configurer tous vos paramètres rapidement.

 

Pour obtenir une meilleure précision, vous devez régler vos paramètres avec Gird Search. Par exemple:

param_grid = {'n_estimators': [300, 500], 'max_features': [10, 12, 14]}

model = grid_search.GridSearchCV(estimator=rfr, param_grid=param_grid, n_jobs=1, cv=10, verbose=20, scoring=RMSE)

model.fit(X_train, y_train)

 

Méthodes ensemblistes

 

Il est de plus en plus difficile d’obtenir de bonnes prédictions avec un seul modèle. S’il est possible de combiner plusieurs modèles, le résultat de la prédiction est généralement meilleur.


Il existe plusieurs méthodes ensemblistes :

 

  • Bagging : Chaque modèle de base est entraîné en utilisant différents sous-ensembles aléatoires des données d’entraînement, et les résultats finaux sont votés par chaque modèle de base, avec le même poids. C’est le principe de Random Forest.
  • Boosting : Le modèle de base est entraîné de manière itérative, en modifiant chaque fois le poids de l’échantillon d’apprentissage en fonction des erreurs de prédiction de l’itération précédente. C’est aussi le principe de l’augmentation de gradient. Mieux que Bagging mais plus facile pour le surapprentissage.
  • Blending : Différents modèles de base sont formés avec des données disjointes et leurs sorties sont moyennées (pondérées). La mise en œuvre est simple, mais il y a moins d’utilisation des données de formation.
  • Stacking : L’ensemble du processus ressemble beaucoup à la validation croisée. Tout d’abord, les données d’entraînement sont divisées en 5 parties, suivies d’un total de 5 itérations. À chaque itération, 4 données sont entraînées en tant que jeux d’entraînement pour chaque modèle de base, puis l’ensemble restant est utilisé pour la prédiction. Dans le même temps, les prédictions sur les données de test doivent également être conservées. De cette manière, chaque modèle de base fera une prédiction de l’une des données d’apprentissage à chaque itération et fera une prédiction de toutes les données d’essai. Après 5 itérations, nous obtenons une matrice de # rangées de données d’entraînement x #Base Numéro de modèle. Cette matrice est ensuite utilisée comme données d’apprentissage du modèle de deuxième niveau. Après la formation du modèle de deuxième niveau, le modèle de base précédemment enregistré prédit les données de test (chaque modèle de base ayant été formé cinq fois et toutes les données de test ont été prédites cinq fois, donc ces cinq requêtes forment une matrice de la même forme que les données d’apprentissage de deuxième niveau).

 

Conclusion

 

Kaggle est probablement la meilleure plateforme pour les Data Scientists qui souhaitent mettre en pratique leurs connaissances. Pour débuter ce Challenge, je me suis inspiré des Kernels et des Discussions. Puis j’ai essayé Light GBM et XGBoost que je n’avais jamais utilisé auparavant. J’ai été convaincu par Kaggle, et je relèverai d’autres challenges !

 

Sources

  1. TOP5%Kaggler: How to get into top 10% ranking(In Chinese)
  2. Solution #6 overview
  3. xgboost/Light GBM parameters

 

Hao Chen a fini dans le top 8% des participants à ce challenge (284/3967 participants).


Par Hao Chen Data Scientist
Data
Data to Business
DataScience
Kaggle
Actualité

Mener à bien un projet data : une route encore semée d'embûches

En 2020, les investissements des entreprises dans les projets data devraient dépasser les 203 milliards de dollars au niveau mondial. Mais à l'heure où beaucoup se revendiquent être des Data Driven Companies, nombre de projets data se soldent encore par un échec.

15/10/2018 Découvrir 
Actualité

Tutoriel : Quelques bases en python pour la prédiction de séries temporelles

Dans ce tutoriel, nous introduisons quelques concepts élémentaires en séries temporelles afin de pouvoir effectuer “rapidement” des prédictions de valeurs futures sur des données temporelles. Loin d’être exhaustif, ce premier tutoriel présente quelques outils de base en Python permettant d’effectuer de premiers traitements. Le code permettant de retrouver ces résultats est ici : https://gitlab.com/margo-group/public/SeriesTemporelles.

11/09/2018 Découvrir 
Communiqué de presse

Margo prévoit 200 recrutements d’ici fin 2019

Margo, société de conseil française créée en 2005, annonce l’ouverture au recrutement de 40 postes supplémentaires d’ici la fin de l’année 2018. Historiquement spécialisée en IT et finance de marché, l’entreprise, qui a fait évoluer son business model afin d’adresser désormais tous les secteurs d’activité concernés par les avantages concurrentiels portés par la transformation digitale, compte déjà plus de 300 collaborateurs en France, mais aussi en Pologne et en Angleterre. Poursuivant sa forte dynamique de croissance, elle ambitionne également d’augmenter ses effectifs sur l’année 2019 grâce au recrutement de 160 nouveaux collaborateurs.

10/09/2018 Découvrir 
Actualité

La Data Science appliquée au monde du retail : les 10 use-cases incontournables

La Data Science impacte de plus en plus les business model dans toutes les industries, et notamment dans la vente de détail. Selon IBM, 62% des détaillants déclarent que l'utilisation de techniques relatives au Big Data leur donne un sérieux avantage compétitif. Savoir ce que veut votre client et à quel moment est aujourd’hui à portée de main grâce à la data science. Pour cela il suffit d’avoir les bons outils et les bons processus en place pour les utiliser. Nous présentons dans cet article 10 applications essentielles de la data science au domaine du retail.

18/05/2018 Découvrir 
Actualité

Introduction aux Chatbots avec Dialogflow

DialogFlow est un très bon outil pour apprendre à créer des Chatbots qui pourront ensuite être intégrés dans vos propres sites web ou applications. Dans cet article, je commencerai par introduire quelques notions sur Dialogflow et les Chatbots, puis je vous expliquerai comment créer simplement un Chatbot sur cette plateforme.

07/05/2018 Découvrir 
Actualité

Introduction aux systèmes réactifs

Les systèmes réactifs sont un style d’architecture permettant à de multiples applications individuelles de se fondre en une seule unité, en réagissant à leur environnement, tout en restant conscientes les unes des autres. La première formalisation de ce terme a vu le jour avec la création du « Reactive Manifesto » en 2013 par Jonas Boner qui, en rassemblant certains des esprits les plus brillants dans l’industrie des systèmes distribués, souhaitait clarifier la confusion autour de la réactivité (qui est devenu un « buzz-word ») et construire une base solide pour un style de développement viable.

04/05/2018 Découvrir