graphMultiReg
Description
L'action graphMultiReg implémente l'apprentissage multitâche linéaire généralisé. Elle permet de résoudre simultanément plusieurs problèmes de régression linéaire creuse qui sont liés entre eux. Au lieu d'entraîner chaque 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 manière isolée, cette action exploite les similitudes entre les tâches pour améliorer la performance prédictive globale, surtout quand on a peu de données par tâche. C'est un peu comme si vos modèles de régression décidaient de travailler en équipe plutôt que de rester chacun dans leur coin : l'union fait la force (et la précision) ! Elle supporte différentes structures de graphes pour définir comment les tâches s'influencent mutuellement.
Paramètres Clés
Préparation des données
Génération de données pour apprentissage multitâche
Ce code crée une table avec deux prédicteurs (x1, x2) et trois cibles (y1, y2, y3) simulant trois tâches corrélées.
| 1 | DATA mycas.multitask_data; |
| 2 | drop i; |
| 3 | DO id = 1 to 200; |
| 4 | x1 = rannor(123); |
| 5 | x2 = rannor(123); |
| 6 | /* Tâches liées : y1 et y2 sont proches, y3 est un peu différente */ |
| 7 | y1 = 2.5 * x1 + 1.2 * x2 + rannor(123)*0.2; |
| 8 | y2 = 2.3 * x1 + 1.3 * x2 + rannor(123)*0.2; |
| 9 | y3 = 0.5 * x1 + 3.0 * x2 + rannor(123)*0.2; |
| 10 | OUTPUT; |
| 11 | END; |
| 12 | RUN; |
Exemples d'utilisation
Apprentissage multitâche de base (Cluster)
Exécute une régression multitâche où toutes les cibles sont supposées liées entre elles (structure par défaut CLUSTER).
| 1 | PROC CAS; gleam.graphMultiReg / TABLE={name="multitask_data"}, targets={"y1", "y2", "y3"}, inputs={"x1", "x2"}, modelOut={name="model_coeffs", replace=true}; RUN; |
Résultat Attendu :
Régression multitâche avec pénalité de chaîne (FUSE) et Scoring
Utilise une structure de graphe de type 'FUSE' (chaque tâche est liée à la suivante) avec des paramètres de régularisation spécifiques et génère une table de scores.
| 1 | PROC CAS; gleam.graphMultiReg / TABLE={name="multitask_data"}, targets={"y1", "y2", "y3"}, inputs={"x1", "x2"}, graphType="FUSE", regL1=0.05, regL2=0.1, maxIters=500, tolerance=1e-8, OUTPUT={casOut={name="scored_tasks", replace=true}, copyVars="ALL"}, modelOut={name="final_coeffs", replace=true}, saveState={name="mtl_state", replace=true}; RUN; |