Regressionsmodell konfigurieren

Trainiert, speichert, lädt und entlädt ein Regressionsmodell. Trainiert ein Modell basierend auf Einbettungsvektoren für Textdaten und numerische Zieldaten.

Optionen 

  • Aktion gibt die auszuführende Operation an:

    • Trainieren: Erstellt und trainiert ein neues Regressionsmodell unter Verwendung der angegebenen Training-Daten und Algorithmus-Parameter.

    • Speichern: Speichert ein trainiertes Modell als Containerdaten in dem Feld oder der Variablen, die mit der Option Modell speichern unter angegeben wurde, zur späteren Verwendung.

    • Laden: Lädt ein zuvor gespeichertes Modell aus dem Containerfeld oder der Variablen, die mit der Option Modell speichern unter angegeben wurde, in den Speicher.

    • Entladen: Entfernt ein Modell aus dem Speicher, um Ressourcen freizugeben.

  • Modellname ist ein Textausdruck für den eindeutigen Namen des Regressionsmodells, auf das die Option Aktion angewendet wird. Verwenden Sie nach dem Trainieren oder Laden eines Modells denselben Namen, wenn Sie auf das Modell verweisen, um eine Regression mit der Funktion „PredictFromModel“ auszuführen.

Optionen nur verfügbar, wenn für Aktion die Option Modell trainieren festgelegt ist:

  • Algorithmus wählt den zu verwendenden Machine Learning-Algorithmus aus. In Version 22.0 ist Random Forest der einzige verfügbare Algorithmus.

  • Trainingsvektoren-Feld gibt das Text- oder Containerfeld an, das Vektoren für die Training-Daten enthält.

  • Trainingsziel-Feld gibt das Feld an, das die Zielwerte enthält (die numerischen Werte, die Sie vorhersagen möchten). Jeder Wert entspricht einem Trainingsbeispiel im Trainingsvektoren-Feld.

  • Leere oder ungültige Datensätze überspringen überspringt Datensätze, bei denen das Feld, das durch Trainingsvektoren-Feld oder Trainingsziel-Feld angegeben ist, leer ist oder ungültige Daten enthält. Wenn diese Option nicht ausgewählt ist, überspringt der Scriptschritt alle Datensätze nach dem ersten Datensatz mit leeren oder ungültigen Felddaten und gibt einen Fehler zurück.

  • Parameter ist ein Textausdruck für ein JSON-Objekt, das algorithmusspezifische Parameter als Schlüssel-Wert-Paare angibt. Siehe Beschreibung.

Optionen nur verfügbar, wenn für Aktion die Option Modell trainieren oder Modell speichern festgelegt ist:

  • Modell speichern unter gibt eine Variable oder ein Containerfeld an, in dem das trainierte Modell gespeichert werden soll.

Optionen, die nur verfügbar sind, wenn für Aktion die Option Modell laden festgelegt ist:

  • Modell laden von gibt die Variable oder das Containerfeld an, aus dem ein trainiertes Modell geladen werden soll.

Kompatibilität 

Produkt Unterstützt
FileMaker Pro Ja
FileMaker Go Ja
FileMaker WebDirect Ja
FileMaker Server Ja
FileMaker Cloud Ja
FileMaker Data API Ja
Custom Web Publishing Ja

Ursprung in Version 

22.0

Beschreibung 

Mit diesem Scriptschritt können Sie Regressionsmodelle trainieren und verwalten, die Machine Learning-Algorithmen direkt in Ihrer FileMaker Pro-App verwenden. Regressionsmodelle prognostizieren kontinuierliche numerische Werte für eine abhängige Ausgabevariable (target) basierend auf unabhängigen Eingabevariablen (Features), wodurch diese Modelle für Prognosen, Trendanalysen und datengesteuerte Entscheidungen geeignet sind.

Der Random Forest-Algorithmus ist eine Ensemble Learning-Methode, die mehrere Entscheidungsbäume kombiniert, um robustere und genauere Vorhersagen als ein einzelner Entscheidungsbaum zu erstellen, wodurch dieser Algorithmus für reale Daten geeignet ist. Jeder Baum im Forest wird anhand einer zufälligen Untermenge der Training-Daten und Features (Merkmale) trainiert, wodurch Überanpassung (die nicht nur Muster aus den Training-Daten, sondern auch zufälliges Rauschen erfasst) verhindert und die Generalisierung auf neue Daten verbessert wird.

