Configurar modelo de regresión
Entrena, guarda, carga y descarga un modelo de regresión. Entrena un modelo basado en vectores de incrustación para datos de texto y datos numéricos de destino.
Temas relacionados
Opciones
-
Acción especifica la operación a realizar:
-
Entrenar: Crea y entrena un nuevo modelo de regresión utilizando los datos de entrenamiento especificados y los parámetros del algoritmo.
-
Guardar: Guarda un modelo entrenado como datos de contenedor en el campo o variable especificados por la opción Guardar modelo en para su uso posterior.
-
Cargar: Carga un modelo previamente guardado desde el campo contenedor o la variable especificada por la opción Guardar modelo en en la memoria.
-
Descargar: Elimina un modelo de la memoria para liberar recursos.
-
-
Nombre de modelo es una expresión de texto para el nombre único del modelo de regresión en el que opera la opción Acción. Después de entrenar o cargar un modelo, use el mismo nombre cuando haga referencia al modelo para realizar la regresión con la función PredictFromModel.
Opciones disponibles solo cuando la Acción es Entrenar:
-
Algoritmo selecciona el algoritmo de aprendizaje automático que se va a utilizar. En la versión 22.0, Random Forest es el único algoritmo proporcionado.
-
Campo de vectores de entrenamiento especifica el texto o el campo contenedor que contiene vectores para los datos de entrenamiento.
-
Campo de objetivo de entrenamiento especifica el campo que contiene los valores objetivo (los valores numéricos que quiere predecir). Cada valor corresponde a un ejemplo de entrenamiento en Campo de vectores de entrenamiento.
-
Omitir registros vacíos o no válidos omite registros para los que el campo especificado por Campo de vectores de entrenamiento o Campo de objetivo de entrenamiento está vacío o contiene datos no válidos. Si no se selecciona, el paso de guión omite todos los registros después del primer registro con datos de campo vacíos o no válidos y devuelve un error.
-
Parámetros es una expresión de texto para un objeto JSON que especifica parámetros específicos del algoritmo como pares clave-valor. Ver descripción.
Opciones disponibles solo cuando la Acción es Entrenar o Guardar:
-
Guardar modelo en especifica una variable o un campo contenedor para guardar el modelo entrenado.
Opciones disponibles solo cuando la Acción es Cargar:
-
Cargar modelo de especifica la variable o el campo contenedor desde el que cargar un modelo entrenado.
Compatibilidad
Producto | Format |
FileMaker Pro | Sí |
FileMaker Go | Sí |
FileMaker WebDirect | Sí |
FileMaker Server | Sí |
FileMaker Cloud | Sí |
FileMaker Data API | Sí |
Publicación en la Web personalizada | Sí |
Se origina en
22.0
Descripción
Este paso de guión le permite entrenar y administrar los modelos de regresión que utilizan algoritmos de aprendizaje automático directamente dentro de su app de FileMaker Pro. Los modelos de regresión predicen valores numéricos continuos para una variable de salida dependiente (objetivo) basada en variables de entrada independientes (características), lo que hace que estos modelos sean adecuados para la previsión, el análisis de tendencias y la toma de decisiones basadas en datos.
El algoritmo Random Forest es un método de aprendizaje de conjunto que combina múltiples árboles de decisión para crear predicciones más sólidas y precisas que un solo árbol de decisiones, lo que hace que este algoritmo sea adecuado para datos del mundo real. Cada árbol del bosque se entrena en un subconjunto aleatorio de los datos y características de entrenamiento, lo que ayuda a prevenir el sobreajuste (capturar no solo patrones de los datos de entrenamiento, sino también ruido aleatorio) y mejora la generalización a nuevos datos.
Cuando selecciona la acción Entrenar, el paso de guión realiza las siguientes operaciones:
-
Analiza vectores en Campo de vectores de entrenamiento para extraer valores de características.
-
Aplica los Parámetros del algoritmo especificado o utiliza valores predeterminados si no se proporcionan.
-
Entrena el modelo usando el algoritmo Random Forest con valores de características extraídos de Campo de vectores de entrenamiento y los valores objetivo de Campo de objetivo de entrenamiento.
-
Almacena el modelo entrenado en la memoria con el Nombre de modelo especificado para su uso con la función PredictFromModel.
-
Si se especifica Guardar modelo en, guarda el modelo para su uso posterior.
Las acciones Guardar, Cargar y Descargar le permiten administrar sus modelos entrenados, de modo que podrá guardarlos cuando sea necesario, y optimizar el rendimiento, manteniéndolos en la memoria mientras estén en uso.
Para el algoritmo Random Forest, puede usar las siguientes claves y valores en la opción Parámetros para ajustar el entrenamiento, si es necesario. Si no se especifica una clave o no se utiliza la opción Parámetros, el paso de guión utiliza los valores predeterminados.
Parámetro | Descripción | Valor predeterminado |
|
Número de árboles de decisión en Random Forest. Un mayor número de árboles suele mejorar la precisión, pero aumenta el tiempo de entrenamiento y el uso de memoria. |
10 |
|
Profundidad máxima de cada árbol de decisión. Es posible que el árbol no alcance esta profundidad durante el entrenamiento. Los árboles más profundos pueden capturar patrones más complejos, pero pueden sobreajustarse a los datos de entrenamiento. |
10 |
|
Número mínimo de muestras necesarias para dividir un nodo interno. Los valores más altos pueden evitar el sobreajuste. |
2 |
|
Si es positivo, el número total de posibles características a utilizar para entrenar un solo árbol (el rango válido es de 1 ≤ numFeatures < 1536). Si es negativo, utiliza todas las características para el entrenamiento. |
-1 |
|
Número máximo de características que se utilizarán para entrenar un solo árbol: 0: |
1 |
Por ejemplo, este objeto JSON establece todas las claves en la opción Parámetros:
{
"numTrees" : 15,
"maxDepth" : 15,
"minSamplesSplit" : 3,
"numFeatures" : 1000,
"maxFeatures" : 0
}
Notas
-
Los valores de Campo de vectores de entrenamiento deben proporcionarse como matrices JSON válidas en un campo de texto o los datos binarios equivalentes en un campo contenedor. Cada matriz debe contener el mismo número de elementos (características) en todos los registros.
Puede usar el paso de guión Insertar incrustación en conjunto encontrado para generar vectores de incrustación de texto en Campo de vectores de entrenamiento basados en otro campo que contenga sus datos de entrada. Los vectores de incrustación generados por Insertar incrustación en el conjunto encontrado cumplen los requisitos anteriores cuando se utiliza un modelo de incrustación de texto compatible.
-
Los valores en Campo de objetivo de entrenamiento deben ser numéricos. Los valores no numéricos harán que el entrenamiento falle.
-
Los nombres de modelo distinguen entre mayúsculas y minúsculas y deben ser únicos dentro de la sesión actual de FileMaker. Si ya existe un modelo con el mismo nombre durante el entrenamiento, será reemplazado por el nuevo modelo.
-
Para probar la calidad de su modelo entrenado, use la función PredictFromModel para devolver el valor previsto, dados los mismos datos vectoriales que utilizó para entrenar el modelo. Luego, compare los valores previstos con los valores objetivo utilizados durante el entrenamiento. Un método para medir la calidad general del modelo es el error cuadrático medio (MSE), que calcula la diferencia cuadrada promedio entre los valores previstos y los valores objetivo. Un valor de MSE de cero indica un ajuste perfecto entre las predicciones del modelo y los valores reales, por lo que los valores de MSE más bajos son mejores. El mejor valor de MSE para un modelo es relativo a la escala de su variable objetivo y al margen de error aceptable para su aplicación específica. Consulte el Ejemplo 3 para conocer un guión que calcula el MSE.
-
Consideraciones acerca del rendimiento:
-
El tiempo de entrenamiento aumenta con el número de árboles (
numTrees
) y la profundidad máxima (maxDepth
). Comience con los valores predeterminados de los Parámetros y ajústelos en función de sus requisitos de precisión y las restricciones del rendimiento. -
Los conjuntos de datos más grandes requieren más memoria durante el entrenamiento. Considere usar una muestra representativa para el entrenamiento inicial del modelo, si trabaja con conjuntos de datos muy grandes.
-
Los modelos permanecen en la memoria hasta que se descargan explícitamente o la sesión de FileMaker finaliza. Utilice la acción Descargar para liberar memoria cuando los modelos ya no sean necesarios.
-
Ejemplo 1 - Entrenar un modelo básico
Entrena un modelo de regresión básico para predecir los precios de las casas en función de los metros cuadrados, el número de dormitorios y la antigüedad de la casa utilizando los parámetros predeterminados de Random Forest.
En la tabla Propiedades, el campo Características contiene matrices JSON como [1200, 3, 15]
que representan los metros cuadrados, los dormitorios y la edad, mientras que el campo Precio contiene el precio de la casa correspondiente. Una vez ejecutado este paso de guión, el modelo se encuentra en la memoria y se puede utilizar en la sesión actual de FileMaker mediante la función PredictFromModel haciendo referencia al nombre de modelo "HousePriceModel".
Debido a que el modelo no se ha guardado en este ejemplo, el modelo no estará disponible después de que finalice la sesión actual.
Ir a la presentación [ "Propiedades" (Propiedades) ; Animación: Ninguna ]
Configurar modelo de regresión [ Acción: Entrenar ; Nombre de modelo: "HousePriceModel" ; Algoritmo: Random Forest ; Campo de vectores de entrenamiento: Propiedades::Características ; Campo de objetivo de entrenamiento: Propiedades::Precio ; Omitir registros vacíos o no válidos ]
Ejemplo 2 - Obtener vectores de incrustación y entrenar un modelo
Entrena un modelo de regresión para predecir una calificación basada en estrellas (de 1 a 5) según el texto de la reseña de un cliente.
Los datos de entrenamiento se encuentran en la tabla Valoraciones y consisten en ReviewText (un campo de texto que contiene la reseña del cliente) y Rating (un campo de número que contiene la calificación por estrellas que el cliente eligió). Después de que el guión configure una cuenta de IA para el servidor modelo de IA instalado con FileMaker Server, utiliza esa cuenta para insertar vectores de incrustación de texto en el campo contenedor ReviewEmbedding basándose en los datos del campo ReviewText.
A continuación, el guión entrena el modelo de regresión, nombrándolo "ReviewModel" y utilizando los vectores de entrenamiento en ReviewEmbedding, los valores objetivo en el campo Rating y parámetros personalizados. Cuando se completa el entrenamiento, el modelo se guarda en el campo contenedor global ReviewModel.
Configurar cuenta de IA [ Nombre de cuenta: "AI_Model_Server" ; Proveedor de modelo: Personalizado ; Punto de conexión: "https://myserver.example.com:8080/" ; Verificar certificados SSL ; Clave API: Global::API_Key ]
Ir a la presentación [ "Valoraciones" (Valoraciones) ]
Insertar incrustación en conjunto encontrado [ Nombre de cuenta: "AI_Model_Server" ; Modelo de incrustación: "all-MiniLM-L12-v2" ; Campo de origen: Valoraciones::ReviewText ; Campo objetivo: Valoraciones::ReviewEmbedding ; Continuar por error ; Mostrar resumen ]
Establecer variable [ $parameters ; Valor:
Let ( [
json = "{}" ;
json = JSONSetElement ( json; "numTrees"; 15; JSONNumber ) ;
json = JSONSetElement ( json; "maxDepth"; 15; JSONNumber ) ;
json = JSONSetElement ( json; "minSamplesSplit"; 3; JSONNumber ) ;
json = JSONSetElement ( json; "numFeatures"; 1000; JSONNumber ) ;
json = JSONSetElement ( json; "maxFeatures"; 0; JSONNumber )
] ;
json
)
]
Configurar modelo de regresión [ Acción: Entrenar modelo ; Nombre de modelo: "ReviewModel" ; Algoritmo: Random Forest ; Campo de vectores de entrenamiento: Valoraciones::ReviewEmbedding ; Campo de objetivo de entrenamiento: Valoraciones::Rating ; Omitir registros vacíos o no válidos ; Parámetros: $parameters ; Guardar modelo en: Valoraciones::ReviewModel ]
El modelo llamado "ReviewModel" está listo para su uso. Consulte el Ejemplo 2 en PredictFromModel.
Ejemplo 3 - Calcular el error cuadrático medio
Calcula el error cuadrático medio para evaluar la calidad de un modelo de regresión entrenado (ver Notas).
El guión va a la presentación Valoraciones que contiene los datos de entrenamiento utilizados en el Ejemplo 2, muestra todos los registros, pone a cero la variable $squaredLossSum, va al primer registro, luego carga el modelo guardado anteriormente y lo nombra como "ReviewModel".
En el bucle, para cada registro, la diferencia entre el valor previsto por el modelo utilizando la función PredictFromModel y el valor real en el campo Rating se eleva al cuadrado y se añade a $squaredLossSum.
Después de recorrer todos los registros, el valor MSE se calcula dividiendo $squaredLossSum por el número de muestras (el número de registros del conjunto de datos de entrenamiento) y se muestra en un cuadro de diálogo. Cuando se hace, el guión descarga el modelo de la memoria.
Ir a la presentación [ "Valoraciones" (Valoraciones) ]
Mostrar todos los registros
Establecer variable [ $squaredLossSum; Valor: 0 ]
Configurar modelo de regresión [ Acción: Cargar modelo ; Nombre de modelo: "ReviewModel" ; Cargar modelo de: Valoraciones::ReviewModel ]
Ir al registro/petición/página [ Primero ]
Bucle[ Vaciar: Siempre ]
Establecer variable [ $loss; Valor: Valoraciones::Rating - PredictFromModel ( "ReviewModel" ; Valoraciones::ReviewEmbedding ) ]
Establecer variable [ $squaredLoss ; Valor: $loss^2 ]
Establecer variable [ $squaredLossSum ; Valor: $squaredLossSum + $squaredLoss ]
Ir al registro/petición/página [ Siguiente ; Salir después del último: Activo ]
End Loop
Mostrar cuadro de diálogo personalizado [ "Valor MSE" ; $squaredLossSum / Get ( FoundCount ) ]
Configurar modelo de regresión [ Acción: Descargar modelo ; Nombre de modelo: "ReviewModel" ]
Un posible valor de MSE es ,01875826440712939518.