Configurer un modèle de régression
Entraîne, enregistre, charge et décharge un modèle de régression. Entraîne un modèle basé sur des vecteurs d’intégration pour les données textuelles et de cible numérique.
Voir aussi
Options
-
Action spécifie l'opération à effectuer :
-
Entraîner : crée et entraîne un nouveau modèle de régression en utilisant les données d'entraînement et les paramètres d'algorithme spécifiés.
-
Enregistrer : enregistre un modèle entraîné en tant que données de conteneur dans la rubrique ou la variable spécifiée par l'option Enregistrer le modèle sous pour une utilisation ultérieure.
-
Charger : charge un modèle précédemment enregistré à partir de la rubrique Conteneur ou de la variable spécifiée par l'option Enregistrer le modèle sous en mémoire.
-
Décharger : retire un modèle de la mémoire pour libérer des ressources.
-
-
Nom du modèle est une expression de texte pour le nom unique du modèle de régression sur lequel l'option Action fonctionne. Après avoir entraîné ou chargé un modèle, utilisez le même nom afin d'y faire référence pour effectuer une régression avec la fonction PredictFromModel.
Options disponibles uniquement lorsque l'option Action est Entraîner :
-
Algorithme sélectionne l'algorithme de machine learning à utiliser. Dans la version 22.0, seul l'algorithme Forêt d'arbres décisionnels est fourni.
-
Entraînement de la rubrique Vecteurs spécifie le texte ou la rubrique Conteneur qui contient des vecteurs pour les données d'entraînement.
-
Entraînement de la rubrique Cible spécifie la rubrique contenant les valeurs cibles (les valeurs numériques que vous souhaitez prédire). Chaque valeur correspond à un exemple d'entraînement dans Entraînement de la rubrique Vecteurs.
-
Ignorer les enregistrements vides ou non valides ignore les enregistrements pour lesquels la rubrique spécifiée par Entraînement de la rubrique Vecteurs ou Entraînement de la rubrique Cible est vide ou contient des données non valides. Si elle n'est pas sélectionnée, l'action de script ignore tous les enregistrements après le premier avec des données de rubrique vides ou non valides et renvoie une erreur.
-
Paramètres est une expression de texte pour un objet JSON qui spécifie des paramètres spécifiques à l'algorithme sous forme de paires clé-valeur. Consultez la section Description.
Options disponibles uniquement lorsque l'option Action est Entraîner ou Enregistrer :
-
Enregistrer le modèle sous spécifie une variable ou une rubrique Conteneur pour enregistrer le modèle entraîné.
Options disponibles uniquement lorsque l'option Action est Charger :
-
Charger le modèle depuis spécifie la variable ou la rubrique Conteneur à partir de laquelle charger un modèle entraîné.
Compatibilité
Produit | Prise en charge |
FileMaker Pro | Oui |
FileMaker Go | Oui |
FileMaker WebDirect | Oui |
FileMaker Server | Oui |
FileMaker Cloud | Oui |
FileMaker Data API | Oui |
Publication Web personnalisée | Oui |
Provient de la version
22.0
Description
Cette action de script permet d'entraîner et de gérer des modèles de régression qui utilisent des algorithmes de machine learning directement dans votre application FileMaker Pro. Les modèles de régression prédisent des valeurs numériques continues pour une variable de sortie dépendante (cible) basée sur des variables d'entrée indépendantes (caractéristiques), ce qui rend ces modèles adaptés à la prévision, à l'analyse des tendances et à la prise de décision basée sur les données.
L'algorithme Forêt d'arbres décisionnels constitue une méthode d'apprentissage d'ensemble qui combine plusieurs arbres décisionnels pour créer des prédictions plus robustes et précises qu'un arbre unique, ce qui rend cet algorithme adapté aux données du monde réel. Chaque arbre est entraîné sur un sous-ensemble aléatoire de données et de caractéristiques d'entraînement, ce qui aide à prévenir le surapprentissage (capturant non seulement les modèles des données d'entraînement, mais aussi le bruit aléatoire) et améliore la généralisation pour les nouvelles données.
Lorsque vous sélectionnez l'action Entraîner, l'action de script effectue les opérations suivantes :
-
Analyse les vecteurs dans Entraînement de la rubrique Vecteurs pour extraire les valeurs des caractéristiques.
-
Applique les Paramètres de l'algorithme spécifié ou utilise les valeurs par défaut si aucune n'est fournie.
-
Entraîne le modèle à l'aide de l'algorithme Forêt d'arbres décisionnels avec les valeurs de caractéristiques extraites de Entraînement de la rubrique Vecteurs et les valeurs cibles de Entraînement de la rubrique Cible.
-
Stocke le modèle entraîné en mémoire avec le Nom du modèle spécifié pour l'utiliser avec la fonction PredictFromModel.
-
Si l'option Enregistrer le modèle sous est spécifiée, le modèle est enregistré pour une utilisation ultérieure.
Les actions Enregistrer, Charger et Décharger permettent de gérer vos modèles entraîné, en les enregistrant uniquement en cas de besoin et, pour optimiser les performances, en les conservant en mémoire uniquement pendant leur utilisation.
Pour l'algorithme Forêt d'arbres décisionnels, vous pouvez utiliser les clés et valeurs suivantes dans l'option Paramètres pour ajuster l'entraînement, le cas échéant. Si une clé n'est pas spécifiée ou si l'option Paramètres n'est pas utilisée, l'action de script utilise les valeurs par défaut.
Paramètre | Description | Valeur par défaut |
|
Nombre d'arbres décisionnels dans la forêt. Un nombre plus élevé d'arbres améliore généralement la précision, mais augmente également le délai d'entraînement et l'utilisation de la mémoire. |
10 |
|
Profondeur maximale de chaque arbre décisionnel. Il est possible que l'arbre n'atteigne pas cette profondeur lors de l'entraînement. Les arbres plus profonds peuvent capturer des modèles plus complexes, mais sont également susceptibles de trop s'adapter aux données d'entraînement. |
10 |
|
Nombre minimum d'échantillons requis pour diviser un nœud interne. Des valeurs plus élevées peuvent empêcher le surapprentissage. |
2 |
|
Si positif, le nombre total de caractéristiques utilisables pour entraîner un seul arbre (la plage valide est de 1 ≤ numFeatures < 1536). Si négatif, utilise toutes les caractéristiques pour l'entraînement. |
-1 |
|
Nombre maximum de caractéristiques à utiliser pour entraîner un seul arbre : 0 : |
1 |
Par exemple, cet objet JSON définit toutes les clés de l'option Paramètres :
{
"numTrees" : 15,
"maxDepth" : 15,
"minSamplesSplit" : 3,
"numFeatures" : 1000,
"maxFeatures" : 0
}
Remarques
-
Les valeurs dans Entraînement de la rubrique Vecteurs doivent être fournies en tant que tableaux JSON valides dans une rubrique de texte ou en tant que données binaires équivalentes dans une rubrique Conteneur. Chaque tableau doit contenir le même nombre d'éléments (caractéristiques) dans tous les enregistrements.
Vous pouvez utiliser l'action de script Insérer l'intégration dans le jeu trouvé pour générer des vecteurs d'intégration de texte dans Entraînement de la rubrique Vecteurs en fonction d'une autre rubrique qui contient vos données d'entrée. Les vecteurs d'intégration générés par l'action Insérer l'intégration dans le jeu trouvé répondent aux exigences ci-dessus lors de l'utilisation d'un modèle d'intégration de texte pris en charge.
-
Les valeurs de Entraînement de la rubrique Cible doivent être numériques. Les valeurs non numériques entraîneront l'échec de l'entraînement.
-
Les noms de modèles sont sensibles à la casse et doivent être uniques dans la session FileMaker en cours. Si un modèle du même nom existe déjà lors de l'entraînement, il est remplacé par le nouveau modèle.
-
Pour tester la qualité de votre modèle entraîné, utilisez la fonction PredictFromModel pour renvoyer la valeur prédite avec les mêmes données vectorielles que vous avez utilisées pour former le modèle. Ensuite, comparez les valeurs prédites aux valeurs cibles utilisées pendant l'entraînement. Une méthode de mesure de la qualité globale du modèle est l'erreur quadratique moyenne (MSE), qui calcule la différence quadratique moyenne entre les valeurs prédites et les valeurs cibles. Une valeur de MSE égale à zéro indique un ajustement parfait entre les prédictions du modèle et les valeurs réelles. Plus la valeur de MSE est basse, plus l'ajustement est optimal. La meilleure valeur de MSE pour un modèle dépend de l'échelle de votre variable cible et de la marge d'erreur acceptable pour votre application spécifique. Consultez l'Exemple 3 pour avoir un script qui calcule la valeur de MSE.
-
Considérations propres aux performances :
-
Le délai d'entraînement augmente avec le nombre d'arbres (
numTrees
) et la profondeur maximale (maxDepth
). Commencez par les valeurs par défaut pour Paramètres et ajustez-les en fonction de vos exigences de précision et de vos contraintes en termes de performance. -
Les ensembles de données plus importants nécessitent plus de mémoire pendant l'entraînement. Envisagez d'utiliser un échantillon représentatif pour l'entraînement initial au modèle si vous travaillez avec de très grands ensembles de données.
-
Les modèles restent en mémoire jusqu'à ce qu'ils soient explicitement déchargés ou que la session FileMaker se termine. Utilisez l'action Décharger pour libérer de la mémoire lorsque les modèles ne sont plus nécessaires.
-
Exemple 1 - Entraîner un modèle de base
Entraîne un modèle de régression de base pour prédire les prix immobiliers en fonction de la superficie, du nombre de chambres et de l'âge de la maison en utilisant les paramètres par défaut de l'algorithme Forêt d'arbres décisionnels.
Dans la table Propriétés, la rubrique Caractéristiques contient des tableaux JSON tels que [110, 3, 15]
représentant la superficie, les chambres et l'âge, tandis que la rubrique Prix contient le prix de la maison correspondant. Une fois cette action de script exécutée, le modèle est en mémoire et peut être utilisé dans la session FileMaker en cours par la fonction PredictFromModel en faisant référence au nom du modèle « ModèlePrixImmobiliers ».
Étant donné que le modèle n'a pas été enregistré dans cet exemple, il ne sera pas disponible après la fin de la session en cours.
Activer modèle [ "Propriétés" (Propriétés) ; Animation: Aucune ]
Configurer un modèle de régression [ Action: Entraîner le modèle ; Nom du modèle: "ModèlePrixImmobiliers" ; Algorithme: Forêt d'arbres décisionnels ; Entraînement de la rubrique Vecteurs: Propriétés::Caractéristiques ; Entraînement de la rubrique Cible: Propriétés::Prix ; Ignorer les enregistrements vides ou non valides ]
Exemple 2 - Obtenir des vecteurs d'intégration et entraîner un modèle
Entraîne un modèle de régression pour prédire une note à étoiles (1 à 5) en fonction du texte d'un avis de client.
Les données d'entraînement se trouvent dans la table Avis et se composent des rubriques TexteAvis (une rubrique texte contenant l'avis du client) et Evaluation (une rubrique nombre contenant le classement par étoiles choisi par le client). Une fois que le script a configuré un compte IA pour le serveur de modèle d'IA installé avec FileMaker Server, il utilise ce compte pour insérer des vecteurs d'intégration de texte dans la rubrique Conteneur IntégrationAvis en fonction des données de la rubrique TexteAvis.
Ensuite, le script entraîne le modèle de régression en le nommant « ModèleAvis » et en utilisant les vecteurs d'entraînement dans IntégrationAvis, les valeurs cibles dans la rubrique Evaluation et les paramètres personnalisés. Une fois l'entraînement terminé, le modèle est enregistré dans la rubrique Conteneur globale ModèleAvis.
Configurer le compte IA [ Nom de compte: "Serveur_modèle_IA" ; Fournisseur de modèle: Autre ; Point de terminaison : "https://monserveur.exemple.com:8080/" ; Vérifier les certificats SSL ; Clé API : Global::Clé_API ]
Activer modèle [ "Avis" (Avis) ]
Insérer l'intégration dans le jeu trouvé [ Nom de compte: "Serveur_modèle_IA" ; Modèle d'intégration : "all-MiniLM-L12-v2" ; Rubrique source: Avis::TexteAvis ; Rubrique cible: Avis::IntégrationAvis ; Continuer en cas d’erreur ; Afficher le résumé ]
Définir variable [ $paramètres ; Valeur:
Definir ( [
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
)
]
Configurer un modèle de régression [ Action: Entraîner le modèle ; Nom du modèle: "ModèleAvis" ; Algorithme: Forêt d'arbres décisionnels ; Entraînement de la rubrique Vecteurs: Avis::IntégrationAvis ; Entraînement de la rubrique Cible: Avis::Evaluation ; Ignorer les enregistrements vides ou non valides ; Paramètres: $paramètres ; Enregistrer le modèle sous: Avis::ModèleAvis ]
Le modèle nommé « ModèleAvis » est prêt à être utilisé. Consultez l'Exemple 2 dans la section PredictFromModel.
Exemple 3 - Calculer l'erreur quadratique moyenne
Calcule l'erreur quadratique moyenne pour évaluer la qualité d'un modèle de régression entraîné (consultez les Remarques).
Le script accède au modèle Avis contenant les données d'entraînement utilisées dans l'Exemple 2, affiche tous les enregistrements, met à zéro la variable $squaredLossSum, passe au premier enregistrement, puis charge le modèle précédemment enregistré et le nomme « ModèleAvis ».
Dans la boucle, pour chaque enregistrement, la différence entre la valeur prédite par le modèle à l'aide de la fonction PredictFromModel et la valeur réelle dans la rubrique Evaluation est mise au carré et ajoutée à $squaredLossSum.
Après avoir parcouru tous les enregistrements, la valeur de MSE est calculée en divisant $squaredLossSum par le nombre d'échantillons (le nombre d'enregistrements dans l'ensemble des données d'entraînement) et affichée dans une boîte de dialogue. Une fois terminé, le script décharge le modèle de la mémoire.
Activer modèle [ "Avis" (Avis) ]
Afficher tous les enreg.
Définir variable [ $squaredLossSum ; Valeur: 0 ]
Configurer un modèle de régression [ Action: Charger le modèle ; Nom du modèle: "ModèleAvis" ; Charger le modèle depuis: Avis::ModèleAvis ]
Afficher enreg/requête/page [ Premièr(e) ]
Boucle [ Purge: Systématique ]
Définir variable [ $loss ; Valeur: Avis::Evaluation - PredictFromModel ( "ModèleAvis" ; Avis::IntégrationAvis ) ]
Définir variable [ $squaredLoss ; Valeur: $loss^2 ]
Définir variable [ $squaredLossSum ; Valeur: $squaredLossSum + $squaredLoss ]
Afficher enreg/requête/page [ Suivant(e) ; Sortie après dernière: Activé ]
Fin de boucle
Ouvrir boîte dial. person. [ "Valeur de MSE" ; $squaredLossSum / Obtenir ( NombreEnregTrouvés ) ]
Configurer un modèle de régression [ Action: Décharger le modèle ; Nom du modèle: "ModèleAvis" ]
Une valeur de MSE possible est 0,01875826440712939518.