Configurar modelo de regressão
Treina, salva, carrega e descarrega um modelo de regressão. Treina um modelo baseado na incorporação de vetores para dados de texto e dados de destino numéricos.
Consulte também
Opções
-
Ação especifica a operação a ser realizada:
-
Treinar: cria e treina um novo modelo de regressão usando os dados de treinamento especificados e os parâmetros do algoritmo.
-
Salvar: salva um modelo treinado como dados de container no campo ou variável especificado pela opção Salvar modelo para para uso posterior.
-
Carregar: carrega um modelo salvo anteriormente a partir do campo ou variável de container especificada pela opção Salvar modelo para para a memória.
-
Descarregar: remove um modelo da memória para liberar recursos.
-
-
Nome do modelo é uma expressão de texto para o nome exclusivo do modelo de regressão no qual a opção Ação opera. Depois de treinar ou carregar um modelo, use o mesmo nome ao referenciar o modelo para realizar a regressão com a função Função PredictFromModel.
Opções disponíveis somente quando Ação é Treinar:
-
Algoritmo seleciona o algoritmo de aprendizado de máquina a ser usado. Na versão 22.0, Floresta aleatória é o único algoritmo fornecido.
-
Campo de vetores de treinamento especifica o campo de texto ou container que contém vetores para os dados de treinamento.
-
Campo de destino de treinamento especifica o campo que contém os valores de destino (os valores numéricos que você deseja prever). Cada valor corresponde a um exemplo de treinamento em Campo de vetores de treinamento.
-
Ignorar registros vazios ou inválidos ignora registros para os quais o campo especificado por Campo de vetores de treinamento ou Campo de destino de treinamento está vazio ou contém dados inválidos. Se não for selecionado, a etapa de script ignora todos os registros após o primeiro registro com dados de campo vazios ou inválidos e retorna um erro.
-
Parâmetros é uma expressão de texto para um objeto JSON que especifica parâmetros específicos do algoritmo como pares chave-valor. Veja a Descrição.
Opções disponíveis somente quando Ação é Treinar ou Salvar:
-
Salvar modelo para especifica uma variável ou campo de container na qual salvar o modelo treinado.
Opções disponíveis apenas quando Ação é Carregar:
-
Carregar modelo de especifica a variável ou o campo de container do qual carregar um modelo treinado.
Compatibilidade
Produto | Compatível |
FileMaker Pro | Sim |
FileMaker Go | Sim |
FileMaker WebDirect | Sim |
FileMaker Server | Sim |
FileMaker Cloud | Sim |
FileMaker Data API | Sim |
Publicação na Web personalizada | Sim |
Originada na versão
22.0
Descrição
Esta etapa de script permite que você treine e gerencie modelos de regressão que usam algoritmos de aprendizado de máquina diretamente no seu app FileMaker Pro. Modelos de regressão preveem valores numéricos contínuos para uma variável de saída dependente (destino) com base em variáveis de entrada independentes (recursos), tornando esses modelos adequados para previsão, análise de tendências e tomada de decisão baseada em dados.
O algoritmo Floresta aleatória é um método de aprendizado de conjunto que combina várias árvores de decisão para criar previsões mais robustas e precisas do que uma única árvore de decisão, tornando este algoritmo adequado para dados do mundo real. Cada árvore na floresta é treinada em um subconjunto aleatório dos dados e recursos de treinamento, o que ajuda a evitar sobreajuste (capturando não apenas padrões dos dados de treinamento, mas também ruído aleatório) e melhora a generalização para novos dados.
Quando você seleciona a ação Treinar, a etapa de script executa as seguintes operações:
-
Analisa vetores em Campo de vetores de treinamento para extrair valores de recursos.
-
Aplica o algoritmo especificado Parâmetros ou usa padrões se nenhum for fornecido.
-
Treina o modelo usando o algoritmo Floresta aleatória com valores de recursos extraídos do Campo de vetores de treinamento e os valores de destino do Campo de destino de treinamento.
-
Armazena o modelo treinado na memória com o Nome do modelo especificado para uso com a função Função PredictFromModel.
-
Se Salvar modelo para for especificado, salve o modelo para uso posterior.
As ações Salvar, Carregar e Descarregar permitem que você gerencie seus modelos treinados, salvando-os apenas quando necessário e, para otimizar o desempenho, mantendo-os na memória apenas enquanto estiverem sendo usados.
Para o algoritmo Floresta aleatória, você pode usar as seguintes chaves e valores na opção Parâmetros para ajustar o treinamento, se necessário. Se uma chave não for especificada ou a opção Parâmetros não for usada, a etapa de script usará os valores padrão.
Parâmetro | Descrição | Valor padrão |
|
Número de árvores de decisão na floresta aleatória. Mais árvores geralmente melhoram a precisão, mas aumentam o tempo de treinamento e o uso da memória. |
10 |
|
Profundidade máxima de cada árvore de decisão. A árvore pode não atingir essa profundidade durante o treinamento. Árvores mais profundas podem capturar padrões mais complexos, mas podem se ajustar excessivamente aos dados de treinamento. |
10 |
|
Número mínimo de amostras necessárias para dividir um nó interno. Valores mais altos podem evitar o ajuste excessivo. |
2 |
|
Se positivo, o número total de recursos possíveis para usar para treinar uma única árvore (intervalo válido é 1 ≤ numFeatures < 1536). Se negativo, usa todos os recursos para treinamento. |
-1 |
|
Número máximo de recursos a serem usados para treinar uma única árvore: 0: |
1 |
Por exemplo, este objeto JSON define todas as chaves na opção Parâmetros:
{
"numTrees" : 15,
"maxDepth" : 15,
"minSamplesSplit" : 3,
"numFeatures" : 1000,
"maxFeatures" : 0
}
Notas
-
Os valores no Campo de vetores de treinamento devem ser fornecidos como matrizes JSON válidas em um campo de texto ou os dados binários equivalentes em um campo de container. Cada matriz deve conter o mesmo número de elementos (recursos) em todos os registros.
Você pode usar a etapa de script Etapa de script Inserir incorporação no Conjunto encontrado para gerar vetores de incorporação de texto no Campo de vetores de treinamento com base em outro campo que contém seus dados de entrada. Os vetores de incorporação gerados por Inserir incorporação no Conjunto encontrado atendem aos requisitos acima ao usar um modelo de incorporação de texto compatível.
-
Os valores no Campo de destino de treinamento devem ser numéricos. Valores não numéricos ocasionarão na falha do treinamento.
-
Os nomes dos modelos diferenciam maiúsculas de minúsculas e devem ser exclusivos na sessão atual do FileMaker. Se um modelo com o mesmo nome já existir durante o treinamento, ele será substituído pelo novo modelo.
-
Para testar a qualidade do seu modelo treinado, use a função Função PredictFromModel para retornar o valor previsto, dados os mesmos dados vetoriais que você usou para treinar o modelo. Em seguida, compare os valores previstos com os valores de destino usados durante o treinamento. Um método de medir a qualidade geral do modelo é o erro quadrático médio (MSE), que calcula a média das diferenças quadradas entre os valores previstos e os valores de destino. Um valor de MSE igual a zero indica um ajuste perfeito entre as previsões do modelo e os valores reais, portanto, valores de MSE mais baixos são melhores. O melhor valor de MSE para um modelo é relativo à escala de sua variável de destino e à margem de erro aceitável para seu app específico. Veja o Exemplo 3 para um script que calcula o MSE.
-
Considerações de desempenho:
-
O tempo de treinamento aumenta com o aumento do número de árvores (
numTrees
) e da profundidade máxima (maxDepth
). Comece com os valores padrão para Parâmetros e ajuste-os com base em seus requisitos de precisão e restrições de desempenho. -
Conjuntos de dados maiores requerem mais memória durante o treinamento. Considere usar uma amostra representativa para o treinamento inicial do modelo se estiver trabalhando com conjuntos de dados muito grandes.
-
Os modelos permanecem na memória até que sejam explicitamente descarregados ou a sessão do FileMaker termine. Use a ação Descarregar para liberar memória quando os modelos não forem mais necessários.
-
Exemplo 1 - Treine um modelo básico
Treina um modelo básico de regressão para prever preços de casas com base na metragem quadrada, número de quartos e tempo de construção usando os parâmetros padrão da Floresta aleatória.
Na tabela Propriedades, o campo Recursos contém matrizes JSON como [1200, 3, 15]
representando metragem quadrada, quartos e tempo de construção, enquanto o campo Preço contém o preço da casa correspondente. Após a etapa de script ser executada, o modelo está na memória e pode ser usado na sessão FileMaker atual pela função Função PredictFromModel, referenciando o nome do modelo "HousePriceModel".
Como o modelo não foi salvo neste exemplo, ele não estará disponível após o término da sessão atual.
Ir para layout [ "Propriedades" (Propriedades) ; Animação: Nenhuma ]
Configurar modelo de regressão [ Ação: Treinar ; Nome do modelo: "HousePriceModel" ; Algoritmo: Floresta aleatória ; Campo de vetores de treinamento: Propriedades::Recursos ; Campo de destino de treinamento: Propriedades::Preço ; Ignorar registros vazios ou inválidos ]
Exemplo 2 - Obtenha vetores de incorporação e treine um modelo
Treina um modelo de regressão para prever uma classificação por estrelas (1 a 5) com base no texto da avaliação de um cliente.
Os dados de treinamento estão na tabela Avaliações e consistem em ReviewText (um campo de texto que contém a avaliação do cliente) e Classificação (um campo de número contendo a classificação por estrelas que o cliente escolheu). Depois que o script configura uma conta de IA para o servidor do modelo de IA instalado com o FileMaker Server, ele usa essa conta para inserir vetores de incorporação de texto no campo de container ReviewEmbedding com base nos dados do campo ReviewText.
Em seguida, o script treina o modelo de regressão, nomeando-o "ReviewModel" e usando os vetores de treinamento em ReviewEmbedding, os valores de destino no campo de classificação e os parâmetros personalizados. Quando o treinamento é concluído, o modelo é salvo no campo de container global ReviewModel.
Configurar a conta de IA [ Nome da conta: "AI_Model_Server" ; Provedor do modelo: Personalizado ; Ponto de extremidade: "https://myserver.example.com:8080/" ; Verificar certificados SSL ; Chave de API: Global::API_Key ]
Ir para layout [ "Avaliações" (Avaliações) ]
Inserir incorporação no Conjunto encontrado [ Nome da conta: "AI_Model_Server" ; Modelo de incorporação: "all-MiniLM-L12-v2" ; Campo de origem: Reviews::ReviewText ; Campo de destino: Reviews::ReviewEmbedding ; Continuar com erro ; Mostrar resumo ]
Definir variável [ $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 regressão [ Ação: Treinar modelo ; Nome do modelo: "ReviewModel" ; Algoritmo: Floresta aleatória ; Campo de vetores de treinamento: Reviews::ReviewEmbedding ; Campo de destino de treinamento: Reviews::Rating ; Ignorar registros vazios ou inválidos ; Parâmetros: $parameters ; Salvar modelo para: Reviews::ReviewModel ]
O modelo chamado "ReviewModel" está pronto para uso. Veja o Exemplo 2 em PredictFromModel.
Exemplo 3 - Calcule o erro quadrático médio
Calcula o erro quadrático médio para avaliar a qualidade de um modelo de regressão treinado (veja Notas).
O script vai para o layout de Avaliações que contém os dados de treinamento usados no Exemplo 2, mostra todos os registros, zera a variável $squaredLossSum, vai para o primeiro registro, carrega o modelo salvo anteriormente e o nomeia como "ReviewModel".
No loop, para cada registro, a diferença entre o valor previsto pelo modelo usando a função Função PredictFromModel e o valor real no campo Classificação é elevada ao quadrado e adicionada a $squaredLossSum.
Depois de percorrer todos os registros, o valor de MSE é calculado dividindo $squaredLossSum pelo número de amostras (o número de registros no conjunto de dados de treinamento) e exibido em uma caixa de diálogo. Ao final, o script descarrega o modelo da memória.
Ir para layout [ "Avaliações" (Avaliações) ]
Mostrar todos os registros
Definir variável [ $squaredLossSum; Valor: 0 ]
Configurar modelo de regressão [ Ação: Carregar modelo ; Nome do modelo: "ReviewModel" ; Carregar modelo de: Reviews::ReviewModel ]
Ir para registro/solicitação/página [ Primeiro ]
Loop [ Liberar: Sempre ]
Definir variável [ $loss; Valor: Reviews::Rating - PredictFromModel ( "ReviewModel" ; Reviews::ReviewEmbedding ) ]
Definir variável [ $squaredLoss ; Valor: $loss^2 ]
Definir variável [ $squaredLossSum ; Valor: $squaredLossSum + $squaredLoss ]
Ir para registro/solicitação/página [ Próximo ; Sair depois do último: Ativado ]
End Loop
Mostrar caixa de diálogo personalizada [ "Valor de MSE" ; $squaredLossSum / Get ( FoundCount ) ]
Configurar modelo de regressão [ Ação: Descarregar modelo ; Nome do modelo: "ReviewModel" ]
Um possível valor de MSE é 0,01875826440712939518.