Théophile BARANGER et Valentin BARTKOWIAK
Dans ce rapport, nous allons nous intéresser à l'avenir des animaux accueillis dans un refuge de la ville d'Austin, au Texas. Ces données proviennent du site web de données ouvertes d'Austin, TX et sont continuellement mises à jour.
Plus spécifiquement, nous allons nous intéresser à deux jeux de données complémentaires :
Afin de rester dans l'esprit des données ouvertes, nous avons rendu disponible l'intégralité de notre code et les données utilisées. Les sources de ce rapport sont ainsi disponible en ligne dans un dossier Drive partagé.
Nous allons dans un premier temps procéder à une analyse descriptive exploratoire de ces données. L'objectif, au-delà de se familiariser avec les données, sera également de tester le lien entre certaines variables afin de constituer un sous-ensemble de données propice à l'entraînement et l'évaluation de modèles de prédiction. Nous proposerons ainsi à la suite de cette analyse exploratoire de construire un modèle prédictif permettant d'estimer la durée de séjour d'un animal au refuge ainsi que son sort futur (adoption, retour à son propriétaire, etc.) sur la base des données disponibles lors de son arrivée au refuge.
Nous nous intéresserons aux stratégies possibles pour l'entraînement de modèles de prédiction de variables bivariées, l'une étant ici qualitative (le type de sortie du refuge) et l'autre quantitative (la durée de séjour). En cela, ce projet représente une ouverture par rapport aux méthodes étudiées pendant notre formation, où les prédictions portent en général sur des variables unidimensionnelles et où l'entraînement de modèles d'apprentissage plus direct.
Voici l'ensemble des librairies que nous avons utilisées dans ce travail. Pour la manipulation des données, nous avons principalement utilisé les libraries NumPy et Pandas. Pour les graphiques, Matplotlib, notamment à travers Seaborn. Nous avons réalisé la carte animée qui suit à l'aide des librairies folium et GeoPy. Enfin, nous avons utilisé la librairie scikit-learn pour l'entraînement de modèles d'apprentissage supervisé.
Commençons par donner un descriptif des données dont nous disposons.
Animal ID
: Identifiant de l'animal (chaîne de caractères)Name
: Nom de l'animal (chaîne de caractères)DateTime
: Jour et heure d'entrée au refuge (Date-Heure)MonthYear
: Mois et année d'entrée au refuge (Mois-Année)Found Location
: Adresse (chaîne de caractère)Intake Type
: Type d'entrée au refuge (chaîne de caractère)Intake Condition
: Condition de l'animal à son entrée au refuge (chaîne de caractère)Animal Type
: Catégorie d'animal (chaîne de caractère)Sex upon Intake
: Sexe de l'animal (chaîne de caractère)Age upon Intake
: Âge de l'animal à son entrée au refuge (chaîne de caractère)Breed
: Sous-catégorie d'animal (chaîne de caractère)Color
: Couleur de l'animal (chaîne de caractère)Animal ID
: Identifiant de l'animal (chaîne de caractères)Name
: Nom de l'animal (chaîne de caractères)DateTime
: Jour et heure de sortie du refuge (Date-Heure)MonthYear
: Mois et année de sortie du refuge (Mois-Année)Date of Birth
: Date de naissance (Date-Heure)Outcome Type
: Type de sortie du refuge (chaîne de caractère)Outcome Subtype
: Précision sur la sortie quand pertinent (chaîne de caractère)Animal Type
: Catégorie d'animal (chaîne de caractère)Sex upon Outcome
: Sexe de l'animal (chaîne de caractère)Age upon Outcome
: Âge de l'animal à sa sortie du refuge (chaîne de caractère)Breed
: Sous-catégorie d'animal (chaîne de caractère)Color
: Couleur de l'animal (chaîne de caractère)Dans cette partie nous avons cherché à représenter sur une carte dynamique les lieux de recueil des animaux arrivant au refuge. Pour ce faire nous avons dû dans un premier temps geocoder les adresses présentes dans notre jeu de données, c'est à dire attribuer à chacune d'entre elles des coordonnées géographiques de type latitude et longitude.
Ce travail a bien évidemment nécessité une étape de prétraitement de la variable adresse. Suite à ce prétraitement, nous nous sommes retrouvé avec environ $30\,000$ adresses différentes utilisables, ce qui correspond à environ la moitié des adresses différentes présentes dans le jeu de données. Ce nombre d'adresses s'est cependant révélé suffisant puisqu'il a permis de représenter sur notre carte interactive environ $120\,000$ animaux.
Sur notre carte dynamique, le code couleur est le suivant :
Dog
Cat
Other
.La première étape de notre travail est naturellement de rassembler les deux jeux de données initiaux par jointure sur les identifiants d'animaux. On cherche à conserver seulement les observations pour lesquelles on connaît l'entrée et la sortie de l'animal. Il est donc nécessaire de filtrer les entrées par exemple pour lesquelles la première sortie est antérieure à la première arrivée. De la même façon, certains animaux sortent deux fois du refuge pour une seule entrée. Nous avons donc tenté d'écarter toutes ces anomalies de façon à obtenir un jeu de données cohérent, où l'on sait pour chaque entrée au refuge quelle sera l'issue pour un animal.
Nous avons vérifié que les noms des animaux à leur entrée au refuge et à leur sortie correspondaient bien systématiquement. Ainsi, on ne conserve qu'une variable de nom. Cependant, la grande diversité des noms rendrait difficile l'utilisation de cette variable pour la construction de modèles prédictifs. Par curiosité, on décide de représenter les noms les plus communs donnés aux chiens et aux chats sous la forme de nuages de mots.
Ensuite, un certain nombre d'animaux accueillis au refuge n'ont pas de nom. On considère que cette information pourrait potentiellement être utile dans le cadre de modèles de prédiction, et donc on décide d'ajouter une variable binaire 'Named' qui vaudra 'Yes' si l'on connaît le nom de l'animal, 'No' sinon. Nous verrons plus tard dans l'analyse descriptive si cette information est pertinente ou non.
Certains animaux ont un âge négatif. Étant donné qu'ils sont très peu nombreux, on décide de les écarter, ces erreurs provenant probablement d'erreurs de saisie dans la base de données.
Les distributions des âges des animaux étant très proches à l'entrée et à la sortie du refuge, on peut déjà faire l'hypothèse que la majorité des séjours sont de courte durée. Néanmoins, nous aurons largement l'occasion de le vérifier plus tard.
Par ailleurs, la forme de la distribution des âges des animaux fait penser à une loi puissance. On sait que beaucoup de modèles prédictifs font des hypothèse par exemple de normalité sur les distributions des variables quantitatives. On transforme alors les variables d'âges à l'aide de la fonction $x \mapsto \log(1+x)$ de telle sorte à obtenir une distribution des âges plus proche du cas gaussien. Évidemment le résultat est loin d'être satisfaisant avec cette transformation simple, mais néanmoins empiriquement les performances des prédictions sont améliorées grâce à ce genre de transformation. Elles permettent également d'y voir plus clair, ce qui n'est pas dommage.
Maintenant que l'on s'est assuré d'avoir pour chacune de nos observations une date d'entrée au refuge ainsi qu'une date de sortie, on peut notamment déterminer la durée totale du séjour, que l'on pourra par la suite analyser plus en détail, voire chercher à prédire selon le type d'animal.
Donnons un aperçu de la distribution des durées de séjour des animaux au refuge.
Il sera sans doute nécessaire là encore de passer à l'échelle logarithmique afin d'y voir plus clair.
On voit que la distribution du logarithme des durées de séjour est assez complexe et multimodale. On imagine que certains animaux restent généralement moins longtemps que d'autres au refuge, par exemple selon le type d'animal ou encore son état de santé à son arrivée au refuge, et que cela explique en partie cette distribution. Nous aurons l'occasion de le vérifier dans l'analyse descriptive. Pour faciliter les prochains traitements et améliorer la qualité des modèles de prédictions que nous avons prévu d'implémenter plus tard, nous décidons d'ajouter une variable correspondant au logarithme de la durée de séjour en secondes, que l'on nomme logDuration
.
Voyons un aperçu des séjours les plus courts au refuge.
Et des séjours les plus longs.
La variable de race, Breed
, qui est une variable qualitative, comprend un grand nombre de modalités. De plus, certaines races de chien par exemple sont présentes d'une certaine façon en double dans l'ensemble de données, par exemple sous les formes Pit Bull
et Pit Bull Mix
, ou encore Golden Retriever
et Golden Retriever Mix
.
Ensuite, un très grand nombre de races de chiens sont des croisements de la forme Race1/Race2
. Dans le but d'effectuer une première simplification de nos données, nous avons décidé de regrouper les races se terminant par Mix
avec la race principale, et d'englober tous les croisement dans une race unique Mix
. Le nombre de races à l'issu de ce traitement reste grand, certaines races de chien n'ayant par exemple été vues qu'une fois au refuge dans la période de notre jeu de données. Néanmoins, ce premier traitement permet de consolider les races majoritaires, sur lesquels nous devrons sans doute nous concentrer lorsqu'il s'agira de faire de la prédiction.
Observons la façon dont est encodé l'information concernant le sexe des animaux accueillis au refuge.
On voit que les variables d'origine contiennent en réalité deux informations à la fois : le sexe ainsi que le fait que l'animal soit stérilisé ou non. On décide alors de scinder cette information en une colonne pour le sexe qui restera inchangé au cours du séjour de l'animal, puis deux colonnes décrivant la stérilisation à l'arrivée puis au départ des animaux. On remarque d'ailleurs que de très nombreux animaux se font stériliser au cours de leur séjour au refuge, ce qui est certainement une politique globale des refuges animaliers pour éviter la surpopulation.
Dans cette section, nous faisons une analyse descriptive exploratoire des données. Ainsi, nous allons nous pencher sur les différents espèces d'animaux accueillis au refuge, à leur âge, à leur caractéristiques à l'entrée, à la durée de leur séjour, et au destin qui leur est réservé. L'idée de cette exploration est d'apprendre à connaître plus en profondeur les données dont on dispose, et éventuellement à formuler des hypothèses que nous pourrons ensuite tenter de vérifier statistiquement. Cette analyse exploratoire sert aussi à guider les choix en termes de données ou d'approches que nous ferons concernant notre objectif final qui est de prédire le sort d'un nouvel animal à son entrée au refuge.
Commençons par nous intéresser à la fréquence des différents types d'animaux accueillis au refuge. On la représente à l'aide d'un diagramme en barres.
On se rend compte tout d'abord que les classes sont très déséquilibrées, et que les chiens et les chats représente la grande majorité des animaux accueillis au refuge. Il est probable que nous décidions d'écarter au moins les oiseaux ainsi que le bétail pour la partie prédiction. En effet, ces classes étant sous-représentées, nous manquerions d'observations pour entraîner des modèles de prédictions. Par ailleurs, la nature des données rend difficile l'implémentation de méthodes de sur-échantillonage, plus adaptées en général aux données quantitatives. Ici, la majorité des variables d'entrées sont qualitatives.
On poursuit en représentant pour chacun de ces types d'animaux la fréquence des différentes espèces qui les composent.
On remarque que pour chacun des types d'animaux, les espèces qui les composent sont également présentes dans les données en quantités très inégales. En général, une espèce domine et nous avons calculé que par exemple pour la catégorie Other
, les chauve-souris représentaient environ la moitié des animaux. Les chiens font exception à cette règle, les premières espèces étant présentes en quantités similaires. Cependant, on rappelle que l'espèce Mix
correspond en réalité à tous les croisements présents initialement dans le jeu de données, et donc qu'elle contient une grande diversité d'espèces de chiens différentes.
Nous avons déjà vu dans la partie Prétraitement que la grande majorité des animaux accueillis au refuge était jeunes. On cherche maintenant à creuser plus profondément le lien entre l'âge des animaux et les autres variables du jeu de données. On commence par s'intéresser à la distribution de l'âge conditionnellement au type d'animal, puis au type d'animal couplé au sort qui lui est réservé, c'est-à-dire au type de sortie du refuge.
Note : Les violons peuvent donner l'impression que certains animaux auraient un âge négatif à leur sortie du refuge. Cela n'est pas le cas car nous avons écarté les âges négatifs considérés comme des erreurs de saisie dès le début de ce calepin. Il s'agit en réalité d'un artefact de l'estimation de la densité à noyaux qui est effectuée ici. Ce problème est par exemple documenté dans ce post sur stackoverflow. Il ne semble pas y avoir de moyen évident pour corriger ce problème.
Nous pouvons remarquer que pour chacun des trois types d'animaux majoritaires, la majorité des individus sont jeunes. Pour les chats spécifiquement, la moyenne d'âge semble être bien inférieure, avec un premier mode de la distribution à quelques semaines tout au plus. Les chiens quant à eux, bien que majoritairement âgés de moins de deux ans à leur sortie du refuge, ont une distribution plus aplatie que les autres espèces animales. Enfin, comme nous l'avions vu précédemment, l'animal étant resté le plus longtemps au refuge est un chien, en l'occurrence une croisée Pit Bull nommée Patches, chienne errante étant arrivée blessée au refuge le 5 janvier 2016 à l'âge de 6 ans, et ayant finalement été adoptée le 1 avril 2021 à l'âge de 11 ans après 5 ans et 3 mois passés au refuge.
Nous constatons visuellement que les chiens adoptés sont dans l'ensemble plus jeunes que les chiens euthanasiés et rendus à leurs propriétaires. Nous pourrons réaliser par la suite une analyse de la variance à 1 facteur pour comparer les moyennes d'âge dans ces 3 catégories de sortie de refuge et déterminer si celles ci sont bien significativement différentes. Enfin, il est frappant sur cette visualisation que les distributions des âges des animaux qui se font adoptés ou alors qui sont transférés (à priori dans un autre refuge) sont très proches. On voit également qu'en terme d'issues favorables, les chiens et les chats âgés de plus de 5 ans à leur entrée au refuge (soit 260 semaines) ou de meilleures chances d'être retournés à leur propriétaire que d'être adoptés.
Là encore on remarque que les types d'entrée au refuge sont très déséquilibrées. De plus, les catégories Abandoned
et Euthanasia Request
étant extrêmement rares, on décide de les écarter dans la suite de notre analyse.
Le graphique précédent justifie le fait que nous nous intéresserons plus tard seulement aux quatre types de sortie majoritaire, à savoir l'adoption, le transfert, le retour au propriétaire et l'euthanasie. On décide également d'inclure les sorties de type Rto-Adopt
dans les Return to Owner
, puisqu'il semble d'après le site de la ville d'Austin que les deux soient équivalents.
L'objectif dans cette section sera de mieux comprendre ce qui peut influencer la durée de séjour d'un animal au refuge. On peut commencer par comparer les durées de séjour au refuge selon le type d'animal. Comme précédemment, la durée de séjour étant une variable qualitative, nous allons représenter les distributions pour cette variable selon le type d'animal ainsi que selon le type d'entrée et le type de sortie à l'aide de diagramme en violons. On choisit de se concentrer sur les animaux dont les types d'entrée et de sortie sont majoritaires, c'est-à-dire pour chacun les 4 types les plus fréquents : Stray
, Owner Surrender
, Public Assist
et Wildlife
pour les entrées, Adoption
, </code>Transfer</code>, Return to Owner
, Euthanasia
pour les sorties.
Les distributions des durées de séjours sont compliquées et multimodales pour les trois types principaux d'animaux. De plus, les moyennes de durées de séjours entre les chats et les chiens semblent très proches. Une analyse de la variance permettra de vérifier si elles sont significativement différentes. Les durées de séjours pour les autres types d'animaux sont clairement plus faibles. Cela n'est pas surprenant, maintenant que nous savons que la moitié d'entre eux sont des chauve-souris, que le refuge ne conserve probablement pas longtemps. On peut d'ailleurs s'intéresser plus en détail à ces distributions en conditionnant par le type d'entrée et le type de sortie du réfuge.
Cette visualisation nous permet de voir que le type d'entrée au refuge a un impact important sur la distribution des durées de séjour. En effet, bien que les durées de séjour moyennes selon le type d'entrée soient proches en ce qui concerne par exemple les chiens et les chats, l'aspect des distributions varie beaucoup. Pour les chats par exemple, on remarque que la première partie de la distribution concernant à des logarithmes de durées de séjours entre $8$ et $10$ correspond principalement à des entrées de chats errants. On pourrait multiplier ce genre de remarque, mais on se contentera de noter que le type d'entrée sera certainement important pour prédire la durée de séjour.
Enfin, cette visualisation des temps de séjour selon le type de sortie nous conforte dans l'idée que prédire à la fois le sort réservé à un animal entrant au refuge (c'est-à-dire son type de sortie) et sa durée de séjour est une problématique intéressante pour la prédiction. En effet, on voit bien ici que selon le type de sortie, les durées de séjour sont très différentes. Les animaux se faisant adopter restent par exemple en moyenne bien plus longtemps au refuge que les animaux dont le destin est différent. Ainsi, lorsqu'il s'agira de prédire le sort d'un animal, il est très problable que prédire indépendemment le type de sortie et la durée de séjour amèneraient à des résultats moins bons que de prédire les deux à la fois. Autrement dit, nous tenterons d'estimer la loi jointe du couple type de sortie et durée de séjour en faisant l'hypothèse que ces deux variables ne sont bien sûr pas indépendantes.
Nous n'avons pas encore abordé l'aspect temporel de nos données. Or il est bien connu que les refuges animaliers ont une activité accrue en été. En France, par exemple, d'après le site de la fondation 30 millions d'amis, $100\,000$ animaux de compagnie sont abandonnés tous les ans, dont $60\,000$ en été. Bien entendu, nos données ne concernent pas seulement les animaux de compagnie, ni même les abandons exclusivement. Nous avons vu que parmi les types d'entrées au refuge, la grande majorité ($68.9\,\%$) des animaux étaient errants, dont vraisemblablement une partie correspond à des animaux abandonnés, mais pas l'intégralité non plus.
Cela étant dit, il sera intéressant de voir si l'on observe effectivement un pic en été dans les entrées au refuge, et également de voir si la proportion des animaux recueillis, leur condition, ainsi que le type de sortie associés sont stables sur la période ou s'ils évoluent, par exemple d'année en année ou en fonction des saisons.
On retrouve bien la saisonnalité que nous avions mentionnée précédemment, c'est-à-dire que tous les ans on observe bien un pic dans le nombre d'entrées au refuge à la période estivale. On remarque également une chute importante du nombre d'entrée au refuge pendant l'année 2020, marquée par la pandémie de COVID-19.
En affichant l'évolution du nombre d'entrée selon le type d'entrée, on se rend compte que la périodicité identifiée précédemment n'est valable que pour le type d'entrée correspondant aux animaux errants. Concernant les dépôts au refuge par les propriétaires, les dépôts publics et le nombre d'animaux sauvages, on n'observe pas de saisonnalité particulière. De la même façon, on note que le nombre d'entrées d'animaux sauvage est restée inchangée pendant la période pandémique, contrairement aux nombre d'entrées dues aux animaux errants ou au dépôt par les propriétaires.
Malgré l'intérêt de ces observations pour la gestion du refuge, si l'on se place dans le cadre de la prédiction de la durée de séjour d'un animal accueilli au refuge ainsi qu'au destin qui lui est réservé, on ne peut pas encore dire si la connaissance de la période d'entrée au refuge sera pertinente. On se propose donc d'analyser les durées de séjour et les types de sortie du refuge selon les années et les saisons. Si l'on observe un lien entre ces variables et les variables à prédire, alors nous les prendrons en compte dans la section suivante lorsqu'il s'agira d'entraîner des modèles de prédiction.
Les distributions des durées de séjour, bien que similaires d'année en année, semblent indiquer que les durées de séjour ont tendance à s'allonger au fil du temps. Sans tirer de conclusion trop hâtive, cela nous laisse penser que l'information de l'année d'entrée au refuge pourrait être une variable pertinente lors de l'élaboration de modèles de prédiction.
Contrairement à ce que l'on pouvait supposer, les proportions des différents types de sortie du refuge ont évoluées sur la période étudiée. En effet, les adoptions représentent une partie de plus en plus importante des sorties. Alors qu'elles représentent moins de $40\,\%$ des sorties pour les animaux entrées au refuge en 2014, elles ont représentent plus de $55\,\%$ des sorties pour les animaux entrées au refuge en 2021. La proportion des retours au propriétaires ne semblent pas varier énormément sur la période, même si on note qu'ils représent une proportion plus faible que d'habitude pour les entrées au refuge en 2021. Cela nous conforte dans l'idée que la données de l'année d'entrée au refuge permettra probablement d'améliorer les performances de prédiction dans la section suivante.
Pour conclure cette partie, on se propose de réitérer l'analyse précédente sur les années d'entrée au refuge en considérant cette fois-ci la saison de l'année où l'animal est entré au refuge.
Bien que la variabilité des durées de séjour pour les entrées au refuge au printemps, les distributions semblent très proches. On pourrait le vérifier avec un test d'analyse de la variance, mais avant cela on note qu'il est peu probable que la variable de saison d'entrée au refuge soit importante pour la prédiction de la durée de séjour. Voyons maintenant le lien entre saison d'entrée et type de sortie du refuge.
Là encore, contrairement à l'analyse précédente sur les années, il ne semble pas y avoir de lien évident entre saison d'entrée et type de sortie du refuge. On note toutefois que la proportion des retours aux propriétaires semble plus importante en hiver. La variable de saison pourrait être pertinente pour aider à prédire non pas la durée de séjour au refuge, mais le type de sortie.
Dans cette section nous allons étudier la pertinence des variables pour expliquer nos deux variables d'intérêt grâce à des tests d'hypothèses. Nous espérons alors prouver :
Outcome Type
à l'aide de tests du chi-deuxOutcome Type
et nos différentes variables quantitatives à l'aide du test H de Kruskal-Wallis qui est l'équivalent non paramétrique du test de l'ANOVAOutcome Type
et notre seconde variable d'intérêt logDuration
à l'aide du test H de Kruskal-WallislogDuration
à l'aide d'un test sur les coefficients de corrélation linéaire de Pearson.Commençons par les tests du chi-deux. Le tableau suivant résume les tests du chi-deux réalisés pour chaque variable qualitative, à chaque fois avec la variable Outcome Type
. Il apparait grâce à ces tests une dépendance entre nos variables qualitatives et notre variable d'intérêt, les p-valeurs étant toutes nettement inférieures au seuil classique de 5%.
Il s'agit maintenant de réaliser des tests H de Kruskal-Wallis qui permettent de tester l'égalité des médianes d'une variable quantitative divisée en sous échantillons.
Le tableau suivant résume les tests H de Kruskal-Wallis réalisés pour chaque couple de sous échantillons possibles de créer avec la variable Outcome Type
pour la variable Intake logAge
. Ce dernier nous permet de dire que les distributions de la Intake logAge
liées à chaque modalité de la variable Outcome Type
sont différentes deux à deux.
De la même façon le tableau suivant résume les tests H de Kruskal-Wallis réalisés pour chaque couple de sous échantillons possibles de créer avec la variable Outcome Type
pour la variable Intake Year
. Encore une fois les p-valeur nous indiquent que les distributions de la variable Intake Year
liées à chaque modalité de la variable Outcome Type
sont différentes deux à deux, à l'exception du couple de distributions Return to Owner
et Transfer
pour lequel la p-valeur associée au test est d'environ 0.7.
Enfin, le tableau ci dessous résume le résultat des tests H de Kruskal-Wallis effectués entre les variables qualitatives retenues pour la suite et la logduration
. Encore une fois ces tests d'hypothèses nous confortent dans notre choix de variables qui apparait comme pertinant pour la prédiction de la logDuration
et de l'Outcome Type
.
Nous obtenons des coefficients de corrélation très faibles bien que significativement différents de 0. Cela s'explique par le fait que nous n'avons pas calculé ces coefficients conditionnellement aux modalités de nos autres variables.
Dans l'ensemble ces tests d'hypothèses permettent de confirmer la pertinence des variables qui nous serviront de prédicteurs pour la suite de notre étude.
On remarque que parmi les animaux de la catégorie Other
, il y a une forte correspondance entre les animaux entrés au refuge en tant que Wildlife
et les animaux se faisant principalement euthanasier. On propose donc de recoder les animaux de cette catégorie de façon binaire, en distinguant les espèces pouvant être considérés comme animaux domestiques potentiels, et les autres.
Nous avons déjà remarqué que les différents types d'animaux ainsi que les races qui les composent étaient présents en quantités très inégales dans nos données. Pour tenter de limiter ce problème, nous allons tenter de construire un sous-ensemble de données qui contiendrait des classes en proportions un peu plus équilibrées, notamment en écartant les classes rares. Ainsi, on se limite déjà aux 3 types d'animaux principaux : Dog
, Cat
et Other
; aux 4 types d'entrées au refuges principaux : Stray
, Owner Surrender
, Public Assist
et Wildlife
; aux 4 types de sorties principaux : Adoption
, Transfer
, Return to Owner
, Euthanasia
.
Ensuite, concernant les races d'animaux, nous avons également remarqué que celles-ci étaient très déséquilibrées. Ainsi, nous allons nous limiter à un sous-ensemble des races de chiens, en l'occurrence les 4 races les plus représentées (à l'exception de la race composée de tous les croisements Mix
) : Pit Bull
, Labrador Retriever
, Chihuaha Shorthair
, German Shepherd
. Concernant les chats, nous avons noté qu'ils étaient dominé par la race principale Domestic Shorthair
. Cependant, nous allons essayer de distinguer selon la couleur des chats, dont on fait l'hypothèse que celle-ci pourrait avoir un impact sur le sort réservé à l'animal.
On commence par noter que les couleurs des chats de notre jeu de données sont assez variées, et qu'elles peuvent potentiellement être un moyen de créer des sous-catégories dont les proportions seraient similaires aux différentes races pour les chiens. Pour rééquilibrer légèrement les types d'animaux de notre jeu de données, on décide de se focaliser sur les 5 couleurs les plus fréquentes.
Le graphique précédent nous montre que cette catégorisation des chats selon leur couleur peut potentiellement aider à mieux prédire le type de sortie. Il est évident que les proportions de retours aux propriétaires sont par exemple plus élevées pour les chats noirs Black
ou noir et blanc Black/White
que pour les autres.
On s'intéresse à la possibilité d'opérer un regroupement de certaines espèces de la catégorie Other
. On s'intéresse alors à la proportion, pour les principales espèces concernées, des différents types d'entrée et de sortie du refuge. On représente les résultats sous la forme graphique en suivant.
Dans le but d'entraîner un modèle de prédiction puis de le confronter à un ensemble de test qui seront suffisamment similaires en terme des animaux qui les composent, des types d'entrée au refuge, ainsi que des types de sortie du refuge, nous allons procéder à un découpage apprentissage/test stratifié qui prendra en compte ces différentes catégories.
Notre méthode consiste tout d'abord à construire une variable qualitative temporaire construire en concaténant les valeurs des trois variables Animal Type
, Intake Type
et Outcome Type
. ensuite, nous utilisons la méthode de stratification implémentés dans la fonction train_test_split
de scikit-learn.
Voyons un aperçu de cette variable qualitative de stratification.
L'intérêt est alors que ces catégories seront présentes en proportions identiques dans notre ensemble d'entraînement et dans notre ensemble de test.
Notre ensemble de données dédié à la construction d'un modèle de prédiction contient environ $62\,500$ observations. On le découpe en une base d'apprentissage et une base de test selon la stratégie de stratification décrite précédemment. Notre ensemble de test contiendra $10\,000$ observations.
Rappellons que le sujet qui nous intéresse ici est de prédire deux choses à la fois. À l'arrivée d'un animal au refuge, on veut être capable de prédire le sort qui lui est réservé, ce que l'on a appelé son type de sortie, et la durée de son séjour au refuge.
Concernant l'évaluation des modèles, il est nécessaire de choisir des métriques qui permettront d'évaluer leur performance. Dans notre cas, nous aurons besoin d'une première métrique permettant de juger de la qualité de la classification multi-classe opérée pour déterminer le destin de l'animal, puis d'une seconde pour juger de la qualité de la prédiction de sa durée de séjour. On peut se baser pour rester simple sur un calcul de taux d'erreur pondéré par l'inverse de la prévalence de chaque classe dans la réponse, ce qui permet de donner la même importante aux taux d'erreurs des classes déséquilibrées dans le cas de la classification, puis sur une minimisation de l'erreur quadratique dans le cas de la régression.
Puisque l'on cherche ici à estimer la loi jointe du couple de variables aléatoires de la durée de séjour et du destin réservé à l'animal, il est en théorie équivalent : d'estimer tout d'abord la loi marginale du type de sortie puis la loi conditionnelle de la durée de séjour sachant le type de sortie ; d'estimer tout d'abord la loi marginale de la durée de séjour puis la loi conditionnelle du type de sortie conditionnellement à la durée de séjour ; d'estimer directement la loi du couple à l'aide d'une méthode d'apprentissage qui accepte une variable réponse bivariée.
En pratique, la majorité des méthodes d'apprentissage statistiques sont adaptées à des variables réponse unidimensionnelles. Notre objectif sera donc ici de comparer les deux approches se reposant sur l'estimation du couple à travers les lois marginale et conditionnelle, pour vérifier si en pratique les résultats obtenus sont proches. Nous ne nous intéresserons pas dans ce travail à l'estimation directe du couple type de sortie et durée de séjour.
Nous allons comparer deux méthodes : (1) procéder dans un premier temps à une étape de classification, puis entraîner un modèle de régression qui prend en compte la classe prédite ; (2) procéder dans un premier temps à une étape de régression, puis entraîner un modèle de classification qui prend en compte la durée de séjour prédite. En principe les résultats obtenus devraient être très proches, et c'est ce que nous voulons investiguer. Par ailleurs, il sera intéressant de voir si les modèles ainsi construits sont plus performants sur la première étape ou sur la seconde, c'est-à-dire par exemple si le fait d'implémenter une étape de pré-classification avant la régression donne lieu à un écart quadratique moyen inférieur ou supérieur à l'écart quadratique moyen obtenu en commençant par la régression, etc.
Puisque cette année nous avons peu de temps pour explorer l'ensemble des méthodes disponibles pour faire ce travail, nous allons essayer de rester simple en utilisant des méthodes classiques et déjà implémentées dans scikit-learn, telle que la régression logistique multinomiale pour la classification ainsi que des approches basées sur des forêts aléatoires.
En parallèle de cette question de quel ordre de variable considérer pour le conditionnement permet d'obtenir les meilleures prédictions, nous allons comparer deux stratégies d'entraînement pour l'estimation d'une loi conditionnelle. D'un point de vue méthodologique, nous considérons trois approches différentes pour l'estimation d'une telle loi. Appelons la première : l'approche d'oracle ; et la seconde : l'approche aveugle. Enfin, nous proposons une procédure paramétrique permettant de trouver le meilleur compromis entre ces deux approches.
L'approche d'oracle consiste à entraîner les deux modèles sur l'intégralité de l'ensemble d'apprentissage, en estimant la première loi sur les observations seules, et la loi conditionnelle sur les observations couplées aux vraies valeurs de la loi selon laquelle on conditionne. Autrement dit dans le cas où l'on procèderait à la classification en premier, cette approche consiste à entraîner le modèle de classification sur l'intégralité de l'ensemble d'apprentissage, puis d'entraîner le modèle de régression sur les même données en ajoutant les vrais classes des observations. De cette façon, on peut s'attendre à ce que le modèle de régression soit très performant sur les estimations bien classifiées puisqu'il aura seulement été soumis à l'entraînement à des observations pour lesquelles la classe était la vraie classe à prédire.
L'approche aveugle consiste à découper l'ensemble d'apprentissage en deux ensembles : un premier ensemble servant de base d'apprentissage pour la loi marginale, et un second ensemble servant de base d'apprentissage pour la loi conditionnelle. Pour rester simple, on scindera notre ensemble d'apprentissage en deux sous-ensembles de taille égale pour chacune des deux tâches. L'approche aveugle consiste alors dans un premier temps à estimer la loi marginale sur le sous-ensemble d'apprentissage dédié, puis d'effectuer des prédictions pour le deuxième sous-ensemble dédié à l'estimation de la loi conditionnelle. On estime ensuite la loi conditionnelle sur le deuxième sous-ensemble de données auquel on a ajouté les prédictions effectuées précédemment. L'intérêt est alors qu'une partie des prédictions effectuées par le premier modèle vont être erronées, ce qui conduira à l'entraînement d'un modèle plus robuste.
Nous n'avons pas eu le temps de faire des recherches bibliographiques sur les méthodes d'estimation de variables réponses multivariées, et nous ignorons si les approches décrites précédemment sont portent déjà un nom, ou si leurs performances ont été évaluées, etc.
Cela étant dit, nous avons imaginé pour aller plus loin une approche qui consisterait à optimiser un paramètre réel inclu dans $[0,1]$ qui correspondrait à la proportions des « vraies valeurs » à injecter parmi les observations de la variable de conditionnement. Il y a certainement un compromis à faire entre le conditionnement par les vrais valeurs de la réponse par laquelle on conditionne, qui permet d'estimer une loi conditionnelle plus performante, et le conditionnement par les valeurs éventuellement erronées issues de l'estimation de la première loi marginale, qui permet d'entraîner un modèle de régression au meilleur pouvoir de généralisation.
Résumons la procédure :
Pour un ensemble de paramètres $\alpha = (\alpha_1, \dots, \alpha_p) = \{\frac{k}{p}\,|\,k \in \{0, \dots, p\}\}$ :
Le paramètre $\alpha$ n'ayant aucune influence sur l'estimation de la loi marginale, on sélectionne finalement le paramètre $\alpha_k$ qui minimise l'erreur de validation de la loi conditionnelle, par exemple l'erreur quadratique dans le cas de la régression et le paramètre $\alpha_k$ qui maximise le taux de bonnes classifications pondéré par l'inverse de la prévalence des classes dans le cas de la classification.
Concernant la classification, nous allons nous intéresser à trois modèles. Le premier est un modèle de régression logistique multinomiale, le deuxième un modèle de forêt aléatoire de classification, et le dernier un modèle de vote doux basé sur les deux modèles précédents. Le vote doux consiste à prédire l'argmax des sommes des probabilités estimées par les modèles qui le composent. On peut considérer que l'on prédit ainsi la classe dans laquelle les modèles ont le plus confiance.
Voici les matrices de confusions obtenues par ces trois modèles sur nos données d'apprentissage.
À la suite de cette étude préliminaire, on considère que les modèles linéaires et de forêt aléatoires considérés apprennent des caractéristiques suffisamment différentes pour que malgré des performances très proches pris isolément, la combinaison de leur décision permet d'obtenir de meilleurs résultats. On conserve ainsi le modèle de classification par vote doux.
Concernant la régression, nous allons utiliser un modèle de forêt aléatoire à gradient boosté, cette approche permettant d'entraîner un modèle souvent performant sans hypothèse particulière sur la nature des observations. Ainsi, voici le diagramme correspondant à notre modèle de régression qui suppose l'accès à la prédiction du type de sortie (modèle conditionnel de régression).
On propose d'estimer le taux de bonne classification pondéré et l'erreurs quadratique moyenne par découpages apprentissage/test répétés $5$ fois en utilisant une grille de paramètres $\alpha$. L'approche aveugle correspond au cas $\alpha=0$ et l'approche d'oracle correspond au cas $\alpha=1$. Commençons par le cas où l'on estime en premier la loi marginale du type de sortie, autrement dit où l'on opère une pré-classification puis une régression.
On calibre le paramètre $\alpha$ pour la régression, c'est-à-dire dans le cas où l'on a procédé à une première étape de pré-classification.
Voici le résultat de la procédure de validation par découpages apprentissage/test répétés.
Voici les résultats obtenus sur l'ensemble de test par classification puis régression.
On calibre le paramètre $\alpha$ pour la classification, c'est-à-dire dans le cas où l'on a procédé à une première étape de pré-régression.
Voici le résultat de la procédure de validation par découpages apprentissage/test répétés.
Voici les résultats obtenus sur l'ensemble de test par régression puis classification.
Grâce aux résultats obtenus, nous sommes en mesure de répondre aux deux questions que nous nous étions posées dans le cadre de l'estimation d'une loi conditionnelle. Tout d'abord, on remarque que sur nos données, il est plus efficace de procéder à une étape de pré-classification puis à une régression conditionnelle que l'inverse, malgré l'équivalence théorique de ces deux approches. En effet, les résultats obtenus pour la classification sont ainsi meilleurs, et l'erreur quadratique est également très légèrement inférieure sur l'ensemble de test.
Ensuite, il est évident à la vue des graphiques de calibration des paramètres $\alpha$ qu'il est plus efficace d'adopter une approche aveugle dans l'entraînement des modèles conditionnels, c'est-à-dire qu'il est préférable de conditionner sur les prédictions du modèle marginal lui-même estimé plutôt que sur les vrais valeurs. Cela peut paraître surprenant, mais nous l'avons vérifié numériquement sur cette exemple, et par ailleurs on peut l'expliquer par le fait qu'en pratique, c'est bel et bien sur des prédictions effectuées par notre modèle marginal que le modèle conditionnel devra lui-même prédire. Ainsi, l'approche aveugle est plus fidèle à la méthodologie finalement appliquées à des nouvelles observations.
Nous sommes très heureux d'avoir travaillé sur ces données provenant d'un refuge animalier, car elles nous ont permis de nous confronter à des problèmes rarement rencontrés dans le cadre de notre formation, comme la prévalence de variable qualitatives cumulé à des modalités souvent très déséquilibrées. La prédiction d'une réponse bivariée nous a également forcé à adopter une approche spécifique, et nous avons fait preuve de créativité pour proposer une méthode d'estimation de la meilleure stratégie à adopter dans ce contexte. Enfin, et c'est aussi ça l'intérêt, ce travail nous a permis d'appliquer un grand nombre de méthodes apprises en cours, de l'analyse descriptive à la conception de modèles de prédiction, en passant par les tests d'hypothèse.