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
ethighThreshold
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
ethighThreshold
, 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.