Regressão Linear

A regressão linear é uma técnica de estatística usada para entender a relação entre variáveis. Ela tenta encontrar a melhor linha reta que conecta os pontos em um gráfico, representando como uma variável independente (como horas de estudo) influencia uma variável dependente (como nota na prova). O objetivo é minimizar a diferença entre os valores reais e os previstos pela linha.

Apesar de ser simples e útil, a regressão linear pode ter problemas quando há muitas variáveis ou quando os dados têm ruído ou correlações fortes. Isso pode fazer com que o modelo "superajuste" os dados, ou seja, se ajuste demais à variações específicas e perca a capacidade de generalizar para novos dados.

O treinamento do modelo é rápido, após o treinamento não é necessário a base de dados para realizar predições. É possível salvar e importar o treinamento finalizado em um arquivo extremamente leve.

EXEMPLO DE USO

uses
  ULinearRegression;
  
procedure ExampleLinearRegression;
var
  vLinearReg: TLinearRegression;
begin
  vLinearReg := TLinearRegression.Create;
  try
    vLinearReg.Train('C:\Delphai\Delphai\Datasets\Housing Price.csv', True);
    ShowMessage('House price: ' + FormatCurr('##0.00', vLinearReg.Predict([2459, 1, 1, 1964, 3.1047807561601664, 0, 4])));
  finally
    vLinearReg.Free;
  end;
end;

GUIA DE CLASSES E MÉTODOS

TLinearRegression

  • FDataset : TAIDatasetClassification; : acessa a base de dados atual contido no modelo.

  • procedure ClearDataset; : limpa a base de dados.

  • constructor Create; : cria um novo objeto para ser treinado.

  • constructor Create(aTrainedFile : String); overload; : cria o objeto carregando a estrutura de um arquivo já treinado.

  • procedure Train(aTrainingData : String; aHasHeader : Boolean = True); overload; : realiza o treinamento com os dados passados.

    • aTrainingData : caminho do arquivo CSV.

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

  • procedure Train(aTrainingData : TDataSet); overload; : realiza o treinamento e gera os nós com base nos dados passados.

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

  • function Predict(aSample: TArray<Double>; aInputNormalized : Boolean = False): String; : prevê o valor da amostra.

    • aSample : amostra a ser analisada.

    • aInputNormalized : deve ser passado como true somente se os dados da entrada já foram normalizadas por fora do componente (o que deve ser feito utilizando o range salvo no objeto).

  • procedure LoadFromFile(const FileName: string); : carrega o arquivo treinado.

  • procedure SaveToFile(const FileName: string); : salva o arquivo treinado.

Last updated