nonParametricBayes

gpReg

##set_nonparametricbayes

Description

L'action gpReg (pour Gaussian Process RegressionLa régression par processus gaussien est une méthode bayésienne non paramétrique modélisant la distribution des fonctions pour fournir des prédictions continues assorties d'une mesure d'incertitude.) permet d'entraîner 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 par processus gaussien. C'est un outil très puissant pour modéliser des relations non linéaires complexes sans devoir spécifier une forme fonctionnelle rigide à l'avance. Magie de l'aléatoire (contrôlée, bien sûr) ! D'après la , cette action apprend 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 à l'aide des processus gaussiens, offrant ainsi une flexibilité remarquable pour capturer la structure sous-jacente des données.

Syntaxe Officielle
proc cas;
nonParametricBayes.gpReg /
table={name="nom_table"}
inputs={"var1", "var2"}
target="variable_cible"
kernel="RBF"
nInducingPoints=100
autoRelevanceDetermination=TRUE
output={casOut={name="table_sortie", replace=TRUE}, copyVars="ALL"}
saveState={name="etat_modele", replace=TRUE};
run;
quit;

Paramètres Clés

Nom du paramètre Description
table Spécifie la table d'entrée contenant les données d'apprentissage. Ce paramètre est obligatoire selon la .
target Spécifie la variable cible (dépendante) pour l'analyse. Ce paramètre est obligatoire.
inputs Liste des variables d'entrée (indépendantes) à utiliser dans le modèle. Fortement recommandé de ne pas l'oublier !
kernel Définit le type de fonction noyau pour les distributions gaussiennes (LINEAR, MATERN32, MATERN52, PERIODIC, RBF). Le défaut est RBF d'après la .
nInducingPoints Spécifie le nombre de points d'induction utilisés pour l'approximation (défaut: 100). Très utile pour ne pas faire exploser la RAM avec de gros jeux de données.
autoRelevanceDetermination Active la détermination automatique de pertinence (ARD) pour ajuster dynamiquement l'importance des variables d'entrée dans le noyau (défaut: FALSE).
output Définit la table de sortie où sauvegarder les observations scorées.
saveState Permet de sauvegarder l'état du modèle analytique (astore) pour de futurs scorings sans avoir à tout ré-entraîner.
nloOpts Options d'optimisation avancées pour les experts (choix de l'algorithme ADAM ou SGD, tolérances et hyperparamètres).

Préparation des données

Création de données de test (Sinusoïde bruitée)

Générons quelques données synthétiques pour illustrer notre processus gaussien. Un peu de sinus, un peu de bruit, et le tour est joué !

1DATA mycas.sin_data; DO x = -5 to 5 BY 0.1; y = sin(x) + rand('NORMAL', 0, 0.2); OUTPUT; END; RUN;

Exemples d'utilisation

Entraînement basique d'un modèle de régression par processus gaussien

Un exemple minimaliste pour entraîner un modèle sur nos données générées en utilisant le noyau RBF par défaut. Simple et efficace.

1PROC CAS; nonParametricBayes.gpReg / TABLE={name="sin_data"} inputs={"x"} target="y" OUTPUT={casOut={name="gp_predictions", replace=true}, copyVars={"x", "y"}}; RUN; QUIT;
Résultat Attendu :
Création d'une table CAS nommée 'gp_predictions' contenant les variables d'origine et les nouvelles prédictions du modèle.
Régression GP avec ARD, sauvegarde du modèle et optimisation avancée

Ici, on sort l'artillerie lourde. On utilise la détermination automatique de pertinence (ARD), on modifie le noyau, on fixe le nombre de points d'induction, et on sauvegarde l'état du modèle analytique pour le réutiliser plus tard. Le tout en une seule ligne compacte pour tester vos réflexes visuels.

1PROC CAS; nonParametricBayes.gpReg / TABLE={name="sin_data"} inputs={"x"} target="y" kernel="MATERN52" autoRelevanceDetermination=true nInducingPoints=50 nloOpts={algorithm="ADAM", optmlOpt={maxIters=50}} outInducingPoints={name="out_ind", replace=true} saveState={name="gp_astore", replace=true} OUTPUT={casOut={name="gp_scored", replace=true}, copyVars="ALL"}; RUN; QUIT;
Résultat Attendu :
Génération de trois tables : 'gp_scored' avec les prédictions, 'out_ind' avec les points d'induction estimés, et 'gp_astore' contenant le modèle compilé (astore) prêt pour le scoring en temps réel ou ultérieur.