Données numériques: qualités d'une bonne caractéristique numérique

Dans cet article, nous avons exploré différentes façons de mapper des données brutes dans des vecteurs de caractéristiques appropriés. Les caractéristiques numériques de qualité partagent les qualités décrites dans cette section.

Nom clair

La signification de chaque caractéristique doit être claire, logique et évidente pour tout humain participant au projet. Par exemple, la signification de la valeur de la caractéristique suivante est déroutante:

Approche déconseillée

house_age: 851472000

En revanche, le nom et la valeur de la fonctionnalité suivante sont beaucoup plus clairs:

Recommandé

house_age_years: 27

Vérifiés ou testés avant l'entraînement

Bien que ce module ait consacré beaucoup de temps aux valeurs aberrantes, ce sujet est suffisamment important pour mériter une dernière mention. Dans certains cas, des valeurs peu claires peuvent êtres dues à de mauvaises données (plutôt qu'à de mauvais choix de création). Par exemple, le user_age_in_years suivant provient d'une source pour laquelle aucune vérification de la qualité des valeurs n'a été effectuée:

Approche déconseillée

user_age_in_years: 224

Toutefois, les personnes âgées de 24 ans peuvent participer:

Recommandé

user_age_in_years: 24

Vérifiez vos données.

Sensible

Une "valeur magique" est une discontinuité intentionnelle dans une caractéristique autrement continue. Par exemple, supposons qu'une caractéristique continue nommée watch_time_in_seconds puisse contenir n'importe quelle valeur à virgule flottante comprise entre 0 et 30, mais qu'elle représente l'absence d'une mesure avec la valeur magique -1:

Approche déconseillée

watch_time_in_seconds: -1

Une valeur watch_time_in_seconds de -1 forcerait le modèle à essayer de comprendre ce que signifie regarder un film à rebours. Le modèle qui en résulte ne fournirait probablement pas de bonnes prédictions.

Une meilleure technique consiste à créer une fonctionnalité booléenne distincte qui indique si une valeur watch_time_in_seconds est fournie ou non. Exemple :

Recommandé

watch_time_in_seconds: 4.82
is_watch_time_in_seconds_defined=True

watch_time_in_seconds: 0
is_watch_time_in_seconds_defined=False

Il s'agit d'un moyen de gérer un ensemble de données continu avec des valeurs manquantes. Prenons maintenant en compte une caractéristique numérique discrète, comme product_category, dont les valeurs doivent appartenir à un ensemble fini de valeurs. Dans ce cas, lorsqu'une valeur est manquante, indiquez-la à l'aide d'une nouvelle valeur dans l'ensemble fini. Avec une caractéristique discrète, le modèle apprendra des pondérations différentes pour chaque valeur, y compris les pondérations d'origine pour les caractéristiques manquantes.

Par exemple, nous pouvons imaginer les valeurs possibles qui s'adaptent à l'ensemble:

{0: 'electronics', 1: 'books', 2: 'clothing', 3: 'missing_category'}.