Recherche de site Web

Faites de meilleures prédictions avec des ensembles de boosting, d'ensachage et de mélange dans Weka


Weka est la plateforme idéale pour étudier l'apprentissage automatique.

Il fournit une interface utilisateur graphique pour explorer et expérimenter des algorithmes d'apprentissage automatique sur des ensembles de données, sans que vous ayez à vous soucier des mathématiques ou de la programmation.

Dans un article précédent, nous avons expliqué comment concevoir et exécuter une expérience exécutant 3 algorithmes sur un ensemble de données et comment analyser et rapporter les résultats. Nous avons également examiné comment concevoir et exécuter une expérience pour affiner la configuration d'un algorithme d'apprentissage automatique.

Dans cet article, vous découvrirez comment utiliser Weka Experimenter pour améliorer vos résultats en combinant les résultats de plusieurs algorithmes dans des ensembles. Si vous suivez les instructions étape par étape, vous concevrez et exécuterez votre expérience d’apprentissage automatique d’ensemble en moins de cinq minutes.

Démarrez votre projet avec mon nouveau livre Machine Learning Mastery With Weka, comprenant des tutoriels étape par étape et des captures d'écran claires pour tous les exemples.

1. Téléchargez Weka et installez-le

Visitez la page de téléchargement Weka et localisez une version de Weka adaptée à votre ordinateur (Windows, Mac ou Linux).

Weka nécessite Java. Java est peut-être déjà installé et sinon, des versions de Weka répertoriées sur la page de téléchargement (pour Windows) incluent Java et l'installeront pour vous. Je suis moi-même sur un Mac et, comme tout le reste sur Mac, Weka fonctionne immédiatement.

Si vous êtes intéressé par l'apprentissage automatique, je sais que vous pouvez découvrir comment télécharger et installer des logiciels sur votre propre ordinateur.

2. Démarrez Weka

Démarrez Weka. Cela peut impliquer de le trouver dans le lanceur de programme ou de double-cliquer sur le fichier weka.jar. Cela démarrera le sélecteur d'interface graphique Weka.

Le sélecteur d'interface graphique Weka vous permet de choisir l'un des Explorateur, Expérimentateur, KnowledgeExplorer et Simple CLI (interface de ligne de commande).

Cliquez sur le bouton « Experimenter » pour lancer Weka Experimenter.

L'expérimentateur Weka vous permet de concevoir vos propres expériences d'exécution d'algorithmes sur des ensembles de données, d'exécuter les expériences et d'analyser les résultats. C’est un outil puissant.

3. Expérience de conception

Cliquez sur le bouton « Nouveau » pour créer une nouvelle configuration d'expérience.

Options de test

L'expérimentateur configure les options de test pour vous avec des valeurs par défaut raisonnables. L'expérience est configurée pour utiliser la validation croisée avec 10 plis. Il s’agit d’un problème de type « Classification » et chaque combinaison algorithme + jeu de données est exécutée 10 fois (contrôle des itérations).

Ensemble de données sur l'ionosphère

Commençons par sélectionner l’ensemble de données.

  1. Dans la zone « Ensembles de données », sélectionnez, cliquez sur le bouton « Ajouter un nouveau… ».
  2. Ouvrez le répertoire « data » et choisissez l'ensemble de données « ionosphere.arff ».

L'ensemble de données Ionosphere est un ensemble de données d'apprentissage automatique classique. Le problème est de prédire la présence (ou non) d’une structure électronique libre dans l’ionosphère à partir des signaux radar. Il est composé de 16 paires de signaux radar à valeur réelle (34 attributs) et d'un attribut de classe unique avec deux valeurs : bons et mauvais retours radar.

Vous pouvez en savoir plus sur ce problème sur la page UCI Machine Learning Repository pour l'ensemble de données Ionosphere.

Méthodes d'ensemble

Le J48 (C4.8) est une méthode d'arbre de décision puissante qui fonctionne bien sur l'ensemble de données Ionosphère. Dans cette expérience, nous allons étudier si nous pouvons améliorer le résultat de l'algorithme J48 en utilisant des méthodes d'ensemble. Nous allons essayer trois méthodes d'ensemble populaires : Boosting, Bagging et Blending.

