Supposons que je veuille apprendre un classificateur qui prend un vecteur de nombres en entrée et donne une étiquette de classe en sortie. Mes données d'entraînement se composent d'un grand nombre de paires d'entrée-sortie.
Cependant, lorsque je viens de tester certaines nouvelles données, ces données ne sont généralement que partiellement complètes. Par exemple, si le vecteur d'entrée est de longueur 100, seuls 30 des éléments peuvent recevoir des valeurs et les autres sont "inconnus".
À titre d'exemple, considérons la reconnaissance d'image lorsque l'on sait qu'une partie de l'image est occluse. Ou considérez la classification dans un sens général où l'on sait qu'une partie des données est corrompue. Dans tous les cas, je sais exactement quels éléments du vecteur de données sont les parties inconnues.
Je me demande comment je peux apprendre un classificateur qui fonctionnerait pour ce type de données? Je pourrais simplement définir les éléments "inconnus" sur un nombre aléatoire, mais étant donné qu'il y a souvent plus d'éléments inconnus que ceux connus, cela ne semble pas être une bonne solution. Ou, je pourrais changer aléatoirement des éléments dans les données de formation en "inconnu", et m'entraîner avec ceux-ci plutôt que les données complètes, mais cela pourrait nécessiter un échantillonnage exhaustif de toutes les combinaisons d'éléments connus et inconnus.
Je pense en particulier aux réseaux de neurones, mais je suis ouvert à d'autres classificateurs.
Des idées? Merci!
Réponses:
Je pense qu'il existe un moyen raisonnable de le faire fonctionner avec les réseaux de neurones.
Je ne l'avais jamais vu faire auparavant, mais ce serait très similaire à faire Dropout (une méthode de régularisation bien connue dans les réseaux de neurones) dans vos neurones d'entrée, au lieu des neurones cachés. Je ne pense pas que ce soit une bonne idée de le faire en général, mais si vous êtes obligé de (comme votre cas), au moins c'est assez proche théoriquement de quelque chose qui est connu pour fonctionner.
la source
Je pense que certains choix fonctionnent avec n'importe quel classificateur:
En dehors de cela, vous pouvez utiliser des classificateurs basés sur des arbres (par exemple des forêts aléatoires) et si un arbre doit évaluer une division sur une entité manquante, il pourrait simplement transmettre les données aux deux nœuds enfants.
la source