Existe-t-il une implémentation de forêt aléatoire qui fonctionne bien avec des données très rares?

23

Existe-t-il une implémentation de forêt aléatoire R qui fonctionne bien avec des données très rares? J'ai des milliers ou des millions de variables d'entrée booléennes, mais seules des centaines environ seront VRAIES pour un exemple donné.

Je suis relativement nouveau dans R et j'ai remarqué qu'il existe un package 'Matrix' pour traiter les données rares, mais le package standard 'randomForest' ne semble pas reconnaître ce type de données. Si cela est important, les données d'entrée vont être produites en dehors de R et importées.

Aucun conseil? Je peux également étudier l'utilisation de Weka, Mahout ou d'autres packages.

Eryn
la source
Pour autant que je sache, il n'y a pas de packages R pour les arbres de décision clairsemés. Je crois qu'il existe un algorithme pour les arbres de décision clairsemés, qui, s'ils sont implémentés dans R, pourraient être utilisés pour construire des forêts aléatoires.
Zach
2
Voici un bon candidat: cs.cornell.edu/~nk/fest . Si vous pouvez exporter vos données au format libsvm, vous pouvez utiliser ce programme en ligne de commande. J'adorerais voir un port R ...
Zach
Zach - le lien semble être mort.
Benoit_Plante
2
@ cmoibenlepro le lien est lowrank.net/nikos/fest
seanv507
Link a bien fonctionné pour moi
David Marx

Réponses:

13

Non, il n'y a pas d'implémentation RF pour les données clairsemées dans R. En partie parce que les RF ne correspondent pas très bien à ce type de problème - l'ensachage et la sélection sous-optimale des divisions peuvent gaspiller la plupart des informations du modèle sur les zones zéro uniquement.

Essayez une méthode du noyau ou pensez à convertir vos données en une représentation plus luxuriante avec des descripteurs (ou utilisez une méthode de réduction de la dimensionnalité).

user88
la source
La réponse de Hack-R souligne le paquet xgboost, qui est parfaitement capable de faire des forêts aléatoires avec des matrices clairsemées.
Edgar
7

En fait, oui .

C'est xgboostfait pour augmenter le gradient eXtreme. C'est actuellement le package de choix pour l'exécution de modèles avec des matrices clairsemées dans R pour beaucoup de gens, et comme le lien ci-dessus l'explique, vous pouvez l'utiliser pour Random Forest en ajustant les paramètres !

Hack-R
la source
4

Le package R "Ranger" devrait faire l'affaire.

https://cran.r-project.org/web/packages/ranger/ranger.pdf

Une implémentation rapide de Random Forests, particulièrement adaptée aux données de grande dimension.

Comparé à randomForest, ce package est probablement l'implémentation RF la plus rapide que j'ai vue. Il traite les variables catégorielles de manière native.

amitos
la source
-4

Il existe un blog appelé Quick-R qui devrait vous aider avec les bases de R.

R fonctionne avec les packages. Chaque paquet peut faire quelque chose de différent. Il existe des packages appelés "randomForests" qui devraient être exactement ce que vous demandez.

Sachez que des données éparses poseront des problèmes quelle que soit la méthode que vous appliquerez. À ma connaissance, c'est un problème très ouvert et l'exploration de données en général est plus un art qu'une science. Les forêts aléatoires se débrouillent très bien dans l'ensemble, mais ce n'est pas toujours la meilleure méthode. Vous voudrez peut-être essayer un réseau de neurones avec beaucoup de couches, cela pourrait vous aider.

Vincent
la source
4
Non, randomForest est notoirement mauvais avec des données rares, d'où toute la question. Le paramètre classwt n'est pas correctement implémenté dans randomForest. Le suréchantillonnage manuel est une approche, mais il gâche l'erreur OOB. Soit dit en passant, le package n'est pas appelé «randomForests».
smci
1
Les parties de cela qui sont vraies ne sont pas des réponses à la question.
Sycorax dit Réintégrer Monica