Commençons par ajouter l’algorithme J48 à l’expérience afin de pouvoir comparer ses résultats aux versions d’ensemble de l’algorithme.

  1. Cliquez sur « Ajouter un nouveau… » dans la section « Algorithmes ».
  2. Cliquez sur le bouton « Choisir ».
  3. Cliquez sur « J48 » sous la sélection « arbre ».
  4. Cliquez sur le bouton « OK » sur la configuration « AdaBoostM1 ».

Booster

Le boosting est une méthode d'ensemble qui commence avec un classificateur de base préparé sur les données d'entraînement. Un deuxième classificateur est ensuite créé derrière lui pour se concentrer sur les instances dans les données d'entraînement pour lesquelles le premier classificateur s'est trompé. Le processus continue d'ajouter des classificateurs jusqu'à ce qu'une limite soit atteinte en termes de nombre de modèles ou de précision.

Le boosting est fourni dans Weka dans l'algorithme AdaBoostM1 (boosting adaptatif).

  1. Cliquez sur « Ajouter un nouveau… » dans la section « Algorithmes ».
  2. Cliquez sur le bouton « Choisir ».
  3. Cliquez sur « AdaBoostM1 » sous la sélection « meta ».
  4. Cliquez sur le bouton « Choisir » pour le « classificateur » et sélectionnez « J48 » sous la section « arborescence ». et cliquez sur le bouton « choisir ».
  5. Cliquez sur le bouton « OK » sur la configuration « AdaBoostM1 ».

Ensachage

Le bagging (Bootstrap Aggregating) est une méthode d'ensemble qui crée des échantillons distincts de l'ensemble de données d'entraînement et crée un classificateur pour chaque échantillon. Les résultats de ces multiples classificateurs sont ensuite combinés (comme le vote moyen ou majoritaire). L'astuce est que chaque échantillon de l'ensemble de données de formation est différent, ce qui donne à chaque classificateur formé une orientation et une perspective subtilement différentes sur le problème.

  1. Cliquez sur « Ajouter un nouveau… » dans la section « Algorithmes ».
  2. Cliquez sur le bouton « Choisir ».
  3. Cliquez sur « Bagging » sous la sélection « méta ».
  4. Cliquez sur le bouton « Choisir » pour le « classificateur » et sélectionnez « J48 » sous la section « arborescence ». et cliquez sur le bouton « choisir ».
  5. Cliquez sur le bouton « OK » sur la configuration « Bagging ».

Mélange

Le mélange est une méthode d'ensemble dans laquelle plusieurs algorithmes différents sont préparés sur les données d'entraînement et un méta-classificateur est préparé qui apprend à prendre les prédictions de chaque classificateur et à faire des prédictions précises sur des données invisibles.

