Ressources pour apprendre à mettre en œuvre des méthodes d'ensemble

13

Je comprends théoriquement (en quelque sorte) comment ils fonctionneraient, mais je ne sais pas comment faire pour utiliser une méthode d'ensemble (comme le vote, les mélanges pondérés, etc.).

  • Quelles sont les bonnes ressources pour mettre en œuvre des méthodes d'ensemble?
  • Existe-t-il des ressources particulières concernant l'implémentation en Python?

ÉDITER:

Pour éclaircir certains sur la base de la discussion sur les commentaires, je ne cherche pas d'algorithmes d'ensemble tels que randomForest, etc. Au lieu de cela, je me demande comment pouvez-vous combiner différentes classifications de différents algorithmes.

Par exemple, supposons que quelqu'un utilise la régression logistique, le SVM et d'autres méthodes pour prédire la classe d'une certaine observation. Quelle est la meilleure façon de capturer la meilleure estimation de la classe basée sur ces prédictions?

user1074057
la source

Réponses:

12

Un bon point de départ est d'obtenir un aperçu de l'apprentissage d'ensemble. Surtout, vous voudrez regarder le renforcement et l' ensachage . Une autre méthode était celle utilisée par l'équipe "L'Ensemble" dans le Prix Netflix, est appelée "mélange" ou empilement de fonctionnalités .

Ensuite, trouvez simplement quelques bibliothèques qui les implémentent et fonctionnent à partir de là. Un googling rapide est apparu scikit et orange , qui devraient tous deux avoir un sac et un boost (et ils sont tous les deux en Python).

Si au-delà de l' utilisation de méthodes d'ensemble, vous souhaitez en apprendre un peu sur la théorie, je pense que cet article serait un bon point de départ (suivez les références des parties qui vous intéressent).

À votre santé.

Stumpy Joe Pete
la source
(+1) woa, de grandes références ici: O!
steffen
Merci. J'essaie simplement de contribuer à quelque chose sur l'un des rares sujets que je connais.
Stumpy Joe Pete
4

«Méthodes d'ensemble dans l'exploration de données: améliorer la précision en combinant les prédictions», Seni et Elder - Excellente référence sur la théorie et la mise en œuvre d'ensemble pratique, mais le code d'accompagnement est basé sur R.

«Machine Learning: An Algorithmic Perspective», S. Marsland - Excellent texte pratique basé sur Python, mais pas aussi dédié aux concepts d'ensemble purs que la première référence.

tapoter
la source
2

La réponse de Stumpy Joe Pete était parfaite, mais comme vous avez parlé d'une implémentation de Python, je voulais mentionner le projet de brassage de l'Universidade Federal de Pernambuco.

https://github.com/viisar/brew

from brew.base import Ensemble
from brew.base import EnsembleClassifier
from brew.combination import import Combiner

# create your Ensemble
clfs = your_list_of_classifiers # [clf1, clf2]
ens = Ensemble(classifiers = clfs)

# create your Combiner
# the rules can be 'majority_vote', 'max', 'min', 'mean' or 'median'
comb = Combiner(rule='majority_vote')

# now create your ensemble classifier
ensemble_clf = EnsembleClassifier(ensemble=ens, combiner=comb)
ensemble_clf.predict(X)

À ce stade, ils ont la génération d'ensemble, la combinaison, l'élagage et la sélection dynamique.

Limitations: classification uniquement; pas d'empilement dans la version publique actuelle; pas beaucoup de documentation.

Dayvid Oliveira
la source
0

Salford Systems a un progiciel appelé Random Forests qui l'implémente pour les ensembles d'arbres de classification et de régression. Je n'ai aucun forfait R gratuit à offrir. J'imagine qu'ils ont un manuel d'utilisation qui expliquera leur mise en œuvre. Par analogie, vous pourriez probablement trouver comment le faire pour d'autres méthodes d'ensemble.

Michael R. Chernick
la source
2
Il existe de nombreux packages R excellents pour les ensembles d'arbres: par exemple randomForest (algorithme classique), party :: cforest (forêt aléatoire utilisant des arbres d'inférence conditionnelle), gbm (renforcement du gradient d'arbres) pour n'en nommer que quelques-uns. J'ai lu l'OP comme voulant implémenter des ensembles agnostiques classifiants / régressifs. La procédure la plus simple est bien sûr de faire des prévisions moyennes.
B_Miner
@B_Miner Il est bon de savoir qu'il existe des implémentations disponibles dans R. Peut-être que quelqu'un pourrait m'expliquer pourquoi une implémentation spécifique en Python est souhaitable (veuillez excuser mon ignorance à propos de R). J'ai lu le PO pour vouloir connaître les sources qui décrivent comment implémenter les méthodes d'ensemble. Le paquet Salford en était un que je connaissais et qui pouvait contenir de la documentation.
Michael R. Chernick
Bien que basé sur les travaux de renforcement du papier Freund et Schapire en général, pour autant que je sache, les meilleurs résultats ont été obtenus en utilisant des classificateurs d'arbre.
Michael R. Chernick
Personnellement, j'obtiens de très bons résultats par simple moyenne des probabilités - mais mon domaine s'intéresse plus aux probabilités qu'à la sélection d'un libellé de classe.
B_Miner
@MichaelChernick Si vous faites vraiment le travail prédictif intense (comme ... une compétition Kaggle), vous n'allez choisir soit stimulant ou forêts aléatoires. Vous allez vouloir regrouper autant de modèles possibles que cela vous aidera (ce qui est généralement beaucoup plus qu'un). Donc, dans ce contexte, d'autres méthodes d'ensemble vont être importantes, même si les forêts aléatoires sont bien plus géniales qu'autre chose.
Stumpy Joe Pete
0

Le guide d'assemblage Scikit-learn fournit l' ensachage et le renforcement des méta-classificateurs et des régresseurs. De plus, la bibliothèque mlxtend fournit des implémentations de méta-classificateurs et régresseurs d' empilement .

Vadim Smolyakov
la source