Regressiemodel configureren
Traint een regressiemodel, slaat deze op, laadt deze en annuleert het laden ervan. Traint een model op basis van insluitvectoren voor tekstgegevens en numerieke doelgegevens.
Zie ook
Opties
-
Actie specificeert de bewerking die moet worden uitgevoerd:
-
Trainen: hiermee maakt en traint u een nieuw regressiemodel met behulp van de gespecificeerde trainingsgegevens en algoritmeparameters.
-
Opslaan: hiermee slaat u een getraind model op als containergegevens in het veld of de variabele die is opgegeven met de optie Model opslaan in voor later gebruik.
-
Laden: hiermee laadt u een eerder opgeslagen model uit het containerveld of de variabele die is opgegeven door de optie Model opslaan in in het geheugen.
-
Verwijderen: hiermee verwijdert u een model uit het geheugen om bronnen vrij te maken.
-
-
Modelnaam is een tekstexpressie voor de unieke naam van het regressiemodel waarop de optie Actie werkt. Gebruik na het trainen of laden van een model dezelfde naam wanneer u naar het model verwijst om regressie uit te voeren met de functie PredictFromModel functie.
Opties zijn alleen beschikbaar als Actie is ingesteld op Trainen:
-
Met Algoritme selecteert u het te gebruiken machine-leeralgoritme. In versie 22.0 is Random Forest het enige algoritme dat wordt geleverd.
-
Het Veld met trainingsvectoren specificeert het tekst- of containerveld dat vectoren voor de trainingsgegevens bevat.
-
Het Doelveld voor training specificeert het veld met de doelwaarden (de numerieke waarden die u wilt voorspellen). Elke waarde komt overeen met één trainingsvoorbeeld in het Veld met trainingsvectoren.
-
Lege of ongeldige records overslaan slaat records over waarvoor het veld dat is opgegeven door Veld met trainingsvectoren of Doelveld voor training leeg is of ongeldige gegevens bevat. Als deze optie niet is geselecteerd, slaat de scriptstap alle records na de eerste record over met lege of ongeldige veldgegevens en wordt er een fout geretourneerd.
-
Parameters is een tekstexpressie voor een JSON-object dat algoritmespecifieke parameters specificeert als sleutel-waardeparen. Zie Beschrijving.
Opties zijn alleen beschikbaar als Actie Trainen of Opslaan is:
-
Model opslaan in specificeert een variabele of containerveld waarin het getrainde model moet worden opgeslagen.
Opties zijn alleen beschikbaar als Actie Laden is:
-
Model laden vanuit specificeert de variabele of het containerveld waaruit een getraind model moet worden geladen.
Compatibiliteit
Product | Ondersteund |
FileMaker Pro | Ja |
FileMaker Go | Ja |
FileMaker WebDirect | Ja |
FileMaker Server | Ja |
FileMaker Cloud | Ja |
FileMaker Data API | Ja |
Custom Web Publishing | Ja |
Afkomstig uit versie
22.0
Beschrijving
Met deze scriptstap kunt u regressiemodellen trainen en beheren die gebruikmaken van machine learning algoritmes rechtstreeks in uw FileMaker Pro app. Regressiemodellen voorspellen continue numerieke waarden voor een afhankelijke outputvariabele (target) op basis van onafhankelijke inputvariabelen (features), waardoor deze modellen geschikt zijn voor prognoses, trendanalyse en gegevensgestuurde besluitvorming.
Het Random Forest-algoritme is een ensemble-leermethode die meerdere beslissingsstructuren combineert om robuustere en nauwkeurigere voorspellingen te maken dan één enkele beslissingsboom, waardoor dit algoritme geschikt is voor real-world data. Elke boom in het bos wordt getraind op een willekeurige subset van de trainingsgegevens en -functies, waardoor overpassing wordt voorkomen (niet alleen patronen van de trainingsgegevens, maar ook willekeurige ruis worden vastgelegd) en nieuwe gegevens beter worden gegenereerd.
Wanneer u de actie Trainen selecteert, voert de scriptstap de volgende bewerkingen uit:
-
Parseert vectoren in het Veld met trainingsvectoren om functiewaarden te extraheren.
-
Hiermee worden de opgegeven algoritmeparameters toegepast of worden standaardwaarden gebruikt als er geen parameters zijn opgegeven.
-
Traint het model met behulp van het Random Forest-algoritme met functiewaarden die zijn opgehaald uit het Veld met trainingsvectoren en de doelwaarden uit het Doelveld voor training.
-
Slaat het getrainde model op in het geheugen met de opgegeven Modelnaam voor gebruik met de PredictFromModel functie-functie.
-
Als Model opslaan in is opgegeven, slaat het model op voor later gebruik.
Met de acties Opslaan, Laden en Laden annuleren kunt u uw getrainde modellen beheren, ze alleen opslaan wanneer dat nodig is en, om de prestaties te optimaliseren, ze alleen in het geheugen bewaren terwijl ze worden gebruikt.
Voor het Random Forest-algoritme kunt u de volgende toetsen en waarden in de optie Parameters gebruiken om de training indien nodig aan te passen. Als er geen sleutel is opgegeven of als de optie Parameters niet wordt gebruikt, worden de standaardwaarden in de scriptstap gebruikt.
Parameter | Beschrijving | Standaardwaarde |
|
Aantal beslissingsbomen in het Random Forest. Meer bomen verbeteren in het algemeen de nauwkeurigheid, maar verhogen de trainingstijd en het geheugengebruik. |
10 |
|
Maximale diepte van elke beslissingsboom. De boom bereikt deze diepte mogelijk niet tijdens de training. Diepere bomen kunnen complexere patronen vastleggen, maar kunnen overpassen op trainingsgegevens. |
10 |
|
Minimaal aantal monsters dat nodig is om een intern knooppunt te splitsen. Hogere waarden kunnen overpassing voorkomen. |
2 |
|
Indien positief, het totale aantal mogelijke functies voor de training van één boom (geldig bereik is 1 ≤ numFeatures < 1536). Gebruikt alle functies voor de training, indien negatief. |
-1 |
|
Maximumaantal functies dat kan worden gebruikt voor het trainen van één boom: 0: |
1 |
Dit JSON object stelt bijvoorbeeld alle sleutels in de optie Parameters in:
{
"numTrees" : 15,
"maxDepth" : 15,
"minSamplesSplit" : 3,
"numFeatures" : 1000,
"maxFeatures" : 0
}
Opmerkingen
-
Waarden in het Veld met trainingsvectoren moeten worden opgegeven als geldige JSON-arrays in een tekstveld of de equivalente binaire gegevens in een containerveld. Elke array moet hetzelfde aantal elementen (functies) bevatten voor alle records.
U kunt de scriptstap Insluiting invoegen in gevonden reeks scriptstap gebruiken om vectoren voor het insluiten van tekst te genereren in het Veld met trainingsvectoren op basis van een ander veld dat uw invoergegevens bevat. De insluitvectoren die worden gegenereerd door Insluiting invoegen in gevonden reeks voldoen aan de bovenstaande vereisten bij gebruik van een ondersteund model voor het insluiten van tekst.
-
Waarden in het Doelveld voor training moeten numeriek zijn. Niet-numerieke waarden leiden tot mislukking van de training.
-
Modelnamen zijn hoofdlettergevoelig en moeten uniek zijn binnen de huidige FileMaker-sessie. Als er al een model met dezelfde naam bestaat tijdens de training, wordt het vervangen door het nieuwe model.
-
Om de kwaliteit van uw getrainde model te testen, gebruikt u de functie PredictFromModel functie om de voorspelde waarde te retourneren op basis van dezelfde vectorgegevens die u hebt gebruikt om het model te trainen. Vergelijk vervolgens de voorspelde waarden met de streefwaarden die tijdens de training worden gebruikt. Een methode om de algehele kwaliteit van het model te meten is de gemiddelde kwadratische fout (MSE), die het gemiddelde kwadraat verschil tussen de voorspelde waarden en de streefwaarden berekent. Een MSE-waarde van nul geeft een perfecte correlatie aan tussen de voorspellingen van het model en de werkelijke waarden, dus lagere MSE-waarden zijn beter. De beste MSE-waarde voor een model is afhankelijk van de schaal van uw doelvariabele en de acceptabele foutmarge voor uw specifieke toepassing. Zie Voorbeeld 3 voor een script waarmee MSE wordt berekend.
-
Overwegingen met betrekking tot prestaties:
-
De trainingstijd neemt toe met het aantal bomen (
numTrees
) en de maximale diepte (maxDepth
). Begin met de standaardwaarden voor Parameters en pas deze aan op basis van uw nauwkeurigheidseisen en prestatiebeperkingen. -
Grotere gegevenssets vereisen meer geheugen tijdens de training. Overweeg het gebruik van een representatief voorbeeld voor de initiële modeltraining als u met zeer grote gegevenssets werkt.
-
Modellen blijven in het geheugen totdat ze expliciet worden uitgeladen of de FileMaker-sessie wordt beëindigd. Gebruik de actie Laden annuleren om geheugen vrij te maken wanneer modellen niet meer nodig zijn.
-
Voorbeeld 1- Een basismodel trainen
Traint een basisregressiemodel om huizenprijzen te voorspellen op basis van het aantal vierkante meter, het aantal slaapkamers en de leeftijd van het huis met behulp van de standaard Random Forest-parameters.
In de tabel Eigenschappen bevat het veld functies JSON-arrays zoals [1200, 3, 15]
die vierkante beelden, slaapkamers en leeftijd vertegenwoordigen, terwijl het veld Prijs de bijbehorende huizenprijs bevat. Nadat deze scriptstap is uitgevoerd, bevindt het model zich in het geheugen en kan het in de huidige FileMaker-sessie worden gebruikt door de PredictFromModel functie door te verwijzen naar de modelnaam "HousePriceModel".
Omdat het model in dit voorbeeld niet is opgeslagen, is het model niet meer beschikbaar nadat de huidige sessie is beëindigd.
Ga naar Lay-out [ "Eigenschappen" (Eigenschappen) ; Animatie: Geen ]
Regressiemodel configureren [ Actie: Trainen; Modelnaam: "Huisprijsmodel"; Algoritme: Random Forest; Veld met trainingsvectoren: Eigenschappen; Training Target veld: Eigenschappen: Eigenschappen: Eigenschappen; Doelveld voor training: Eigenschappen::Prijs; Lege of ongeldige records overslaan ]
Voorbeeld 2- Zorg voor insluitvectoren en train een model
Traint een regressiemodel om een sterrenwaardering (1 tot 5) te voorspellen op basis van de tekst van de beoordeling van een klant.
De trainingsgegevens staan in de tabel Beoordelingen en bestaan uit ReviewText (een tekstveld met de beoordeling van de klant) en Rating (een nummerveld met de door de klant gekozen sterrenwaardering). Nadat het script een AI-account heeft geconfigureerd voor de AI-modelserver die is geïnstalleerd met FileMaker Server, wordt dat account gebruikt om vectoren voor het insluiten van tekst in te voegen in het containerveld voor beoordeling op basis van gegevens in het veld ReviewText.
Vervolgens traint het script het regressiemodel, met de naam "ReviewModel" en met behulp van de trainingsvectoren in ReviewEmbedding, de doelwaarden in het veld Beoordeling en aangepaste parameters. Wanneer de training is voltooid, wordt het model opgeslagen in het globale containerveld ReviewModel.
AI-account configureren [ Accountnaam: "AI-modelserver" ; Modelprovider: Aangepast ; Eindpunt: "https://myserver.example.com:8080/" ; SSL-certificaten verifiëren ; API-sleutel: Global::API_Key ]
Ga naar Lay-out [ "Beoordelingen" (Beoordelingen) ]
Insluiting invoegen in gevonden reeks [ Accountnaam: "AI-modelserver" ; Insluitmodel: "all-MiniLM-L12-v2" ; Bronveld: Reviews::ReviewText ; Doelveld: Reviews::ReviewEmbedding ; Doorgaan bij fout ; Samenvatting weergeven ]
Variabele instellen [ $parameters ; Waarde:
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
)
]
Regressiemodel configureren [ Actie: Model trainen ; Modelnaam: "ReviewModel" ; Algoritme: Random Forest ; Veld met trainingsvectoren: Reviews::ReviewEmbedding ; Doelveld voor training: Reviews::Rating ; Lege of ongeldige records overslaan ; Parameters: $parameters ; Model opslaan in: Reviews::ReviewModel ]
Het model met de naam "ReviewModel" is klaar voor gebruik. Zie Voorbeeld 2 in PredictFromModel.
Voorbeeld 3- Gemiddelde kwadratische fout berekenen
Berekent de gemiddelde kwadratische fout om de kwaliteit van een getraind regressiemodel te beoordelen (zie Opmerkingen).
Het script gaat naar de lay-out Beoordelingen die de trainingsgegevens bevat die in Voorbeeld 2 worden gebruikt, toont alle records, stelt de variabele $squaredLossSum op nul in, gaat naar de eerste record, laadt vervolgens het eerder opgeslagen model en noemt het "ReviewModel".
In de lus wordt voor elke record het verschil tussen de waarde die door het model wordt voorspeld met behulp van de PredictFromModel functie en de werkelijke waarde in het veld Waardering in kwadraten geplaatst en opgeteld bij $squaredLossSum.
Nadat alle records zijn doorgelust, wordt de MSE-waarde berekend door $squaredLossSum te delen door het aantal monsters (het aantal records in de trainingsgegevensreeks) en weergegeven in een dialoogvenster. Als u klaar bent, wordt het model door het script uit het geheugen verwijderd.
Ga naar Layout [ "Beoordelingen" (Beoordelingen) ]
Alle records tonen
Variabele instellen [ $squaredLossSum; Waarde: 0 ]
Regressiemodel configureren [ Actie: Model laden ; Modelnaam: "ReviewModel" ; Model laden vanuit: Reviews::ReviewModel ]
Ga naar record/verzoek/pagina [ Eerste ]
Loop [ Flush: Altijd ]
Variabele instellen [ $loss; Value: Reviews::Rating - PredictFromModel ( "ReviewModel" ; Reviews::ReviewEmbedding ) ]
Variabele instellen [ $squaredLoss ; Value: $loss^2 ]
Variabele instellen [ $squaredLossSum ; Value: $squaredLossSum + $squaredLoss ]
Ga naar record/verzoek/pagina [ Volgende ; Afsluiten na laatste: Aan ]
End Loop
Aangepast dialoogvenster tonen [ "MSE-waarde" ; $squaredLossSum / Get ( FoundCount ) ]
Regressiemodel configureren [ Actie: Laden model annuleren ; Modelnaam: "ReviewModel" ]
Een mogelijke MSE-waarde is .01875826440712939518.