Wenn Sie die Aktion Trainieren auswählen, führt der Scriptschritt die folgenden Operationen aus:

  1. Analysiert Vektoren im Trainingsvektoren-Feld, um Feature-Werte zu extrahieren.

  2. Wendet die angegebenen Parameter des Algorithmus an oder verwendet Standardwerte, wenn keine angegeben sind.

  3. Trainiert das Modell mithilfe des Random Forest-Algorithmus mit den aus dem Trainingsvektoren-Feld extrahierten Feature-Werten und den Zielwerten aus dem Trainingsziel-Feld.

  4. Speichert das trainierte Modell mit dem angegebenen Modellnamen im Speicher zur Verwendung mit der Funktion „PredictFromModel“ (AusModellVorhersagen).

  5. Wenn Modell speichern unter angegeben ist, wird das Modell zur späteren Verwendung gespeichert.

Mit den Aktionen Speichern, Laden und Entladen können Sie Ihre trainierten Modelle verwalten, sie nur bei Bedarf speichern und zur Leistungsoptimierung nur während ihrer Verwendung im Speicher belassen.

Für den Random Forest-Algorithmus können Sie bei Bedarf die folgenden Schlüssel und Werte in der Option Parameter verwenden, um das Training anzupassen. Wenn kein Schlüssel angegeben ist oder die Option Parameter nicht verwendet wird, verwendet der Scriptschritt die Standardwerte.

Parameter Beschreibung Standardwert

numTrees

Anzahl der Entscheidungsbäume im Random Forest. Mehr Bäume verbessern im Allgemeinen die Genauigkeit, erhöhen jedoch die Trainingszeit und den Speicherbedarf.

10

maxDepth

Maximale Tiefe jedes Entscheidungsbaums. Der Baum erreicht diese Tiefe beim Trainieren möglicherweise nicht. Tiefere Bäume können komplexere Muster erfassen, aber möglicherweise zu stark an die Training-Daten angepasst sein.

10

minSamplesSplit

Mindestanzahl der Samples, die zum Splitten eines internen Knotens erforderlich sind. Höhere Werte können eine Überanpassung verhindern.

2

numFeatures

Wenn positiv, die Gesamtzahl der möglichen Merkmale, die zum Trainieren eines einzelnen Baums verwendet werden können (gültiger Bereich ist 1 ≤ numFeatures < 1536). Wenn negativ, werden alle Funktionen zum Trainieren verwendet.

-1

maxFeatures

Maximale Anzahl von Features, die zum Trainieren eines einzelnen Baums verwendet werden können:

0: numFeatures
1: Sqrt(numFeatures)
2: log2(numFeatures)

1

Dieses JSON-Objekt legt z. B. alle Schlüssel in der Option Parameter fest:

Kopieren
{
    "numTrees" : 15,
    "maxDepth" : 15,
    "minSamplesSplit" : 3,
    "numFeatures" : 1000,
    "maxFeatures" : 0
}

