Classificação

A classificação é usada para separar dados em categorias definidas previamente. Com base em informações fornecidas, o modelo aprende a identificar padrões que ajudam a decidir a qual grupo o item pertence.

Por exemplo, imagine que você trabalha em um banco e quer prever se um cliente é "confiável" ou "de risco" para receber um empréstimo. O modelo pode usar informações como idade, renda, histórico de pagamentos e profissão para determinar em qual categoria o cliente se encaixa.

Depois de treinado, o modelo de classificação ajuda a tomar decisões mais rápidas e precisas, reduzindo erros e otimizando processos. Essa técnica é amplamente usada em diversas áreas, como prever doenças em pacientes, identificar spam em e-mails e até prever o resultado de partidas esportivas.

EXEMPLO DE USO

Um exemplo de como podemos definir a espécie de uma flor do gênero Iris utilizando o famos banco de dados "Iris".

Para gerar o arquivo com todas as configurações necessárias para utilizar posteriormente:

uses
  UEasyAI;
  
procedure TrainModel;
var
  vEasyAIClass: TEasyAIClassification;
begin
  vEasyAIClass := TEasyAIClassification.Create;
  try
    vEasyAIClass.LoadDataset('C:\DelphAI\DelphAI\Datasets\Iris.csv', False);
    vEasyAIClass.FindBestModel('C:\Example\Trained Iris');
  finally
    vEasyAIClass.Free;
  end;
end;

Ao concluir a procedure "FindBestModel", será criado o arquivo no diretório passado por parâmetro e uma mensagem de alerta será exibida, avisando se é necessário ou não carregar novamente o banco de dados antes do uso.

Para utilizar o modelo a partir do arquivo gerado:

uses
  UEasyAI;
  
procedure ShowPredictedFlowerSpecies;
var
  vEasyAIClass: TEasyAIClassification;
begin
  vEasyAIClass := TEasyAIClassification.Create;
  try
    vEasyAIClass.LoadDataset('C:\DelphAI\DelphAI\Datasets\Iris.csv', False); // Só é necessário se foi alertado que o melhor modelo precisa do dataset.
    vEasyAIClass.LoadFromFile('C:\Example\Trained Iris');
    ShowMessage('Flower species: ' + vEasyAIClass.Predict([6.3, 3.3, 4.7, 1.6]));
  finally
    vEasyAIClass.Free;
  end;
end;

A estrutura da base de dados pode ser encontrado aqui.

GUIA DE CLASSES E MÉTODOS

TEasyAIClassification

  • constructor Create; : cria o objeto

  • procedure LoadDataset(aDataSet : String; aHasHeader : Boolean = True); : carrega a base de dados para treinamento ou uso nos modelos que necessitam.

    • aDataSet : caminho do arquivo CSV.

    • aHasHeader : indica se tem cabeçalho no arquivo.

  • procedure LoadDataset(aDataSet : TDataSet); : carrega a base de dados para treinamento ou uso nos modelos que necessitam.

    • aDataSet : objeto TDataSet que contém os dados que serão usados para treinamento.

  • procedure FindBestModel(aPathResultFile: String; aMode : TEasyTestingMode = tmStandard; aMaxThreads : Integer = 0; aCsvResultModels : String = ''; aLogFile : String = ''); : testa várias opções de modelos para encontrar e preparar o melhor dentre eles para ser usado nas predições.

    • aPathResultFile : caminho onde salva as configurações do modelo encontrado, antes do uso basta usá-lo para preparar todo o objeto para predições.

    • aMode : modo de pesquisa se será realizada, tendo 3 opções:

      • tmFast : testa somente os prováveis melhores modelos. É o modo mais rápido;

      • tmStandard : testa os prováveis melhores modelos, além de explorar parâmetros mais extremos;

      • tmExtensive : testa um grande número de modelos, incluindo o dos outros métodos. É o modo mais demorado.

    • aMaxThreads : opcional, é o máximo de threads que serão utilizadas simultaneamente. Caso for 0, irá usar a quantidade de threads disponíveis no CPU.

    • aCsvResultModels : opcional, é o caminho que irá gerar um arquivo CSV contendo cada método testado, junto aos seus resultados.

    • aLogFile : opcional, é o caminho do arquivo de log

  • procedure LoadFromFile(aPath : String); : carrega o arquivo gerado no "FindBestModel" para criar e preparar o uso do melhor modelo encontrado.

  • function Predict(aSample : TArray<Double>) : Double; : prevê a melhor categoria para a amostra.

    • aSample : amostra a ser analisada. Exemplo, se o modelo foi treinado com 5 colunas de propriedades + 1 do resultado, agora deve ser passado apenas o array com o valor das 5 propriedades.

Last updated