logisticCode
Description
L'action logisticCode de l'ensemble d'actions %%regression permet de générer automatiquement du code SAS (étape DATA / DATA stepBloc de programmation SAS itératif utilisé pour lire, transformer et manipuler des données ligne par ligne afin de créer des tables de sortie personnalisées et calculer de nouvelles variables.) pour calculer les valeurs prédites à partir d'un modèleReprésentation mathématique entraînée sur des données pour capturer des tendances, prédire des résultats ou classifier des observations via des algorithmes (Régression, Forêt aléatoire, Gradient Boosting). de régression logistiqueModèle statistique prédisant la probabilité d'un événement binaire (0/1) via une fonction logistique. Il lie des variables explicatives à une variable cible catégorielle. préalablement ajusté. C'est un excellent moyen d'industrialiser vos prédictions : l'action écrit le code de scoringProcessus d'application d'un modèle prédictif à de nouvelles données pour calculer une probabilité ou un score, permettant ainsi d'automatiser la prise de décision en temps réel sur SAS Viya. à votre place ! Il vous suffit de fournir un modèleReprésentation mathématique entraînée sur des données pour capturer des tendances, prédire des résultats ou classifier des observations via des algorithmes (Régression, Forêt aléatoire, Gradient Boosting). ajusté via le paramètre obligatoire `restore`.
Paramètres Clés
| Nom du paramètre | Description |
|---|---|
| restore | Paramètre requis. Restaure le modèle de régression depuis un objet binaire (BLOB). C'est ici que vous indiquez la table CAS contenant votre modèle logistique ajusté. |
| casOut | Spécifie les paramètres de la table de sortie où le code généré peut être stocké. |
| comment | Si défini sur Vrai (True), ajoute des commentaires au code de l'étape DATA généré. Idéal pour comprendre la logique mathématique (et ne pas être perdu dans le code de la machine !). |
| fmtWdth | Spécifie la largeur de formatage (de 0 à 32) à utiliser pour les nombres dérivés comme les estimations de paramètres. La valeur par défaut est 20. |
| indentSize | Définit le nombre d'espaces pour indenter le code de l'étape DATA. Un code bien indenté est un code lisible ! (Valeur par défaut : 3). |
| intoCutPt | Spécifie le point de coupure (cutoff) entre 0 et 1 pour la colonne d'affectation des classes (INTO). La valeur par défaut est 0.5. |
| iProb | Si défini sur Vrai, génère le calcul des probabilités individuelles dans le code SAS. |
| labelId | Spécifie l'ID de l'étiquette à utiliser dans les noms de tableaux (arrays) et de labels d'instructions. Par défaut, un entier positif aléatoire est utilisé. |
| lineSize | Définit la longueur maximale de la ligne pour le code généré, allant de 64 à 254 caractères. (Défaut : 120). |
| noTrim | Si activé (True), la comparaison des valeurs formatées se basera sur la largeur complète du format avec remplissage, au lieu de supprimer les espaces de début et de fin. |
| outputTables | Liste les noms des tables de résultats à sauvegarder en tant que tables CAS sur le serveur. |
| pCatAll | Lorsque ce paramètre est Vrai, le code génère les probabilités pour tous les niveaux de la variable cible (réponse). |
| tabForm | Si défini sur Vrai, génère le code sous une forme appropriée pour être stocké directement dans une table CAS. |
Préparation des données
Préparation d'un modèle pour l'action logisticCode
Avant de pouvoir générer le code de scoring, nous devons ajuster un modèle de régression logistique à l'aide de l'action `logistic` et sauvegarder ce modèle dans une table CAS (ici `myModel`).
| 1 | PROC CAS; |
| 2 | SESSION casauto; |
| 3 | /* Chargement de la table d'exemple SAS */ |
| 4 | TABLE.loadTable / caslib="SystemData" path="iris.sashdat" casOut={name="iris", replace=True}; |
| 5 | /* Ajustement du modele logistique et sauvegarde dans myModel */ |
| 6 | regression.logistic / |
| 7 | TABLE={name="iris"} |
| 8 | class={"Species"} |
| 9 | model={depVar="Species", effects={"SepalLength", "SepalWidth", "PetalLength", "PetalWidth"}} |
| 10 | store={name="myModel", replace=True}; |
| 11 | QUIT; |
Exemples d'utilisation
Génération de code DATA step simple
Cet exemple basique illustre comment utiliser l'action `logisticCode` pour lire le modèle sauvegardé dans la table `myModel` et générer le code SAS avec des commentaires activés.
| 1 | PROC CAS; |
| 2 | regression.logisticCode / |
| 3 | restore={name="myModel"} |
| 4 | comment=True |
| 5 | indentSize=4; |
| 6 | QUIT; |
Résultat Attendu :
Génération de code avancée et sauvegarde en table CAS
Dans ce scénario plus approfondi, nous modifions la largeur de formatage des nombres, ajustons le seuil de classification (`intoCutPt`) à 0.65, activons le calcul de probabilités pour toutes les modalités (`pCatAll`), et enregistrons le code généré directement dans une table CAS sous forme tabulaire (`tabForm`).
| 1 | PROC CAS; |
| 2 | regression.logisticCode / |
| 3 | restore={name="myModel"} |
| 4 | comment=True |
| 5 | fmtWdth=16 |
| 6 | lineSize=100 |
| 7 | intoCutPt=0.65 |
| 8 | iProb=True |
| 9 | pCatAll=True |
| 10 | tabForm=True |
| 11 | casOut={name="logistic_score_code", replace=True}; |
| 12 | QUIT; |