modelComposer
Description
L'action modelComposer est le véritable chef d'orchestre de vos modèles d'apprentissage automatique dans SAS Viya ! Elle permet d'ajuster automatiquement les hyperparamètres (autotuningProcessus automatisé de recherche des hyperparamètres optimaux pour un modèle de machine learning, visant à maximiser la performance prédictive sans intervention manuelle de l'utilisateur.) pour plusieurs types de modèles de manière concurrente, en optimisant dynamiquement l'allocation des ressources. Fini les réglages manuels fastidieux, laissez la machine travailler pour vous (pendant que vous prenez un petit café). Source détaillée :
Paramètres Clés
Préparation des données
Chargement des données Iris en mémoire
Avant d'utiliser le Model Composer, chargeons un jeu de données classique (Iris) dans CAS pour s'en servir comme données d'entraînement.
| 1 | PROC CAS; |
| 2 | SESSION casauto; |
| 3 | TABLE.loadTable / caslib="SystemData" path="iris.sashdat" casOut={name="iris", replace=true}; |
| 4 | RUN; |
| 5 | QUIT; |
Exemples d'utilisation
Lancement basique du Model Composer
Cet exemple illustre comment lancer une compétition entre deux types de modèles (Arbre de décision et Forêt Aléatoire) sur les données Iris, avec un paramétrage minimal.
| 1 | PROC CAS; |
| 2 | autotune.modelComposer / TABLE={name="iris"} target="Species" inputs={"SepalLength", "SepalWidth", "PetalLength", "PetalWidth"} nominals={"Species"} modelTypes={{modelType="DECISIONTREE"}, {modelType="FOREST"}} nRounds=2 nEvalsPerRound=20; |
| 3 | RUN; |
| 4 | QUIT; |
Résultat Attendu :
Orchestration avancée avec validation croisée et limite de temps
Voici comment tirer parti de la puissance complète du modelComposer : nous mettons en compétition des modèles complexes (Gradient Boosting, Réseaux de Neurones et SVM) avec une politique d'allocation Epsilon-Greedy, en utilisant la validation croisée (3 folds), le tout contraint à ne pas dépasser 1 heure (3600s) de recherche.
| 1 | PROC CAS; |
| 2 | autotune.modelComposer / TABLE={name="iris"} target="Species" inputs={"SepalLength", "SepalWidth", "PetalLength", "PetalWidth"} nominals={"Species"} modelTypes={{modelType="GRADBOOST"}, {modelType="NEURALNET"}, {modelType="SVM"}} nRounds=3 nEvalsPerRound=30 maxModelComposerTime=3600 policyOptions={policy="EPSGREEDY", epsGreedyOptions={eps=0.2}} tunerOptions={searchMethod="GA", maxIters=5, popSize=10, objective="MCE", nCrossValFolds=3, seed=12345} modelNamePrefix={name="BestModel_Iris", replace=true}; |
| 3 | RUN; |
| 4 | QUIT; |