Configura modello di regressione

Addestra, salva, carica e scarica un modello di regressione. Addestra un modello sulla base di vettori di embedding per dati di testo e dati di destinazione numerici.

Opzioni 

  • Azione specifica l'operazione da eseguire:

    • Addestra: crea e addestra un nuovo modello di regressione utilizzando i dati di addestramento e i parametri dell'algoritmo specificati.

    • Salva: salva un modello addestrato come dati Contenitore nel campo o nella variabile specificati dall'opzione Salva modello in per uso futuro.

    • Carica: carica un modello precedentemente salvato dal campo Contenitore o dalla variabile specificati dall'opzione Salva modello in nella memoria.

    • Scarica: rimuove un modello dalla memoria per liberare risorse.

  • Nome modello è un'espressione di testo per il nome univoco del modello di regressione su cui opera l'opzione Azione. Dopo l'addestramento o il caricamento di un modello, utilizzare lo stesso nome quando si fa riferimento al modello per eseguire la regressione con la funzione PredictFromModel.

Opzioni disponibili solo quando Azione è impostato su Addestra:

  • Algoritmo seleziona l'algoritmo di machine learning da utilizzare. Nella versione 22.0, Random Forest è l'unico algoritmo fornito.

  • Campo vettori addestramento specifica il campo Testo o Contenitore contenente i vettori per i dati di addestramento.

  • Campo destinazione addestramento specifica il campo contenente i valori di destinazione (i valori numerici che si desidera prevedere). Ogni valore corrisponde a un esempio di addestramento in Campo vettori addestramento.

  • Salta record vuoti o non validi salta i record per i quali il campo specificato da Campo vettori addestramento o Campo destinazione addestramento è vuoto o contiene dati non validi. Se non viene selezionato, l'istruzione di script salta tutti i record dopo il primo record con dati di campo vuoti o non validi e restituisce un errore.

  • Parametri è un'espressione di testo per un oggetto JSON che specifica parametri specifici dell'algoritmo come coppie chiave-valore. Vedere Descrizione.

Opzioni disponibili solo quando Azione è impostato su Addestra o Salva:

  • Salva modello in specifica una variabile o un campo Contenitore in cui salvare il modello addestrato.

Opzioni disponibili solo quando Azione è impostato su Carica:

  • Carica modello da specifica la variabile o il campo Contenitore da cui caricare un modello addestrato.

Compatibilità 

Prodotto Supportata
FileMaker Pro
FileMaker Go
FileMaker WebDirect
FileMaker Server
FileMaker Cloud
FileMaker Data API
Pubblicazione Web personalizzata

Creata nella versione 

22.0

Descrizione 

Questa istruzione di script consente di addestrare e gestire modelli di regressione che utilizzano algoritmi di machine learning direttamente all'interno dell'app FileMaker Pro. I modelli di regressione servono a prevedere valori numerici continui per una variabile di output dipendente (destinazione) in base a variabili di input indipendenti (feature), rendendo questi modelli adatti per previsioni, analisi di tendenze e processi decisionali basati sui dati.

L'algoritmo Random Forest è un metodo di apprendimento d'insieme che combina più alberi decisionali per creare previsioni più affidabili e precise di un singolo albero decisionale, rendendo questo algoritmo adatto per dati reali. Ogni albero della foresta è addestrato su un sottoinsieme casuale di dati di apprendimento e feature per evitare l'overfitting (cattura non solo di modelli dai dati di addestramento, ma anche di rumore casuale) e migliorare la generalizzazione su dati nuovi.

Quando si seleziona l'azione Addestra, l'istruzione di script esegue le seguenti operazioni:

  1. Analizza i vettori in Campo vettori addestramento per estrarre i valori delle feature.

  2. Applica l'algoritmo specificato Parametri o utilizza valori predefiniti se non ne vengono forniti.

  3. Addestra il modello utilizzando l'algoritmo Random Forest con i valori delle feature estratti da Campo vettori addestramento e i valori target da Campo destinazione addestramento.

  4. Salva il modello addestrato in memoria con il Nome modello specificato per l'uso con la funzione PredictFromModel.

  5. Se viene specificato Salva modello in, il modello viene salvato per un uso successivo.

Le azioni Salva, Carica e Scarica consentono di gestire i modelli addestrati, salvandoli solo quando necessario e tenendoli in memoria solo mentre vengono utilizzati, in modo da ottimizzare le prestazioni.

Per l'algoritmo Random Forest è possibile utilizzare le seguenti chiavi e i seguenti valori nell'opzione Parametri per regolare l'addestramento, se necessario. Se non viene specificata una chiave o non viene utilizzata l'opzione Parametri, l'istruzione di script utilizza i valori predefiniti.

