Développer un modèle de classification des données personnalisé, Excel VBA

Développer un modèle de classification des données personnalisé, Excel VBA

Voici un modèle détaillé en VBA pour développer un modèle de classification des données personnalisé dans Excel. Ce modèle classifie des données numériques en catégories comme « Bas », « Moyen » et « Haut » en fonction de certaines valeurs seuils. Il peut être étendu pour des cas de classification plus complexes, comme la segmentation des clients, le scoring de risque, etc.
Explication détaillée :
1. Entrée des données : On suppose que les données se trouvent dans une colonne (par exemple, la colonne A).
2. Logique de classification : On utilise une logique simple de type « si-alors » pour classer les données en fonction des plages de valeurs.
3. Sortie : Les résultats de la classification sont affichés dans une autre colonne (par exemple, la colonne B).
4. Paramètres définis par l’utilisateur : L’utilisateur peut définir les seuils de classification directement dans le code.
Code VBA :

Sub DataClassificationModel()
    Dim lastRow As Long
    Dim classificationRange As Range
    Dim dataRange As Range
    Dim cell As Range
    Dim lowThreshold As Double
    Dim highThreshold As Double
    ' Définir les seuils pour la classification
    lowThreshold = 50  ' En dessous de cette valeur, sera classé comme "Bas"
    highThreshold = 150  ' Au-dessus de cette valeur, sera classé comme "Haut"
    ' Trouver la dernière ligne dans la colonne A (là où se trouvent les données)
    lastRow = Cells(Rows.Count, 1).End(xlUp).Row
    ' Définir la plage des données
    Set dataRange = Range("A2:A" & lastRow)  ' Supposons que les données commencent à A2
    ' Définir la plage où les classifications seront placées
    Set classificationRange = Range("B2:B" & lastRow)  ' Les classifications dans la colonne B
    ' Boucle à travers chaque cellule de la plage de données
    For Each cell In dataRange
        If IsNumeric(cell.Value) Then  ' Vérifier si la valeur est numérique
            ' Classifier selon les seuils
            If cell.Value < lowThreshold Then cell.Offset(0, 1).Value = "Bas" ElseIf cell.Value >= lowThreshold And cell.Value <= highThreshold Then
                cell.Offset(0, 1).Value = "Moyen"
            Else
                cell.Offset(0, 1).Value = "Haut"
            End If
        Else
            ' Gérer les valeurs non numériques (par exemple, afficher "Invalide")
            cell.Offset(0, 1).Value = "Invalide"
        End If
    Next cell
    ' Message pour informer l'utilisateur que la classification est terminée
    MsgBox "Classification des données terminée !", vbInformation
End Sub

Explication du code :
1. Définir les seuils :

  • lowThreshold et highThreshold sont des valeurs définies par l’utilisateur, qui déterminent les limites pour les classifications « Bas », « Moyen » et « Haut ». Vous pouvez ajuster ces valeurs selon vos besoins.

2. Détection de la dernière ligne :

  • lastRow = Cells(Rows.Count, 1).End(xlUp).Row détecte la dernière ligne contenant des données dans la colonne A, ce qui permet au macro de fonctionner dynamiquement avec des tailles de jeux de données variables.

3. Définir les plages :

  • Set dataRange = Range("A2:A" & lastRow) définit la plage des données à classer (colonne A).
  • Set classificationRange = Range("B2:B" & lastRow) définit la plage où les résultats de la classification seront placés (colonne B).

4. Boucle à travers les données :

  • La boucle For Each cell In dataRange parcourt chaque cellule de la colonne A, vérifie si la valeur est numérique et la classe en fonction des seuils définis.

5. Classification des données :

  • Si la valeur est inférieure à lowThreshold, la classification est « Bas ».
  • Si la valeur est entre lowThreshold et highThreshold, la classification est « Moyen ».
  • Si la valeur est supérieure à highThreshold, la classification est « Haut ».
  • Si la valeur n’est pas numérique, elle est classée comme « Invalide ».

6. Sortie des résultats :

  • Le résultat de la classification est affiché dans la cellule adjacente de la colonne B à l’aide de cell.Offset(0, 1).Value.

7. Message de fin :

  • Après la boucle, une boîte de message apparaît pour informer l’utilisateur que la classification est terminée.

Exemple de jeu de données :

Données (Colonne A) Classification (Colonne B)
45 Bas
120 Moyen
200 Haut
90 Moyen
Données Invalides Invalide

Personnalisation :
1. Catégories multiples :

  • Vous pouvez étendre ce modèle en ajoutant davantage de seuils ou de catégories (par exemple, « Très Bas », « Très Haut »).

2. Modèles complexes :

  • Pour des classifications plus complexes, comme l’utilisation d’algorithmes de machine learning, vous pouvez intégrer des outils externes comme Python ou R via VBA, mais la logique de classification basique (comme dans cet exemple) peut toujours être utilisée.

3. Seuils dynamiques :

  • Vous pouvez permettre à l’utilisateur de définir les seuils via un formulaire ou des cellules dans la feuille Excel. De cette manière, l’utilisateur peut ajuster les paramètres de classification sans modifier le code VBA.

Ce modèle peut être utilisé dans divers cas de classification, tels que la segmentation des clients, la catégorisation des risques, ou la classification des produits.

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