Automatiser les processus de formation des modèles d’apprentissage automatique, Excel VBA

Automatiser les processus de formation des modèles d’apprentissage automatique, Excel VBA

L’automatisation des processus de formation des modèles d’apprentissage automatique dans Excel à l’aide de VBA (Visual Basic for Applications) est un défi intéressant. Bien qu’Excel ne soit pas l’outil le plus optimal pour l’entraînement des modèles d’apprentissage automatique (qui sont mieux réalisés avec des langages comme Python, R ou des outils spécialisés), il est possible d’automatiser certaines étapes, telles que le prétraitement des données, la formation de modèles simples, et l’évaluation des performances du modèle. 

Objectif 

L’objectif de ce code est d’automatiser une série de tâches d’apprentissage automatique dans Excel, telles que : 

  • Importation et prétraitement des données. 
  • Entraînement d’un modèle de régression linéaire ou de classification simple. 
  • Évaluation du modèle sur de nouvelles données (test). 
  • Affichage des résultats dans une feuille Excel. 

Pré-requis 

  • Des données sous forme de tableau dans Excel (par exemple, des valeurs d’entraînement et de test). 
  • Un modèle simple comme la régression linéaire (parce qu’Excel peut le gérer avec ses fonctions intégrées). 
  • L’utilisation de VBA pour automatiser la formation et l’évaluation du modèle. 

Code VBA pour Automatiser la Formation d’un Modèle 

Voici un exemple d’un code VBA détaillé pour automatiser l’entraînement d’un modèle de régression linéaire et prédire les valeurs en utilisant les données d’entraînement : 

Sub AutomatiserFormationModeles() 
    ' Déclarations des variables 
    Dim plageDonnees As Range 
    Dim plageX As Range 
    Dim plageY As Range 
    Dim model As Object 
    Dim predictions As Variant 
    Dim i As Integer 
    Dim feuille As Worksheet 
    Dim dernierLigne As Long      
    ' Initialiser la feuille active 
    Set feuille = ThisWorkbook.Sheets("Données")     
    ' Identifier la plage de données (colonnes X et Y) 
    dernierLigne = feuille.Cells(feuille.Rows.Count, 1).End(xlUp).Row ' Dernière ligne avec des données dans la colonne 1 
    Set plageDonnees = feuille.Range("A2:B" & dernierLigne) ' Plage d'entraînement (ex. données dans les colonnes A et B) 
    ' Séparer X et Y (Caractéristiques et Cibles) 
    Set plageX = feuille.Range("A2:A" & dernierLigne) ' Variables indépendantes (X) 
    Set plageY = feuille.Range("B2:B" & dernierLigne) ' Variables dépendantes (Y) 
    ' Appliquer la régression linéaire via l'outil d'analyse d'Excel 
    Application.AddIns("Analysis ToolPak").Installed = True ' Vérifier si l'outil Analysis ToolPak est installé 
    Application.Run "ATPVBAEN.XLA!Regress", plageY, plageX, False, True, , , , , , , , , False  
    ' Récupérer les coefficients du modèle de régression linéaire 
    ' Le résultat est stocké dans la feuille "Données" à partir de la colonne D (par défaut) 
    Dim intercept As Double 
    Dim coef As Double 
    intercept = feuille.Range("D3").Value ' Intercept 
    coef = feuille.Range("D4").Value ' Coefficient de X 
    ' Afficher les coefficients dans la feuille 
    feuille.Cells(1, 4).Value = "Intercept" 
    feuille.Cells(2, 4).Value = intercept 
    feuille.Cells(1, 5).Value = "Coefficient" 
    feuille.Cells(2, 5).Value = coef 
    ' Prédire les valeurs pour de nouvelles données (Test) 
    For i = 2 To dernierLigne 
        ' Formule de prédiction: Y = a + b*X (Régression linéaire) 
        feuille.Cells(i, 6).Value = intercept + coef * feuille.Cells(i, 1).Value ' Résultat prédit (colonne F) 
    Next i 
    ' Calculer et afficher l'erreur quadratique moyenne (RMSE) 
    Dim erreur As Double 
    Dim sommeErreur As Double 
    sommeErreur = 0 
    For i = 2 To dernierLigne 
        erreur = feuille.Cells(i, 6).Value - feuille.Cells(i, 2).Value ' Différence entre prédiction et valeur réelle 
        sommeErreur = sommeErreur + (erreur ^ 2) 
    Next i 
    Dim rmse As Double 
    rmse = Sqr(sommeErreur / (dernierLigne - 1)) ' Racine carrée de la moyenne des erreurs au carré 
    ' Afficher RMSE dans la feuille 
    feuille.Cells(1, 7).Value = "RMSE" 
    feuille.Cells(2, 7).Value = rmse 
End Sub

Explications du Code 

  1. Initialisation des variables
  • plageDonnees, plageX et plageY font référence aux données d’entraînement. plageX correspond aux variables indépendantes (features), et plageY aux variables dépendantes (cibles). 
  1. Préparation des données
  • Les données sont extraites à partir de la feuille « Données » dans les colonnes A (X) et B (Y), à partir de la ligne 2 jusqu’à la dernière ligne remplie. 
  1. Régression Linéaire avec l’outil d’Excel
  • Le code utilise l’outil intégré d’Excel « Analysis ToolPak » pour effectuer une régression linéaire. Cela génère les coefficients de régression (l’intercept et les coefficients pour chaque variable X). 
  1. Prédiction des valeurs
  • Le modèle prédit les valeurs en utilisant la formule de la régression linéaire Y=a+bXY = a + bXY=a+bX, où aaa est l’intercept et bbb est le coefficient de X. 
  1. Calcul de l’erreur (RMSE)
  • L’erreur quadratique moyenne (RMSE) est calculée pour évaluer la précision du modèle. La RMSE mesure la différence moyenne entre les valeurs prédites et réelles, ce qui permet de juger de la qualité du modèle. 
  1. Affichage des résultats
  • Le code affiche l’intercept et le coefficient dans la feuille Excel, ainsi que les valeurs prédites et l’erreur RMSE. 

Exécution 

  1. Ouvrez votre fichier Excel et assurez-vous que vos données d’entraînement sont présentes sous forme de tableau dans la feuille « Données ». 
  1. Appuyez sur Alt + F11 pour ouvrir l’éditeur VBA. 
  1. Dans l’éditeur, cliquez sur Insertion > Module et collez le code VBA. 
  1. Fermez l’éditeur VBA et exécutez la macro à partir de Alt + F8, puis sélectionnez AutomatiserFormationModeles. 

Limitations et Améliorations 

  • Modèle Simple : Ce code applique une régression linéaire simple. Pour des modèles plus complexes, comme les forêts aléatoires, les réseaux de neurones, etc., vous devrez utiliser un langage comme Python ou des outils externes. 
  • Outil d’Analyse : La régression linéaire d’Excel via le « ToolPak » est une bonne option pour des modèles simples, mais pour des modèles plus avancés, il faudrait envisager d’intégrer Excel avec Python ou d’utiliser un autre outil externe. 
  • Prétraitement des Données : Vous pouvez étendre ce code pour inclure des étapes de nettoyage et de préparation des données, comme la gestion des valeurs manquantes ou la normalisation. 

Cela devrait vous donner une idée de base pour automatiser l’entraînement de modèles simples dans Excel avec VBA. 

Facebook
Twitter
LinkedIn
WhatsApp
Email
Print
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x