Le mélange est appelé Stacking (d'après la méthode Stacked Generalization) dans Weka. Nous ajouterons l'empilement avec deux classificateurs (J48 et IBk) et utiliserons la régression logistique comme méta-classificateur.

Le J48 et l'IBk (k-voisin le plus proche) sont des algorithmes très différents et nous souhaitons inclure dans notre mélange des algorithmes qui sont « bons » (peuvent faire des prédictions significatives sur le problème) et variés (ont une perspective différente sur le problème et, par conséquent, faire différentes prédictions utiles). La régression logistique est une bonne méthode fiable et simple pour apprendre à combiner les prédictions de ces deux méthodes et est bien adaptée à ce problème de classification binaire car elle produit elle-même des sorties binaires.

  1. Cliquez sur « Ajouter un nouveau… » dans la section « Algorithmes ».
  2. Cliquez sur le bouton « Choisir ».
  3. Cliquez sur « Stacking » sous la sélection « meta ».
  4. Cliquez sur le bouton « Choisir » pour le « metaClassifier et sélectionnez « Logistique » dans la section « fonction » et cliquez sur le bouton « choisir ».
  5. Cliquez sur la valeur (nom de l'algorithme, c'est en fait un bouton) pour les « classificateurs ».
  6. Cliquez sur « ZéroR » et cliquez sur le bouton « Supprimer ».
  7. Cliquez sur le bouton « Choisir » pour le « classificateur » et sélectionnez « J48 » sous la section « arborescence ». et cliquez sur le bouton « Fermer ».
  8. Cliquez sur le bouton « Choisir » pour le « classificateur » et sélectionnez « IBk » dans la section « paresseux ». et cliquez sur le bouton « Fermer ».
  9. Cliquez sur le « X » pour fermer le sélecteur d'algorithme.
  10. Cliquez sur le bouton « OK » sur la configuration « Bagging ».

4. Exécuter l'expérience

Cliquez sur l'onglet « Exécuter » en haut de l'écran.

Cet onglet est le panneau de contrôle permettant d'exécuter l'expérience actuellement configurée.

Cliquez sur le gros bouton « Démarrer » pour démarrer l'expérience et regardez les sections « Journal » et « Statut » pour garder un œil sur la façon dont elle se déroule. fait.

5. Examiner les résultats

Cliquez sur l'onglet « Analyser » en haut de l'écran.

Cela ouvrira le panneau d’analyse des résultats de l’expérience.

Rang de l'algorithme

La première chose que nous voulons savoir est quel algorithme est le meilleur. Nous pouvons le faire en classant les algorithmes selon le nombre de fois où un algorithme donné a battu les autres algorithmes.

  1. Cliquez sur le bouton « Sélectionner » pour la « Base de test » et choisissez « Classement ».
  2. Cliquez maintenant sur le bouton « Effectuer le test ».

Le tableau de classement montre le nombre de victoires statistiquement significatives que chaque algorithme a remportées par rapport à tous les autres algorithmes de l'ensemble de données. Une victoire signifie une précision meilleure que celle d’un autre algorithme et que la différence était statistiquement significative.

On voit que la version AdaBoostM1 de J48 est classée la plus haute avec 2 victoires significatives contre d'autres algorithmes. Nous pouvons également voir que Stacking et Plain Old J48 sont classés les plus bas. C'est un bon signe que J48 soit classé bas, cela suggère qu'au moins certaines des méthodes d'ensemble ont augmenté la précision du problème.

Précision de l'algorithme

Ensuite, nous voulons savoir quels scores les algorithmes ont obtenus.

  1. Cliquez sur le bouton « Sélectionner » pour la « Test de base » et choisissez l'algorithme « J48 » dans la liste et cliquez sur « Sélectionner ».
  2. Cochez la case à côté de « Afficher std. écarts".
  3. Cliquez maintenant sur le bouton « Effectuer le test ».

Nous pouvons constater que l'algorithme AdaBoostM1 a atteint une précision de classification de 93,05 % (+/- 3,92 %). Nous pouvons voir qu'il s'agit d'une valeur supérieure à J48 à 89,74% (+/- 4,38%). Nous pouvons voir un « * » à côté de la précision de J48 dans le tableau et cela indique que la différence entre l'algorithme J48 boosté est significative (statistiquement significative).

On voit aussi que l'algorithme AdaBoostM1 a obtenu un résultat avec une valeur supérieure à Bagging à 92,40% (+/- 4,40%), mais on ne voit pas de petit « * » qui indique que la différence n'est pas significative (non statistiquement significative ).

Résumé

Dans cet article, vous avez découvert comment configurer une expérience d'apprentissage automatique avec un ensemble de données et trois ensembles d'algorithmes dans Weka. Vous avez découvert comment utiliser l'expérimentateur Weka pour améliorer la précision d'un algorithme d'apprentissage automatique sur un ensemble de données à l'aide de méthodes d'ensemble et comment analyser les résultats.

Si vous êtes arrivé jusqu'ici, pourquoi pas :

  • Voyez si vous pouvez utiliser d'autres méthodes d'ensemble et obtenir un meilleur résultat.
  • Voyez si vous pouvez utiliser une configuration différente pour les algorithmes de Bagging, Boosting ou Blending et obtenir un meilleur résultat.

Articles connexes