Hinweise 

  • Die Werte in Trainingsvektoren-Feld müssen als gültige JSON-Arrays in einem Textfeld oder als entsprechende Binärdaten in einem Containerfeld angegeben werden. Jedes Array muss in allen Datensätzen dieselbe Anzahl an Elementen (Features) enthalten.

    Mit dem Scriptschritt „Einbettung in Ergebnismenge einfügen“ können Sie Text-Einbettungsvektoren im Trainingsvektoren-Feld generieren, basierend auf einem anderen Feld, das Ihre Eingabedaten enthält. Die von „Einbettung in Ergebnismenge einfügen“ generierten Einbettungsvektoren erfüllen die oben genannten Anforderungen, wenn ein unterstütztes Text-Einbettungsmodell verwendet wird.

  • Die Werte im Trainingsziel-Feld müssen numerisch sein. Nicht numerische Werte führen zum Fehlschlagen des Trainings.

  • Modellnamen unterscheiden zwischen Groß- und Kleinschreibung und müssen innerhalb der aktuellen FileMaker-Sitzung eindeutig sein. Wenn beim Trainieren bereits ein Modell mit demselben Namen existiert, wird es durch das neue Modell ersetzt.

  • Um die Qualität Ihres trainierten Modells zu testen, verwenden Sie die Funktion „PredictFromModel“, um den vorhergesagten Wert für dieselben Vektordaten zurückzugeben, die Sie zum Trainieren des Modells verwendet haben. Vergleichen Sie anschließend die vorhergesagten Werte mit den während des Trainings verwendeten Zielwerten. Eine Methode zur Messung der Gesamtqualität des Modells ist die mittlere quadratische Abweichung (mean squared error, MSE), die die durchschnittliche quadratische Differenz zwischen den vorhergesagten Werten und den Zielwerten berechnet. Ein MSE-Wert von Null bedeutet, dass die Vorhersagen des Modells und die tatsächlichen Werte perfekt übereinstimmen, demnach sind niedrigere MSE-Werte besser. Der beste MSE-Wert für ein Modell hängt von der Skala Ihrer Zielvariablen und der für Ihre spezifische Anwendung akzeptablen Fehlermarge ab. In Beispiel 3 finden Sie ein Script, das den MSE berechnet.

  • Performance-Überlegungen:

    • Die Trainingszeit erhöht sich mit der Anzahl der Bäume (numTrees) und der maximalen Tiefe (maxDepth). Beginnen Sie mit den Standardwerten für Parameter und passen Sie diese entsprechend Ihren Genauigkeitsanforderungen und Leistungsbeschränkungen an.

    • Größere Datensätze benötigen während des Trainings mehr Speicherplatz. Ziehen Sie bei sehr großen Datensätzen die Verwendung einer repräsentativen Stichprobe für das anfängliche Modelltraining in Betracht.

    • Modelle bleiben im Speicher, bis sie explizit entladen werden oder die FileMaker-Sitzung beendet wird. Verwenden Sie die Aktion Entladen, um Speicherplatz freizugeben, wenn Modelle nicht mehr benötigt werden.

Beispiel 1 - Ein Basismodell trainieren

Trainiert ein Basis-Regressionsmodell, um anhand der Quadratmeterzahl, der Anzahl der Schlafzimmer und des Alters des Hauses die Immobilienpreise mithilfe der Standardparameter von Random Forest vorherzusagen.

In der Tabelle „Eigenschaften“ enthält das Feld „Features“ JSON-Arrays wie [110, 3, 15], die die Quadratmeterzahl, die Anzahl der Schlafzimmer und das Alter darstellen, während das Feld „Preis“ den entsprechenden Hauspreis enthält. Nachdem dieser Scriptschritt ausgeführt wurde, befindet sich das Modell im Speicher und kann in der aktuellen FileMaker-Sitzung mit der Funktion „PredictFromModel“ unter Angabe des Modellnamens „HauspreisModell“ verwendet werden.

Da das Modell in diesem Beispiel nicht gespeichert wurde, ist es nach Beendigung der aktuellen Sitzung nicht mehr verfügbar.

Kopieren
Gehe zu Layout [ "Eigenschaften" (Eigenschaften) ; Animation: Ohne ]

Regressionsmodell konfigurieren [ Aktion: Modell trainieren ; Modellname: "HauspreisModell" ; Algorithmus: Random Forest ; Trainingsvektoren-Feld: Eigenschaften::Features ; Trainingsziel-Feld: Eigenschaften::Preis ; Leere oder ungültige Datensätze überspringen ]

Beispiel 2 – Einbettungsvektoren abrufen und ein Modell trainieren

Trainiert ein Regressionsmodell, um anhand des Textes einer Kundenrezension eine Sternebewertung (1 bis 5) vorherzusagen.

Die Training-Daten befinden sich in der Tabelle „Rezensionen” und bestehen aus „RezensionText” (ein Textfeld, das die Rezension des Kunden enthält) und „Bewertung” (ein Zahlenfeld, das die vom Kunden gewählte Sternebewertung enthält). Nachdem das Script ein KI-Konto für den mit FileMaker Server installierten KI-Modellserver konfiguriert hat, verwendet es dieses Konto, um Text-Einbettungsvektoren basierend auf den Daten im Feld „RezensionText“ in das Containerfeld „RezensionEinbettung“ einzufügen.

