lightGradBoost

lgbmTrain

##set_lightgradboost

Description

L'action lgbmTrain  est le moteur de Formule 1 du boosting  de gradient dans SAS Viya

L'action lgbmTrain est le moteur de Formule 1 du boostingTechnique d'apprentissage séquentiel où chaque nouveau modèle corrige les erreurs des précédents. Elle réduit le biais et augmente la précision en pondérant les observations mal classées. de gradient dans SAS Viya. Basée sur l'algorithme LightGBM (Light Gradient BoostingMéthode d'apprentissage itérative créant une suite d'arbres de décision. Chaque nouvel arbre corrige les erreurs de prédiction des précédents pour minimiser globalement la fonction de perte. Machine), cette action est conçue pour être d'une rapidité insolente et d'une efficacité redoutable sur de grands jeux de données. Contrairement aux approches classiques qui font croître les arbres niveau par niveau (level-wise), LightGBM préfère la croissance par feuilles (leaf-wise), ce qui lui permet de converger plus vite vers une erreur minimale. C'est l'outil parfait pour les data scientistsExperts extrayant des connaissances via des méthodes statistiques, algorithmes et IA. Ils transforment les données brutes en insights stratégiques pour résoudre des problèmes métier complexes. pressés qui veulent des modèles robustes sans y passer la nuit. Attention tout de même : avec une telle puissance, le surapprentissage (overfittingSurapprentissage d'un modèle mémorisant le bruit des données d'entraînement au lieu des tendances, réduisant ainsi sa capacité de généralisation et sa précision sur de nouvelles observations.) vous guette si vous ne réglez pas bien vos paramètres de régularisation !

Syntaxe Officielle
lightGradBoost.lgbmTrain /
baggingFraction=double,
baggingFrequency=integer,
boosting="DART" | "GBDT" | "GOSS" | "RF",
inputs={"variable-name-1"<, "variable-name-2", ...>},
lasso=double,
leafSize=integer,
learningRate=double,
maxIters=integer,
objective="BINARY" | "MULTICLASS" | "REGRESSION" | ...,
saveState={name="table-name"},
table={name="table-name"},
target="variable-name"

Paramètres Clés

Nom du paramètre Description
table Spécifie la table CAS contenant vos données d'entraînement. C'est votre matière première.
inputs La liste des variables prédictives (features). Plus vous en mettez, plus le modèle réfléchit (et plus il peut s'emmêler les pinceaux).
target La variable que vous essayez de deviner. Le Graal de votre analyse.
boosting Le type d'algorithme de boosting. 'GBDT' est le classique, 'DART' utilise le dropout (pour les indécis), et 'GOSS' se concentre sur les gradients importants.
maxIters Nombre maximum d'arbres à construire. Trop peu et vous êtes aveugle, trop et vous voyez des patterns là où il n'y en a pas.
learningRate Le pas d'apprentissage. Un petit pas pour l'homme, mais un grand pas pour la précision du modèle.
objective Définit la nature du problème : BINARY pour un oui/non, REGRESSION pour un nombre, MULTICLASS pour choisir entre plusieurs étiquettes.
saveState Permet de sauvegarder le modèle entraîné dans une table 'Astore'. C'est comme mettre votre cerveau de data scientist dans un bocal pour le réutiliser plus tard.

Préparation des données

Génération de données de simulation pour le crédit

Nous créons une table de simulation 'CREDIT_DATA' avec des variables sur le revenu, l'âge et un indicateur de défaut de paiement pour tester notre modèle de boosting.

1DATA casuser.credit_data;
2 DO i = 1 to 10000;
3 age = floor(18 + 60*ranuni(123));
4 revenu = 20000 + 80000*ranuni(123);
5 dette = revenu * 0.4 * ranuni(123);
6 score_client = (revenu / 1000) - (dette / 500) + (age / 10) + rannor(123)*5;
7 IF score_client > 50 THEN defaut = 0; ELSE defaut = 1;
8 OUTPUT;
9 END;
10RUN;

Exemples d'utilisation

Classification Binaire Rapide

Un exemple simple pour prédire le défaut de paiement avec les paramètres par défaut.

1PROC CAS;
2 lightGradBoost.lgbmTrain /
3 TABLE={name="credit_data", caslib="casuser"},
4 target="defaut",
5 inputs={"age", "revenu", "dette"},
6 nominals={"defaut"},
7 objective="BINARY",
8 maxIters=50;
9RUN;
Résultat Attendu :
Un rapport d'itération montrant l'évolution de la fonction de perte et l'importance des variables.
Entraînement Avancé avec Régularisation et Sauvegarde

Ici, on sort l'artillerie lourde : régularisation Lasso/Ridge pour éviter le surapprentissage, échantillonnage (bagging) pour la robustesse, et sauvegarde du modèle final pour la mise en production.

1PROC CAS;
2 lightGradBoost.lgbmTrain /
3 TABLE={name="credit_data", caslib="casuser"},
4 target="defaut",
5 inputs={"age", "revenu", "dette"},
6 nominals={"defaut"},
7 objective="BINARY",
8 boosting="GBDT",
9 maxIters=200,
10 learningRate=0.05,
11 lasso=0.1,
12 ridge=0.1,
13 baggingFraction=0.8,
14 baggingFrequency=5,
15 leafSize=10,
16 seed=42,
17 saveState={name="lgbm_credit_model", replace=true},
18 outputTables={names={IterStats="stats_entrainement", VarImport="importance_variables"}};
19RUN;
Résultat Attendu :
Le modèle est entraîné avec 200 arbres. Les tables 'stats_entrainement' et 'importance_variables' sont créées dans CAS, et le modèle est prêt à être utilisé avec l'action 'astore.score'.