Accéder au contenu principal Passer au contenu complémentaire

Transformation des types de données

Lorsque vous formez un modèle d'apprentissage machine, il est important que l'ensemble de données représente avec exactitude tous les types de données. Si la représentation d'une variable est inexacte, cela pourrait réduire l'exactitude du modèle ou produire un modèle qui semble de bonne qualité, mais qui n'émet pas de prédictions fiables lorsqu'il est appliqué à des données réelles. Vous devez pouvoir faire la distinction entre ce que mesure chaque caractéristique et la manière de représenter correctement ladite caractéristique.

De manière générale, l'apprentissage machine considère tout type de données flottant ou double comme une valeur numérique et tout ce qui ressemble à une chaîne comme une valeur catégorique. Cependant, il se peut que l'interprétation ne soit pas toujours correcte, comme nous allons le voir dans les exemples suivants.

Les exemples sont basés sur un ensemble de données agrégé dans le but de répondre à la question suivante : « Un utilisateur fera-t-il un autre achat dans les 30 jours suivant la date du premier achat ? » L'ensemble de données contient des colonnes de différents types de données tels que des chaînes, des valeurs doubles, des entiers, des valeurs booléennes et des dates.

Colonnes et types de données

Tableau avec des noms de colonne et des types de données.

Chaînes

Le tableau ci-dessous montre deux des colonnes de l'ensemble de données présentant toutes les deux des données de type chaîne. La colonne MarketingSource ne présente pas de différence mesurable entre les valeurs, par exemple, entre « Facebook » et « Customer Referral » (Recommandation par un client). Il n'existe pas de relation numérique ou scalaire et la colonne doit par conséquent être considérée comme catégorique.

Par ailleurs, les valeurs de la colonne SourceCostPerAcquisition (Coût par acquisition source) varient de « Low » (Faible) à « High » (Élevé) et présentent une différence davantage mesurable les unes par rapport aux autres. Cette différence n'est pas aussi exacte que si on avait le coût moyen par acquisition source en dollars, mais il existe un ordre de grandeur (magnitude) distinct entre les valeurs. Dans ce cas, il y a matière à discussion pour savoir si la valeur SourceCostPerAcquisition doit être considérée comme catégorique ou numérique.

Échantillons de données pour les colonnes PersonID, MarketingSource et SourceCostPerAquisition

Tableau contenant des échantillons de données.

Une pratique recommandée dans ces situations est de créer deux configurations distinctes, chacune avec une classification différente possible des fonctionnalités. Ces expérimentations seraient menées séparément. La première configuration serait pour la représentation originale sous forme de chaîne de caractères. Dans la deuxième configuration, vous attribueriez une correspondance numérique aux différentes valeurs, en convertissant la colonne au type de données double. Par exemple, « Low » = 1.0, « Medium » = 2.0 et « High » = 3.0. Après avoir exécuté chaque configuration, vous pourriez acquérir une meilleure compréhension de laquelle fonctionne mieux pour ce cas d'utilisation particulier. Dans certains cas, il est pertinent d'utiliser une représentation sous forme de chaîne de caractères, tandis que dans d'autres cas, une représentation numérique pourrait être plus appropriée.

Nombres

En cas de différence mesurable entre les descriptions des données d'une colonne, elle doit être représentée sous forme de valeurs numériques. C'est le cas, par exemple, des coûts, revenus, profits, dénombrements, sommes et moyennes.

Parfois, l'ensemble de données peut avoir une valeur numérique qui n'est pas mesurable, car il s'agit d'une valeur tirée d'un dictionnaire ou d'une valeur incrémentielle telle qu'un ID. Dans notre exemple, les valeurs de la colonne PersonID auraient pu être malencontreusement prises pour des valeurs numériques si elles n'avaient pas commencé par « Person_ ». Si les ID avaient été traités comme des valeurs numériques, cela aurait constitué une représentation inexacte de la différence entre ces lignes. Dans ce genre de cas, il est conseillé de représenter l'ID sous forme de chaîne. Avant d'utiliser un ensemble de données, vous devrez peut-être déterminer si l'une des colonnes numériques doit être convertie en colonne de valeurs catégoriques.

