/****************************************************************************** * Programme : Descarga de un modelo ASTORE al sistema de archivos local * Reference : DESCARA24E * Source : https://www.wearecas.eu/en/sampleCode/DESCARA24E ******************************************************************************/ /* --- BLOC 1 --- */ /* Création d'un modèle simple pour démonstration */ data casuser.iris_data; set sashelp.iris; run; proc logistic data=casuser.iris_data outmodel=casuser.my_model; model Species = SepalLength SepalWidth PetalLength PetalWidth; run; /* Téléchargement du modèle ASTORE vers le système de fichiers local */ proc astore; download rstore=casuser.my_model; save_file='/tmp/my_model.astore'; run; /* --- BLOC 2 --- */ /* Création d'un autre modèle pour démonstration */ data casuser.cars_data; set sashelp.cars; where Make in ('Audi', 'BMW', 'Mercedes-Benz'); run; proc glmselect data=casuser.cars_data outmodel=casuser.auto_model; model Cylinders = Make Type Origin DriveTrain Weight Horsepower MSRP; selection method=stepwise; run; /* Téléchargement du modèle ASTORE avec des options explicites */ proc astore; download rstore=casuser.auto_model caslib=casuser; save_file='/tmp/auto_model.astore'; run; /* --- BLOC 3 --- */ /* Création d'un troisième modèle pour démonstration */ data casuser.heart_data; set sashelp.heart; where Status='Alive'; run; proc hplogistic data=casuser.heart_data outmodel=casuser.heart_model; model Cholesterol = Smoking_Status_N BP_Status_N Weight_Status_N; run; /* Définir le chemin de téléchargement via une macro-variable */ %let download_path = /tmp/models/heart_model.astore; /* Vérifier l'existence du répertoire de destination et télécharger */ filename _tmp_dir temp; data _null_; rc = fcreate("&download_path", 'f'); if rc = 0 then do; call symputx('dir_exists', '1'); rc = fdelete("&download_path"); end; else call symputx('dir_exists', '0'); run; %if &dir_exists. = 1 %then %do; proc astore; download rstore=casuser.heart_model caslib=casuser; save_file="&download_path"; run; %put Modèle 'heart_model' téléchargé avec succès vers &download_path.; %end; %else %do; %put ERREUR: Le chemin de téléchargement '&download_path' est invalide ou le répertoire n'existe pas/n'est pas accessible.; %end; /* --- BLOC 4 --- */ /* 1. Création et entraînement d'un modèle simple */ data casuser.sample_data; input x y; datalines; 1 10 2 12 3 14 4 16 5 18 ; run; proc reg data=casuser.sample_data outmodel=casuser.my_linear_model; model y = x; run; /* 2. Téléchargement du modèle ASTORE */ proc astore; download rstore=casuser.my_linear_model; save_file='/tmp/my_linear_model.astore'; run; /* 3. Déconnexion et reconnexion à une nouvelle session CAS (simulée) */ /* Dans un environnement réel, cela impliquerait de fermer la session courante et d'en ouvrir une nouvelle */ /* Pour cet exemple, nous allons simplement simuler en chargeant le modèle dans la même session */ /* et en utilisant une nouvelle 'nom_session_virtuelle' */ /* 4. Chargement du modèle depuis le système de fichiers local vers une nouvelle 'session' CAS */ proc astore; upload rstore=casuser.reloaded_model; restore_file='/tmp/my_linear_model.astore'; run; /* 5. Utilisation du modèle rechargé pour le scoring */ data casuser.new_data; input x; datalines; 6 7 ; run; proc astore; score rstore=casuser.reloaded_model data=casuser.new_data out=casuser.scored_data; run; proc print data=casuser.scored_data; run;