Anschließend trainiert das Script das Regressionsmodell, benennt es „RezensionModell“ und verwendet die Trainingsvektoren in „RezensionEinbettung“, die Zielwerte im Feld „Bewertung“ und benutzerdefinierte Parameter. Nach Abschluss des Trainings wird das Modell im globalen Containerfeld „RezensionModell“ gespeichert.

Kopieren
KI-Konto konfigurieren [ Kontoname: "KI-Modellserver" ; Modellanbieter: Benutzerdefiniert ; Endpunkt: "https://meinserver.beispiel.com:8080/" ; SSL-Zertifikate verifizieren ; API-Schlüssel: Global::API-Schlüssel ]

Gehe zu Layout [ "Rezensionen" (Rezensionen) ]

Einbettung in Ergebnismenge einfügen [ Kontoname: "KI-Modellserver" ; Einbettungsmodell: "all-MiniLM-L12-v2" ; Quellfeld: Rezensionen::RezensionText ; Zielfeld: Rezensionen::RezensionEinbettung ; Bei Fehler fortfahren ; Zusammenfassung anzeigen ]

Variable setzen [ $Parameter ; Wert: 
  SetzeVar ( [
    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
  )
]

Regressionsmodell konfigurieren [ Aktion: Modell trainieren ; Modellname: "RezensionModell" ; Algorithmus: Random Forest ; Trainingsvektoren-Feld: Rezensionen::RezensionEinbettung ; Trainingsziel-Feld: Rezensionen::Rezension ; Leere oder ungültige Datensätze überspringen ; Parameter: $parameter ;     
Modell speichern unter: Rezensionen::RezensionModell ]

Das Modell mit dem Namen „RezensionModell“ ist einsatzbereit. Siehe Beispiel 2 in PredictFromModel.

Beispiel 3 - Mittlere quadratische Abweichung berechnen

Berechnet die mittlere quadratische Abweichung, um die Qualität eines trainierten Regressionsmodells zu beurteilen (siehe Hinweise).

Das Script wechselt zum Layout „Rezensionen“, das die in Beispiel 2 verwendeten Training-Daten enthält, zeigt alle Datensätze an, setzt die Variable $quadratischVerlustSumme auf Null, wechselt zum ersten Datensatz, lädt dann das zuvor gespeicherte Modell und benennt es „RezensionModell“.

In der Schleife (Anfang) wird für jeden Datensatz die Differenz zwischen dem vom Modell mithilfe der Funktion „PredictFromModel“ vorhergesagten Wert und dem tatsächlichen Wert im Feld „Bewertung“ quadriert und zu $quadratischVerlustSumme addiert.

Nachdem alle Datensätze durchlaufen wurden, wird der MSE-Wert berechnet, indem $quadratischVerlustSumme durch die Anzahl der Samples (die Anzahl der Datensätze im Training-Datensatz) dividiert und in einem Dialogfeld angezeigt wird. Anschließend entlädt das Script das Modell aus dem Speicher.

Kopieren
Gehe zu Layout [ "Rezensionen" (Rezensionen) ]
Alle Datensätze anzeigen
Variable setzen [ $quadratischVerlustSumme; Wert: 0 ]

Regressionsmodell konfigurieren [ Aktion: Modell laden ; Modellname: "RezensionModell" ; Modell laden von: Rezensionen::RezensionModell ]

Gehe zu Datensatz/Abfrage/Seite [ Erste ]
Schleife (Anfang) [ Löschen: Immer ]
    Variable setzen [ $Verlust; Wert: Rezensionen::Bewertung - PredictFromModel ( "RezensionModell" ; Rezensionen::RezensionEinbettung) ]
    Variable setzen [ $quadratischVerlust ; Wert: $Verlust^2 ]
    Variable setzen [ $quadratischVerlustSumme ; Wert: $quadratischVerlustSumme + $quadratischVerlust ]
    Gehe zu Datensatz/Abfrage/Seite [ Nächster; Nach letztem beenden: Ein ]
Schleife (Ende)

Eigenes Dialogfeld anzeigen [ "MSE-Wert" ; $quadratischVerlustSumme / Hole ( AnzahlGefundeneDatensätze ) ]

Regressionsmodell konfigurieren [ Aktion: Modell entladen ; Modellname: "RezensionModell" ]

Ein möglicher MSE-Wert ist .01875826440712939518.