factmac

factmac

Descripción

La acción factmac entrena un modelo de máquina de factorización (Factorization Machine). Las máquinas de factorización son una clase de modelos que combinan las ventajas de las máquinas de vectores de soporte (SVM) con modelos de factorización. Son particularmente útiles para trabajar con conjuntos de datos dispersos de alta dimensión, como los que se encuentran en sistemas de recomendación o en el modelado de clics.

Parámetros
ParámetroDescripción
tableEspecifica la tabla de entrada que contiene los datos de entrenamiento. (Obligatorio)
targetEspecifica la variable objetivo (la variable que se desea predecir).
inputsEspecifica las variables de entrada (predictores) que se utilizarán en el análisis.
nominalsEspecifica la lista de variables nominales que se utilizarán en el análisis.
nFactorsEspecifica el número de factores latentes que se estimarán en el modelo. El valor predeterminado es 5.
maxIterEspecifica el número máximo de iteraciones para el proceso de optimización del entrenamiento. El valor predeterminado es 30.
learnStepEspecifica la tasa de aprendizaje (learning rate) para el algoritmo de optimización (descenso de gradiente estocástico). El valor predeterminado es 0.001.
outModelEspecifica la tabla de salida CAS donde se guardarán los parámetros del modelo estimado (factores latentes y sesgos).
outputCrea una tabla de salida que contiene las observaciones puntuadas (predicciones) basadas en el modelo entrenado.
saveStateGuarda el estado del modelo en una tabla analítica (astore) para su uso posterior en puntuación (scoring).
seedEspecifica la semilla para la generación de números aleatorios, garantizando la reproducibilidad de los resultados.
nonNegativeCuando se establece en True, fuerza a que la factorización de la matriz produzca valores no negativos.
Creación de Datos de Calificaciones de Películas

Crea un conjunto de datos simulado que representa usuarios, películas y las calificaciones otorgadas, típico para sistemas de recomendación.

¡Copiado!
1 
2DATA mycas.ratings;
3INPUT user item rating;
4DATALINES;
51 1 5 1 2 3 1 3 4 2 1 4 2 3 2 3 2 5 3 3 3;
6 
7RUN;
8 

Ejemplos

Entrena un modelo simple utilizando las variables de usuario e ítem para predecir la calificación.

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1 
2PROC CAS;
3factmac.factmac / TABLE={name="ratings"} inputs={"user", "item"} nominals={"user", "item"} target="rating";
4 
5RUN;
6 
Resultado :
Se genera un modelo de máquina de factorización con los parámetros predeterminados (5 factores, 30 iteraciones) y se muestra el historial de iteraciones con el error cuadrático medio (MSE).

Entrena un modelo configurando el número de factores, iteraciones y tasa de aprendizaje. Además, guarda el modelo, las predicciones y el estado analítico (astore) para uso futuro.

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1 
2PROC CAS;
3factmac.factmac / TABLE={name="ratings"} inputs={"user", "item"} nominals={"user", "item"} target="rating" nFactors=10 maxIter=50 learnStep=0.005 seed=12345 outModel={name="factmac_model", replace=true} OUTPUT={casOut={name="scored_ratings", replace=true}, copyVars="ALL"} saveState={name="factmac_store", replace=true};
4 
5RUN;
6 
Resultado :
El modelo se entrena con 10 factores y hasta 50 iteraciones. La tabla 'factmac_model' contiene los parámetros del modelo, 'scored_ratings' contiene los datos originales con las predicciones añadidas, y 'factmac_store' es el archivo astore binario listo para desplegar o puntuar nuevos datos.

FAQ

¿Cuál es el propósito principal de la acción factmac?
¿Qué parámetro se utiliza para especificar la tabla de entrada?
¿Cómo se guardan los parámetros estimados del modelo?
¿Cuál es el número predeterminado de factores que se estiman?
¿Es posible realizar una factorización no negativa?
¿Qué parámetro controla el número máximo de iteraciones?
¿Cómo se define el tamaño del paso de aprendizaje?
¿Para qué sirve el parámetro saveState?
¿Cómo se especifican las variables nominales para el entrenamiento?
¿Qué función cumple el parámetro output?