Dates

Dans le contexte de l'apprentissage machine, les champs de type date sont des variables catégoriques. Même s'il est possible de soustraire les dates et les horodatages les uns des autres, une date est constituée de plusieurs composants. La question est de savoir quels composants prendre en compte et comment : La valeur correspond-elle à l'année, au mois, au jour du mois ou de l'année ou à l'heure du jour ? Peut-être souhaitez-vous la différence horaire en minutes ? Pour obtenir une prédiction optimale, il convient d'analyser la date en quelques-uns de ses composants, au minimum. Certains de ces composants peuvent être catégoriques et certains autres numériques.

Par exemple, une date peut être analysée en jour de la semaine. Cela peut être représenté sous forme de valeur numérique (1 à 7) ou de chaîne (« Sunday » (Dimanche) à « Saturday » (Samedi)).

Jours de la semaine sous forme de nombres et de chaînes

Tableau avec des jours de la semaine représentés sous forme de nombres et de chaînes.

La représentation du jour de la semaine sous forme de valeur numérique pose quelques problèmes. Quel est le début de la semaine, le lundi (Monday) ou le dimanche (Sunday) ? En outre, même si le jour de la semaine est important, il peut être masqué dans une tendance cyclique.

Dans certains cas, la tendance peut être très parlante, comme sur le graphique 1, où la semaine commence le lundi (Monday).

Graphique 1 : Ventes moyennes par jour de la semaine, avec la semaine commençant le lundi

Graphique des ventes par jour de la semaine avec une courbe de tendance claire.

Le graphique 2 comporte les mêmes données que le graphique 1, mais avec un décalage d'une journée pour que la semaine commence le dimanche (Sunday). Ici, les données ont beaucoup moins d'importance.

Graphique 2 : Ventes moyennes par jour de la semaine, avec la semaine commençant le dimanche

Graphique des ventes par jour de la semaine sans courbe de tendance claire.

Le graphique 3 illustre un autre problème posé par l'utilisation du composant analysé d'une date comme valeur numérique. Il se peut qu'il existe un pattern significatif, mais, s'il n'est pas linéaire, il sera ignoré. À cause de cela, et des tendances cycliques (par exemple, saisonnalité quotidienne ou trimestrielle) souvent présentes dans les composants de date, il est recommandé d'utiliser ces composants sous forme de valeurs catégoriques et non sous forme de valeurs numériques.

Graphique 3 : Ventes moyennes par jour de la semaine indiquant un milieu de semaine avec des ventes importantes

Graphique des ventes par jour de la semaine avec un pic en milieu de semaine dû à une tendance cyclique.

Qlik AutoML utilise l'ingénierie automatique des caractéristiques pour séparer les composantes des dates et des horodatages dans leurs propres colonnes distinctes. Cela contribue à améliorer la capacité prédictive des modèles que vous créez. Les caractéristiques auto-conçues dérivées d'une caractéristique de date parente sont classées comme des caractéristiques numériques. Si nécessaire, vous avez la possibilité d'outrepasser cette caractéristique pour que les colonnes de dates soient traitées comme catégoriques. Pour plus d'informations, consultez Ingénierie des caractéristiques de date.

Différences de date

Les différences de date peuvent être utilisées comme substitut de meilleure qualité aux ID incrémentiels, car ces derniers se contentent de décrire l'ordre d'ajout des enregistrements au tableau. Les ID incrémentiels peuvent facilement être faussés par le changement de volume (nombre de clients par jour, dans de nombreux exemples), tandis qu'une différence de date ne tient aucun compte de cette vitesse.

La différence de date peut être représentée par plusieurs mesures : secondes, heures, jours, mois ou trimestres. Sélectionnez celle qui correspond le mieux à la granularité de vos données. Par exemple, pour des données mensuelles, il n'existera aucune valeur réelle en cas de différence de date en jours. Dans ce cas, une différence de date en mois sera plus parlante.

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – dites-nous comment nous améliorer !