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=Truewatch_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'}.