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.
Paramètres Clés
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.
| 1 | DATA casuser.ratings; |
| 2 | INPUT user $ item $ rating; |
| 3 | DATALINES; |
| 4 | User1 MovieA 5 |
| 5 | User1 MovieB 1 |
| 6 | User2 MovieA 4 |
| 7 | User2 MovieC 2 |
| 8 | User3 MovieB 5 |
| 9 | User3 MovieC 4 |
| 10 | User4 MovieA 1 |
| 11 | User4 MovieB 4 |
| 12 | ; |
| 13 | RUN; |
Exemples d'utilisation
Entraînement de base
Un exemple simple pour entraîner le modèle sur les utilisateurs et les films.
| 1 | PROC CAS; |
| 2 | factmac.factmac / |
| 3 | TABLE={name='ratings'}, |
| 4 | inputs={'user', 'item'}, |
| 5 | nominals={'user', 'item'}, |
| 6 | target='rating'; |
| 7 | RUN; |
Résultat Attendu :
Modèle de recommandation optimisé avec sauvegarde
Entraînement complet avec 10 facteurs, 50 itérations et sauvegarde de l'état du modèle.
| 1 | PROC 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}; |
| 13 | RUN; |