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 :
lowThresholdethighThresholdsont 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).Rowdé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 dataRangeparcourt 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
lowThresholdethighThreshold, 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.