Regressão Ridge

A regressão Ridge é uma variação da regressão linear que ajuda a evitar o problema de superajuste. Ela faz isso adicionando uma penalidade à equação para evitar que os coeficientes fiquem muito grandes. Essa penalidade reduz a influência de variáveis menos importantes, tornando o modelo mais simples e estável. É como se o Ridge "puxasse" os coeficientes para mais perto de zero, sem eliminá-los completamente.

Essa técnica é especialmente útil quando há muitas variáveis relacionadas entre si ou quando os dados são limitados. Ao controlar o impacto de variáveis menos relevantes, a regressão Ridge cria modelos que funcionam melhor em situações práticas, ajudando a prever resultados com mais precisão em novos conjuntos de 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
  URidgeRegression;
  
procedure ExampleRidgeRegression;
var
  vRidge: TRidgeRegression;
begin
  vRidge := TRidgeRegression.Create(0.1);
  try
    vRidge.Train('C:\Delphai\Delphai\Datasets\Housing Price.csv', True);
    ShowMessage('House price: ' + FormatCurr('##0.00', vRidge.Predict([2459, 1, 1, 1964, 3.1047807561601664, 0, 4])));
  finally
    vRidge.Free;
  end;
end;

GUIA DE CLASSES E MÉTODOS

TRidgeRegression

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

  • procedure ClearDataset; : limpa a base de dados.

  • constructor Create(aAlfa : Double); : cria um novo objeto para ser treinado.

    • aAlfa : parâmetro de regularização que controla a penalização dos coeficientes, equilibrando ajuste ao modelo e complexidade para evitar overfitting, em outras palavras, é como um "freio" que ajuda a evitar que o modelo fique muito ajustado aos dados, tornando as previsões mais confiáveis. Quanto maior o alfa, mais o modelo é simplificado.

  • 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 do arquivo treinado.

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

Last updated