lgbmTrain
Description
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 !
Paramètres Clés
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.
| 1 | DATA 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; |
| 10 | RUN; |
Exemples d'utilisation
Classification Binaire Rapide
Un exemple simple pour prédire le défaut de paiement avec les paramètres par défaut.
| 1 | PROC 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; |
| 9 | RUN; |
Résultat Attendu :
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.
| 1 | PROC 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"}}; |
| 19 | RUN; |