Traiter des ensembles de données avec un nombre variable d'entités


14

Quelles sont certaines approches pour classer les données avec un nombre variable de fonctionnalités?

Par exemple, considérons un problème où chaque point de données est un vecteur de points x et y, et nous n'avons pas le même nombre de points pour chaque instance. Pouvons-nous traiter chaque paire de points x et y comme une caractéristique? Ou devrions-nous simplement résumer les points de manière à ce que chaque point de données ait un nombre fixe de fonctionnalités?


7
La présence ou l'absence d'un point donné aide-t-elle à classer les données?
jonsca

Réponses:


5

Vous pouvez traiter ces points comme manquants --- ie. supposons que le vecteur ait au plus 20 paires (x, y) et qu'un point particulier ait 5 paires (x, y), dans ce cas, traitez le reste des paires comme manquant, puis appliquez les procédures standard pour les paramètres manquants:

Ces procédures standard peuvent être:

  • Utilisez un modèle qui gère les paramètres manquants de manière naturelle, par exemple les modèles d'arbre de décision devraient être capables de faire face à cela.
  • Remplacez manquant par la valeur moyenne de la colonne appropriée.
  • Utilisez un modèle simple pour «prédire» les valeurs manquantes.

Mais comme les points @jonsca --- si la présence de l'absence de point donné aide à classer les données, vous devez par exemple construire quelques modèles, chacun modélise des instances avec un nombre particulier de points.


10

D'après la façon dont je comprends votre question, les points dans les données sont interchangeables et ne viennent avec aucun ordre, c'est-à-dire que vous avez un ensemble de points pour chaque exemple. Ce paramètre est différent du paramètre "Valeur manquante" que jb. décrit.

Je connais deux méthodes couramment utilisées pour ce problème, qui sont en fait basées sur vos idées. Une bonne référence serait probablement de simplement faire la moyenne de tous les points dans un exemple, mais cela ne fonctionne généralement pas bien.

  • Pour agréger plusieurs points à une seule fonctionnalité, des représentations de sacs de mots (ou de fonctionnalités) sont assez couramment utilisées, par exemple en vision par ordinateur. L'idée est de regrouper tous les points de votre ensemble d'entraînement (en utilisant par exemple k-means), puis de décrire chaque point par son cluster. Pour chaque exemple, vous obtenez alors un histogramme sur lequel les clusters se produisent à quelle fréquence.

  • Pour utiliser toutes les paires de points, vous pouvez utiliser des noyaux définis. Cela pourrait mieux fonctionner avec l'utilisation de SVM, mais fonctionnera probablement également avec tout algorithme d'apprentissage qui peut être noyé ou utiliser une fonction de compatibilité entre les entrées. Les noyaux d'ensemble sont essentiellement un moyen de calculer la similitude de deux ensembles de fonctionnalités, comme dans votre paramètre.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.