factmac

factmac

##set_factmac

Description

L'action factmac est le moteur de recommandation par excellence de SAS Viya. Elle entraîne 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 machine de factorisation (Factorization MachineAlgorithme capturant les interactions entre variables, même sur des données éparses (sparse), en les décomposant en vecteurs latents. Idéal pour les systèmes de recommandation et le marketing.) capable de prédire des valeurs (souvent des notes ou des préférences) en analysant les interactions croisées entre des variablesColonnes d'une table SAS contenant des données spécifiques (numériques ou caractères). Elles possèdent des attributs comme le nom, le type, la longueur, l'étiquette et le format d'affichage., même lorsque les données sont extrêmement éparses (sparse). C'est l'outil idéal pour savoir si un utilisateur aimera ce nouveau film de science-fiction obscur ou cette marque de café équitable. Elle surpasse souvent les régressions classiques car elle 'factorise' les relations complexes dans un espace de dimension inférieure.

Syntaxe Officielle
factmac.factmac /
table={caslib='nom_caslib', name='nom_table'},
inputs={'var1', 'var2'},
nominals={'var1', 'var2'},
target='variable_cible',
nFactors=5,
maxIter=30,
learnStep=0.001,
seed=12345,
outModel={name='nom_table_modele'}

Paramètres Clés

Nom du paramètre Description
table Spécifie la table de données d'entrée contenant les observations pour l'entraînement.
inputs Liste des variables prédictives à utiliser pour l'apprentissage.
nominals Liste des variables à traiter comme catégorielles (ex: ID utilisateur, ID produit).
target La variable numérique que le modèle doit prédire (ex: la note donnée par l'utilisateur).
nFactors Nombre de facteurs latents pour le modèle. Plus ce nombre est élevé, plus le modèle capture de nuances, mais attention au sur-apprentissage !
maxIter Nombre maximum d'itérations pour l'algorithme d'optimisation (Stochastic Gradient Descent).
learnStep Taille du pas d'apprentissage. Un pas trop grand et vous ratez la cible, un pas trop petit et vous y passerez la nuit.
outModel Spécifie la table CAS de sortie pour sauvegarder les paramètres du modèle entraîné.
saveState Sauvegarde le modèle sous forme de store binaire (Analytic Store) pour un déploiement facile.

Préparation des données

Création de données de recommandation de films

Génère une table de notes de films fictive pour tester la factorisation.

1DATA casuser.ratings;
2 INPUT user $ item $ rating;
3 DATALINES;
4User1 MovieA 5
5User1 MovieB 1
6User2 MovieA 4
7User2 MovieC 2
8User3 MovieB 5
9User3 MovieC 4
10User4 MovieA 1
11User4 MovieB 4
12;
13RUN;

Exemples d'utilisation

Entraînement de base

Un exemple simple pour entraîner le modèle sur les utilisateurs et les films.

1PROC CAS;
2 factmac.factmac /
3 TABLE={name='ratings'},
4 inputs={'user', 'item'},
5 nominals={'user', 'item'},
6 target='rating';
7RUN;
Résultat Attendu :
Un rapport sommaire affichant l'erreur quadratique moyenne (RMSE) finale.
Modèle de recommandation optimisé avec sauvegarde

Entraînement complet avec 10 facteurs, 50 itérations et sauvegarde de l'état du modèle.

1PROC CAS;
2 factmac.factmac /
3 TABLE={name='ratings'},
4 inputs={'user', 'item'},
5 nominals={'user', 'item'},
6 target='rating',
7 nFactors=10,
8 maxIter=50,
9 learnStep=0.002,
10 seed=42,
11 outModel={name='factmac_model_out', replace=true},
12 saveState={name='factmac_astore', replace=true};
13RUN;
Résultat Attendu :
Le modèle est entraîné avec plus de précision, et deux tables sont créées : une table de paramètres et un fichier Analytic Store pour le scoring futur.