Techniques d'augmentation des données pour les ensembles de données générales?

21

Dans de nombreuses applications d'apprentissage automatique, les méthodes dites d'augmentation des données ont permis de construire de meilleurs modèles. Par exemple, supposons un ensemble de formation de images de chats et de chiens. En tournant, en miroir, en ajustant le contraste, etc., il est possible de générer des images supplémentaires à partir des images originales.100

Dans le cas des images, l'augmentation des données est relativement simple. Cependant, supposons (par exemple) que l'on dispose d'un ensemble d'apprentissage de échantillons et de quelques centaines de variables continues qui représentent différentes choses. L'augmentation des données ne semble plus aussi intuitive. Que pourrait-on faire dans un tel cas?100

mmh
la source
2
Je pense que certaines méthodes comme PCA ou AE sont toujours intuitives pour l'augmentation des données. La première méthode consiste à appliquer l'ACP et à conserver les k premières valeurs propres et à définir kn valeurs propres au hasard à partir d'une distribution, gaussienne, etc. Si une autre méthode utilise des auto-encodeurs pour construire elle-même les données. Si le nombre d'unités cachées est proche des unités visibles, il peut se construire assez bien. Les données reconstruites peuvent être utilisées comme partie augmentée des données.
yasin.yazici
@mmh, est-ce que cela a répondu à votre question?
shf8888
100X50503020
Voir ma thèse de maîtrise, page 80 pour un aperçu des techniques d'augmentation des données pour les images.
Martin Thoma
L'augmentation des données a beaucoup de sens pour les images, par exemple. Une image pivotée de l'objet est toujours une image de l'objet, et vous avez besoin que le modèle y soit exposé, mais vous n'avez probablement pas nécessairement une telle image dans votre jeu de données. Quel est le besoin / point d'augmentation des données dans ce cas? Il n'est pas clair pour moi que vous devriez faire cela.
gung - Rétablir Monica

Réponses:

17

Je comprends que cette question implique à la fois la construction de fonctionnalités et le traitement de la richesse des fonctionnalités que vous avez déjà + va construire, par rapport à vos observations ( N << P).

Construction d'entités

En développant le commentaire de @ yasin.yazici, quelques façons possibles d'augmenter les données seraient:

  • PCA
  • Encodage automatique
  • Transformez comme le journal, les pouvoirs, etc.
  • Regroupement des variables continues en catégories discrètes (c.-à-d., La variable continue est 1 ET au-dessus de la moyenne, 1 au-dessous de la moyenne, etc.)
  • Variables composites (par exemple, voir ici )

Je suis sûr qu'il en manque beaucoup d'autres.

Sélection des fonctionnalités / réduction de dimensionnalité

Vous pouvez réduire la dimensionnalité avec des techniques telles que PCA (bien que peut-être pas après avoir augmenté vos données avec des variables PCA). Alternativement, vous pouvez utiliser des algorithmes qui effectuent la sélection des fonctionnalités pour vous, tels que le lasso, la forêt aléatoire, etc.

shf8888
la source
2
Pouvez-vous expliquer comment l'encodage automatique peut être utilisé pour la construction de fonctionnalités?
roni
1
@roni La formation réussie d'un autoencodeur donne une certaine représentation des données à un niveau d'abstraction plus élevé. Espérons une représentation plus utile que vous pourrez utiliser dans un classificateur.
Chris Anderson
0

J'ai fait face à un problème similaire où je voulais augmenter les données numériques non étiquetées. J'ai augmenté les données de la manière suivante: (disons que j'ai un ensemble de données de taille 100 * 10.)

  1. Créez une liste en échantillonnant au hasard des valeurs de {0,1}, de sorte que le nombre de zéros soit inférieur au nombre de 1, disons que la proportion de 0 est de 20% dans ce cas. On aura donc une liste de 0 et de 1 de longueur 100.
  2. Utilisez cette liste comme variable dépendante et passez-la dans smote pour générer plus de points de données. (Ici, smote générerait des points sur les bords reliant les points de données qui correspondent aux 0 dans la liste générée).
  3. Répétez ce processus jusqu'à ce que l'ensemble de données de la taille requise soit obtenu.
Harshita Vemula
la source
1
Veuillez ne pas publier de réponses identiques sur plusieurs sujets. Si vous croyez vraiment que la même réponse que celle que vous avez publiée ailleurs répond pleinement à une autre question, marquez cette question en double de la première.
gung - Rétablir Monica