assess
Description
L'action percentile.assess permet d'évaluer et de comparer les performances de vos modèles prédictifsAlgorithmes entraînés sur SAS Viya pour analyser des données historiques et estimer la probabilité de résultats futurs, facilitant ainsi la prise de décision proactive et automatisée. (parce qu'on aime tous savoir qui a la plus grosse... précision). Elle génère des statistiques d'ajustement (lift, ROC, etc.) indispensables pour valider et comparer vos algorithmes de machine learningBranche de l'IA utilisant des algorithmes pour apprendre des modèles à partir de données. Il permet d'automatiser des prédictions ou des décisions sans programmation explicite de chaque règle.. Source :
Paramètres Clés
| Nom du paramètre | Description |
|---|---|
| table | Spécifie la table d'entrée (souvent issue d'une étape de scoring) contenant les données à évaluer. |
| response | La variable cible (réelle) utilisée pour évaluer l'exactitude du modèle. |
| inputs | Les variables d'entrée à évaluer (généralement vos probabilités prédites). |
| pVar | Les variables de probabilité d'événement. À utiliser conjointement avec pEvent pour les modèles à cibles nominales/catégorielles. |
| pEvent | Les événements correspondant à chaque variable de probabilité définie dans pVar. |
| event | La valeur formatée de la variable de réponse qui représente l'événement d'intérêt. |
| casOut | Table de sortie principale contenant les résultats globaux de l'évaluation (lift, etc.). |
| rocOut | Table de sortie spécifique pour les statistiques de la courbe ROC (taux de vrais/faux positifs). |
| fitStatOut | Table de sortie pour les statistiques d'ajustement globales. |
| nBins | Nombre de segments (bins) pour les calculs de lift (par défaut: 20). |
| cutStep | Taille du pas pour les calculs ROC (par défaut: 0.01). |
Préparation des données
Création de données de test (Scoring fictif)
Créons une petite table simulant des résultats de scoring (prédictions vs valeurs réelles) pour pouvoir évaluer notre modèle imaginaire.
| 1 | DATA casuser.scored_data; |
| 2 | call streaminit(12345); |
| 3 | DO i = 1 to 1000; |
| 4 | reponse_reelle = ifc(rand('uniform') < 0.3, 'Oui', 'Non'); |
| 5 | proba_oui = rand('uniform'); |
| 6 | proba_non = 1 - proba_oui; |
| 7 | /* Ajout d'une petite logique pour que le modèle soit meilleur que le hasard */ |
| 8 | IF reponse_reelle = 'Oui' THEN proba_oui = min(1, proba_oui + 0.2); |
| 9 | ELSE proba_oui = max(0, proba_oui - 0.2); |
| 10 | OUTPUT; |
| 11 | END; |
| 12 | RUN; |
Exemples d'utilisation
Évaluation d'un modèle binaire simple
Évaluation basique d'un modèle de classification binaire pour générer les courbes Lift et ROC standard.
| 1 | PROC CAS; |
| 2 | percentile.assess / |
| 3 | TABLE={name="scored_data", caslib="casuser"} |
| 4 | response="reponse_reelle" |
| 5 | event="Oui" |
| 6 | inputs={"proba_oui"} |
| 7 | pVar={"proba_oui"} |
| 8 | pEvent={"Oui"} |
| 9 | rocOut={name="roc_results", caslib="casuser", replace=true} |
| 10 | fitStatOut={name="fit_results", caslib="casuser", replace=true}; |
| 11 | RUN; |
| 12 | QUIT; |
Résultat Attendu :
Évaluation avancée avec centiles et pas ROC ajusté
Une évaluation plus granulaire pour les puristes, en utilisant 100 centiles (au lieu de 20 bins par défaut) et un pas plus fin pour lisser la courbe ROC.
| 1 | PROC CAS; |
| 2 | percentile.assess / |
| 3 | TABLE={name="scored_data", caslib="casuser"} |
| 4 | response="reponse_reelle" |
| 5 | event="Oui" |
| 6 | inputs={"proba_oui"} |
| 7 | pVar={"proba_oui"} |
| 8 | pEvent={"Oui"} |
| 9 | nBins=100 |
| 10 | cutStep=0.005 |
| 11 | includeCutoffOne=true |
| 12 | includeZeroDepth=true |
| 13 | casOut={name="assess_details", caslib="casuser", replace=true} |
| 14 | rocOut={name="roc_details", caslib="casuser", replace=true} |
| 15 | fitStatOut={name="fit_details", caslib="casuser", replace=true}; |
| 16 | RUN; |
| 17 | QUIT; |