Parametro Descrizione Valore predefinito

numTrees

Numero di alberi decisionali della foresta casuale. Più alberi generalmente migliorano la precisione ma aumentano il tempo di apprendimento e l'utilizzo della memoria.

10

maxDepth

Profondità massima di ogni albero decisionale. L'albero potrebbe non raggiungere questa profondità durante l'addestramento. Gli alberi con maggiore profondità possono catturare modelli più complessi, ma possono adattarsi troppo ai dati di apprendimento (overfitting).

10

minSamplesSplit

Numero minimo di campioni necessari per dividere un nodo interno. Valori più alti possono prevenire l'overfitting.

2

numFeatures

Se positivo, il numero totale delle possibili feature da utilizzare per addestrare un singolo albero (l'intervallo valido è 1 ≤ numFeatures < 1536). Se negativo, utilizza tutte le feature per l'addestramento.

-1

maxFeatures

Numero massimo di feature da utilizzare per addestrare un singolo albero:

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

1

Ad esempio, questo oggetto JSON imposta tutte le chiavi nell'opzione Parametri:

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

Note 

  • I valori in Campo vettori addestramento devono essere forniti come array JSON validi in un campo Testo o i dati binari equivalenti in un campo Contenitore. Ogni array deve contenere lo stesso numero di elementi (feature) in tutti i record.

    È possibile utilizzare l'istruzione di script Inserisci Embedding nel gruppo trovato per generare vettori di embedding di testo in Campo vettori addestramento in base a un altro campo che contiene i dati di input. I vettori di embedding generati da Inserisci Embedding nel gruppo trovato soddisfano i requisiti di cui sopra quando si utilizza un modello di embedding di testo supportato.

  • I valori in Campo destinazione addestramento devono essere numerici. Valori non numerici causano il fallimento dell'addestramento.

  • I nomi dei modelli fanno distinzione tra maiuscole e minuscole e devono essere unici all'interno della sessione FileMaker corrente. Se esiste già un modello con lo stesso nome durante l'addestramento, verrà sostituito con il nuovo modello.

  • Per testare la qualità del modello addestrato, utilizzare la funzione PredictFromModel per restituire il valore previsto sulla base degli stessi dati vettoriali utilizzati per addestrare il modello. Quindi confrontare i valori previsti con i valori di destinazione utilizzati durante l'addestramento. Un metodo per misurare la qualità complessiva del modello è l'errore quadratico medio (Mean Squared Error, MSE), che calcola la differenza quadratica media tra i valori previsti e i valori di destinazione. Un valore MSE di zero indica una corrispondenza perfetta tra le previsioni del modello e i valori effettivi, quindi valori MSE più bassi sono migliori. Il valore MSE migliore per un modello è relativo alla scala della variabile di destinazione e al margine di errore accettabile per la propria applicazione specifica. Vedere l'Esempio 3 per uno script di calcolo dell'MSE.

  • Considerazioni sulle prestazioni:

    • Il tempo di addestramento aumenta con il numero di alberi (numTrees) e la profondità massima (maxDepth). Iniziare con i valori predefiniti per Parametri e regolarli in base alle proprie esigenze di precisione e ai propri vincoli di prestazione.

    • Set di dati più grandi richiedono più memoria durante l'addestramento. Prendere in considerazione l'utilizzo di un campione rappresentativo per l'addestramenteo del modello iniziale se si lavora con set di dati molto grandi.

    • I modelli rimangono in memoria fino a quando non vengono esplicitamente scaricati o fino al termine della sessione FileMaker. Utilizzare l'azione Scarica per liberare memoria quando i modelli non sono più necessari.

Esempio 1 - Addestrare un modello di base

Addestra un modello di regressione di base per prevedere i prezzi delle case in base alla superficie, al numero di camere da letto e all'età della casa utilizzando i parametri di Random Forest predefiniti.

Nella tabella Proprietà, il campo Feature contiene array JSON come [110, 3, 15] che rappresentano superficie, camere da letto ed età, mentre il campo Prezzo contiene il prezzo corrispondente della casa. Dopo l'esecuzione di questa istruzione di script, il modello è in memoria e può essere utilizzato nella sessione FileMaker corrente dalla funzione funzione PredictFromModel facendo riferimento al nome del modello "ModelloPrezziCase".

Poiché il modello non è stato salvato in questo esempio, al termine della sessione corrente non sarà disponibile.

Copia
Vai al formato [ "Proprietà" (Proprietà) ; Animazione: Nessuna  ]

Configura modello di regressione [ Azione: Addestra ; Nome modello: "ModelloPrezziCase" ; Algoritmo: Random Forest ; Campo vettori addestramento: Proprietà::Feature ; Campo destinazione addestramento: Proprietà::Prezzo ; Salta record vuoti o non validi ]

Esempio 2 - Ottenere vettori di embedding e addestrare un modello

Addestra un modello di regressione per prevedere una valutazione in stelle (da 1 a 5) in base al testo della recensione di un cliente.

I dati di addestramento si trovano nella tabella Recensioni e sono costituiti da TestoRecensione (un campo Testo contenente la recensione del cliente) e Valutazione (un campo Numero contenente la valutazione in stelle scelta dal cliente). Dopo che lo script ha configurato un account AI per il Server modello AI installato con FileMaker Server, utilizza quell'account per inserire vettori di embedding di testo nel campo Contenitore EmbeddingRecensioni in base ai dati del campo TestoRecensione.

Quindi lo script addestra il modello di regressione, nominandolo "ModelloRecensioni" e utilizzando i vettori di addestramento in EmbeddingRecensioni, i valori di destinazione nel campo Valutazione e parametri personalizzati. Al termine dell'addestramento, il modello viene salvato nel campo Contenitore globale ModelloRecensioni.

Copia
Configura account AI [ Nome account: "Server_modello_AI" ; Fornitore modello: Personalizzato ; Endpoint: "https://myserver.example.com:8080/" ; Verifica certificati SSL ; Chiave API: Globale::Chiave_API ]

Vai al formato [ "Recensioni" (Recensioni) ]

Inserisci Embedding nel gruppo trovato [ Nome account: "Server_modello_AI" ; Modello di Embedding: "all-MiniLM-L12-v2" ; Campo origine: Recensioni::TestoRecensione ; Campo di destinazione: Recensioni::EmbeddingRecensioni ; Continua in caso di errore ; Mostra riassunto ]

Imposta variabile [ $parametri ; Valore: 
  Dichiara ( [
    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
  )
]

Configura modello di regressione [ Azione:      
Addestra modello ; Nome modello: "ModelloRecensioni" ; Algoritmo: Random Forest ; Campo vettori addestramento: Recensioni::EmbeddingRecensioni ; Campo destinazione addestramento: Recensioni::Valutazione ; Salta record vuoti o non validi ; Parametri: $parametri ; Salva modello in: Recensioni::ModelloRecensioni ]

Il modello denominato "ModelloRecensioni" è pronto per l'uso. Vedere l'Esempio 2 in PredictFromModel.

Esempio 3 - Calcolare l'errore quadratico medio

Calcola l'errore quadratico medio per valutare la qualità di un modello di regressione addestrato (vedere Note).

Lo script va al formato Recensioni contenente i dati di addestramento utilizzati nell'Esempio 2, visualizza tutti i record, azzera la variabile $sommaPerditeQuadratica, va al primo record, quindi carica il modello salvato in precedenza e lo chiama "ModelloRecensioni".

Nel loop, per ogni record, la differenza tra il valore previsto dal modello utilizzando la funzione PredictFromModel e il valore effettivo del campo Valutazione viene elevato al quadrato e aggiunto a $sommaPerditeQuadratica.

Dopo aver eseguito un ciclo su tutti i record, il valore MSE viene calcolato dividendo $sommaPerditeQuadratica per il numero di campioni (il numero di record nel set di dati di addestramento) e viene visualizzato in una finestra di dialogo. Al termine, lo script scarica il modello dalla memoria.

Copia
Vai al formato [ "Recensioni" (Recensioni) ]
Mostra tutti i record 
Imposta variabile [ $sommaPerditeQuadratica; Valore: 0 ]

Configura modello di regressione [ Azione: Carica modello ; Nome modello: "ModelloRecensioni" ; Carica modello da: Recensioni::ModelloRecensioni ]

Vai a Record/Richiesta/Pagina [ Primo ]
Loop [Scarica: Sempre]
    Imposta variabile [ $perdita; Valore: Recensioni::Valutazione - PredictFromModel ( "ModelloRecensioni" ; Recensioni::EmbeddingRecensioni ) ]
    Imposta variabile [ $perditaQuadratica ; Valore: $perdita^2 ]
    Imposta variabile [ $sommaPerditeQuadratica ; Valore: $sommaPerditeQuadratica + $perditaQuadratica ]
    Vai a Record/Richiesta/Pagina [ Successivo ; Esci dopo l'ultimo: Attivata ]
End Loop

Mostra finestra personalizz. [ "Valore EQM" ; $sommaPerditeQuadratica / Get ( ContoTrovati ) ]

Configura modello di regressione [ Azione: Scarica modello ; Nome modello: "ModelloRecensioni" ]

Un possibile valore MSE è .01875826440712939518.