Exploration de données relationnelles sans ILP

9

J'ai un énorme ensemble de données à partir d'une base de données relationnelle pour laquelle je dois créer un modèle de classification. Normalement, pour cette situation, j'utiliserais la programmation logique inductive (ILP), mais en raison de circonstances spéciales, je ne peux pas le faire.

L'autre façon de résoudre ce problème serait simplement d'essayer d'agréger les valeurs lorsque j'ai une relation étrangère. Cependant, j'ai des milliers de lignes importantes et distinctes pour certains attributs nominaux (par exemple: Un patient ayant une relation avec plusieurs prescriptions de médicaments distinctes). Donc, je ne peux pas faire cela sans créer un nouvel attribut pour chaque ligne distincte de cet attribut nominal, et en outre la plupart des nouvelles colonnes auraient des valeurs NULL si je fais cela.

Existe-t-il un algorithme non ILP qui me permette d'exploiter des bases de données relationnelles sans recourir à des techniques comme le pivotement, qui créeraient des milliers de nouvelles colonnes?

user697110
la source
2
Qu'en est-il de l'exploration de règles? Je ne vois pas clairement quel est votre objectif.
adesantos
Bien qu'une bonne question, je remarque qu'elle apparaît sur plusieurs forums Stack Exchange ... stackoverflow.com/questions/24260299/… ; Non pas que je sois un fanatique de trucs comme ça, mais je pense que nous ne sommes pas censés le faire
Hack-R
De plus, il serait très utile si vous pouviez être un peu plus précis en ce qui concerne ce que vous classifiez, la barrière que vous rencontrez et dans un monde idéal nous fournir des exemples de données à examiner
Hack-R

Réponses:

1

Tout d'abord, quelques mises en garde

Je ne sais pas pourquoi vous ne pouvez pas utiliser votre (sous-) paradigme de programmation préféré *, la programmation logique inductive (ILP) , ou ce que vous essayez de classer. Donner plus de détails conduirait probablement à une bien meilleure réponse; d'autant plus qu'il est un peu inhabituel d'approcher la sélection d'algorithmes de classification sur la base du paradigme de programmation auquel ils sont associés. Si votre exemple du monde réel est confidentiel, alors inventez simplement un exemple fictif mais analogue.

Classification Big Data sans ILP

Cela dit, après avoir exclu l'ILP, nous avons 4 autres paradigmes de programmation logique dans notre ensemble de considérations:

  1. Abductive
  2. Ensemble de réponses
  3. Contrainte
  4. Fonctionnel

en plus des dizaines de paradigmes et sous-paradigmes en dehors de la programmation logique.

Dans la Programmation Logique Fonctionnelle par exemple, il existe des extensions de l'ILP appelées Programmation Logique Fonctionnelle Inductive , qui est basée sur le rétrécissement d'inversion (c'est-à-dire l'inversion du mécanisme de rétrécissement). Cette approche surmonte plusieurs limites de l'ILP et ( selon certains chercheurs, au moins ) est aussi appropriée pour une application en termes de représentation et a l'avantage de permettre aux problèmes de s'exprimer de manière plus naturelle.

Sans en savoir plus sur les spécificités de votre base de données et les obstacles que vous rencontrez pour utiliser ILP, je ne peux pas savoir si cela résout votre problème ou souffre des mêmes problèmes. En tant que tel, je proposerai également une approche complètement différente.

ILP contraste avec les approches «classiques» ou «propositionnelles» de l'exploration de données . Ces approches incluent la viande et les os de l'apprentissage automatique comme les arbres de décision, les réseaux de neurones, la régression, l'ensachage et d'autres méthodes statistiques. Plutôt que d'abandonner ces approches en raison de la taille de vos données, vous pouvez rejoindre les rangs de nombreux Data Scientists, ingénieurs Big Data et statisticiens qui utilisent le calcul haute performance (HPC) pour utiliser ces méthodes avec des ensembles de données massifs (il existe également échantillonnage et autres techniques statistiques que vous pouvez choisir d'utiliser pour réduire les ressources de calcul et le temps requis pour analyser les Big Data dans votre base de données relationnelle).

HPC comprend des choses comme l'utilisation de plusieurs cœurs de processeur, la mise à l'échelle de votre analyse avec une utilisation élastique des serveurs avec une mémoire élevée et un grand nombre de cœurs de processeur rapides, l'utilisation d'appareils de stockage de données hautes performances, l'utilisation de clusters ou d'autres formes de calcul parallèle, etc. Je ne sais pas avec quelle langue ou suite statistique vous analysez vos données, mais à titre d'exemple, cette vue de tâche CRAN répertorie de nombreuses ressources HPC pour le langage R qui vous permettraient de mettre à l'échelle un algorithme propositionnel.

Hack-R
la source