Classification avec des données partiellement «inconnues»

11

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!

Karnivaurus
la source
en.m.wikipedia.org/wiki/Missing_data pourrait être un point de départ.
Hatchepsout
Je pense que l'apprentissage semi-supervisé est plus le cas où les données de formation ne sont pas entièrement étiquetées. Dans mon cas, toutes mes données d'entraînement sont étiquetées, mais certaines parties des données de test sont "inconnues".
Karnivaurus
Apprentissage semi-supervisé avec des réseaux à contacts
itdxer

Réponses:

2

Je pense qu'il existe un moyen raisonnable de le faire fonctionner avec les réseaux de neurones.

p

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.

etal
la source
1

Je pense que certains choix fonctionnent avec n'importe quel classificateur:

  • Imputez les valeurs manquantes avec une seule valeur, comme la moyenne ou la médiane de l'ensemble d'apprentissage ou une valeur prédite à partir des parties observées de l'entrée, ou utilisez simplement un nombre aléatoire ou une constante.
  • Utilisez plusieurs valeurs différentes pour les inconnues et agrégez les résultats, par exemple, faites-en la moyenne

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.

p(X,y)XyXXet faire la moyenne des résultats pondérés par la probabilité de cette imputation. Cela pourrait être fait soit analytiquement sous forme fermée pour certains classificateurs, par exemple un modèle d'analyse discriminante linéaire, soit approximativement en échantillonnant les inconnues, par exemple pour une machine Boltzmann restreinte ou ses variantes profondes (qui sont liées à des réseaux de neurones à action directe).

Tobias
la source
je ne pense pas que cela fonctionnerait. Utilisez un exemple typique de la vision par ordinateur, chaque pixel d'une image peut être associé à une partie différente d'un objet. Exemple, le pixel (50,50) de l'image 1 est l'œil d'un chat, mais le chat est un peu déplacé dans l'image 2, donc (50, 50) n'est qu'un pixel de l'arrière-plan. Si l'emplacement des AN, c.-à-d. occlusion aléatoire, varie selon l'observation, votre imputation ne fonctionnera pas.
horaceT