.. blogpost:: :title: Hackathon - Institut des Actuaires :keywords: python, machine learning :date: 2017-09-11 :categories: hackathon `Crésus `_ accompagne les personnes en situation de surendettement. Les personnes en situation financière difficile commencent par envoyer un dossier qui précisent les éléments principaux de leur situation. C'est ce que contiennent les bases *dossier*, *budget*. Un ou plusieurs rendez-vous téléphonique suit pour renseigné les tables *agenda* et *crédit*. Deux colonnes sont utilisées pour qualifier la nature de la situation (diagnostic) et l'orientation donnée au dossier. Il faudra prédire l'orientation et ne pas tenir compte de la nature. Pour ce faire, les tables sont été divisés en apprentissage et test selon deux ensembles disjoints dans le temps de dossiers. La base de dossier ne contient pas d'historique. C'est une vue de la situation au moment où le dossier est orienté. **Mode d'emploi** Les différents fichiers sont un dump des différentes tables du système d'information de l'association. Elles sont liées par des identifiants. L'identifiant dossier est celui qui permet de lier les données de la table principale *dossier* aux autres. La table *dossier* est scindée en deux parties : * *X* : ensemble des colonnes saisies à la réception d'un dossier * *Y* : ensemble des informations renseignées manuellement après l'étude d'un dossier. La partie *Y* contient deux colonnes : * *orientation* : la suite donnée au dossier par l'association *Crésus* Il faut prédire cette colonne. **Il ne faut pas utiliser les colonnes etat et nature** qui sont renseignées manuellement après *orientation*. **Compétition** La compétition est accessible sur codalab : `Hackathon Institut des Actuaires `_. C'est un problème de classification **multi-classes**. * `données du challenge `_ Les réponses doivent être données dans le même ordre que les lignes de la table ``tbl_dossier.test.X.txt`` dans un fichier texte sans en-tête **answer.txt**. Soumettre une solution consiste à envoyer à fichier **answer.zip** qui contient un fichier **answer.txt** au format suivant : :: 4.0 0.9144635693307518 2.0 0.9058230082126213 1.0 0.963522847810654 2.0 0.6700924948192609 5.0 0.33637962518435127 1.0 0.2746943724528652 5.0 0.695436159178639 Avec deux colonnes : #. prédiction pour l'**orientation** #. **score orientation** pour la prédiction de l'orientation Un exemple de soumission est disponible (réponse aléatoire) #. `answer.txt `_ #. `answer.zip `_ Les métriques produites pour chaque colonne : * **ERR - taux d'erreur** : c'est la proportion de mauvaises prédictions, la classe prédite n'est pas la classe attendue. * **AUC - aire sous la courbe ROC** : ce chiffre correspond à la probabilité pour le score d'une bonne prédiction d'être supérieur au score d'une mauvaise prédiction - `Courbe ROC `_. Une bonne *AUC* indique que le score de la prédiction est fiable. Autrement dit, même si le taux d'erreur est élevé, cela signifie que celui qui utilise le modèle de prédiction peut plus facilement croire la prédiction quand celle-ci est élevée. Cette métrique a été choisie pour permettre à l'utilisateur d'automatiser une partie du traitement avec fiabilité et de continuer à gérer les autres dossiers manuellement lorsque la prédiction n'est pas assez fiable. La fonction de calcul *AUC* est implémentée : :func:`AUC_multi ` et le fichier d'évaluation fonctionne en Python 2 ou 3 : `evaluate.py `_. **Autres données** * `dataforgoodfr/croixrouge `_ * `Description des tables INSEE `_ * `data.gouv.fr `_