KNN

O K-Nearest Neighbors (KNN) é um modelo de regressão que toma decisões com base na proximidade dos dados. Diferente de outros algoritmos, o KNN não realiza um processo de treinamento propriamente dito, em vez disso, ele utiliza todo o conjunto de dados original (banco de dados) no momento da predição. Quando um novo dado precisa ser previsto, o modelo calcula a distância entre esse dado e todos os pontos do banco, identificando os K vizinhos mais próximos. O valor final da predição é a média (ou outra agregação, como a mediana) dos valores associados a esses vizinhos.

Por depender diretamente do banco de dados durante a predição, o KNN pode consumir mais memória e se tornar mais lento à medida que o conjunto de dados cresce. Apesar disso, ele é uma escolha eficaz para problemas que envolvem conjuntos de dados pequenos ou médios, onde a simplicidade e a precisão local são desejáveis.

EXEMPLO DE USO

uses
  UKNN;
  
procedure KNNPredict;
var
  vKNN: TKNNRegression;
begin
  vKNN := TKNNRegression.Create('C:\Delphai\Delphai\Datasets\Housing Price.csv', 3);
  try
    ShowMessage('House price: ' + FormatCurr('##0.00', vKNN.Predict([2459, 1, 1, 1964, 3.1047807561601664, 0, 4])));
  finally
    vKNN.Free;
  end;
end;

GUIA DE CLASSES E MÉTODOS

TKNNRegression

  • FDataset : TAIDatasetClassification; : acessa o banco de dados atual contido no modelo.

  • procedure ClearDataset; : limpa o banco de dados.

  • constructor Create(aTrainingData : String; aK: Integer; aHasHeader : Boolean = True); ou

  • constructor Create(aTrainingData : TDataSet; aK: Integer); : cria o objeto com a base que será usada para treinamento.

    • aTrainingData : caminho do arquivo CSV ou objeto TDataSet que contém os dados que serão usados para treinamento.

    • K : número de vizinhos próximos que serão utilizados para considerar o resultado.

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

  • function Predict(aSample : TAISampleAtr; 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).

Last updated