AISelector
O módulo AISelector foi desenvolvido para facilitar a escolha do modelo ideal de inteligência artificial para suas aplicações. Ele automatiza o processo de teste e avaliação de diferentes algoritmos disponíveis no componente, gerando um CSV com métricas como acurácia.
Para utilizar o módulo AISelector, é necessário ter conhecimento prévio em inteligência artificial, já que ele foi projetado para usuários que desejam configurar, testar e interpretar os resultados de diferentes modelos manualmente. Caso você não tenha experiência na área, é recomendado o uso do EasyAI.
No AISelector é possível adicionar vários modelos com diferentes parâmetros e realize o teste de todos com apenas uma função.
EXEMPLO DE USO
uses
UAISelector;
procedure ExampleAISelector;
var
vClassification: TAIClassificationSelector;
begin
vClassification := TAIClassificationSelector.Create('C:\DelphAI\DelphAI\Datasets\Breast Cancer.csv');
try
vClassification.Models.AddKNN(1);
vClassification.Models.AddKNN(7);
vClassification.Models.AddKNN(15);
vClassification.Models.AddKNN(21);
vClassification.Models.AddTree(5, scGini);
vClassification.Models.AddNaiveBayes;
vClassification.RunTests('C:\Example\ClassificationResult.csv', 'C:\Example\ClassificationLog.txt');
finally
vClassification.Free;
end;
end;uses
UAISelector;
procedure ExampleAISelector;
var
vRegression: TAIRegressionSelector;
begin
vRegression := TAIRegressionSelector.Create('C:\Users\Felipe\Documents\house_price_menor.csv');
try
vRegression.Models.AddKNN(3);
vRegression.Models.AddKNN(17);
vRegression.Models.AddKNN(35);
vRegression.Models.AddLinearRegression;
vRegression.Models.AddRidge(0.01);
vRegression.Models.AddRidge(0.1);
vRegression.Models.AddRidge(1);
vRegression.Models.AddRidge(10);
vRegression.Models.AddRidge(100);
vRegression.RunTests('C:\Example\RegressionResult.csv', 'C:\Example\RegressionLog.txt');
finally
vRegression.Free;
end;
end;uses
UAISelector;
procedure ExampleAISelector;
var
vRecommendation: TAIRecommendationSelector;
begin
vRecommendation := TAIRecommendationSelector.Create('C:\DelphAI\DelphAI\Datasets\MovieLens-100k\user_item_matrix.csv');
vRecommendation.Models.AddItemItem(10, TDistanceMode.dmCosine);
vRecommendation.Models.AddItemItem(10, TDistanceMode.dmEuclidean);
vRecommendation.Models.AddItemItem(10, TDistanceMode.dmManhattan);
vRecommendation.Models.AddItemItem(10, TDistanceMode.dmJaccard);
vRecommendation.Models.AddItemItem(10, TDistanceMode.dmPearson);
vRecommendation.Models.AddUserUser(3, 5, amMode, TDistanceMode.dmCosine);
vRecommendation.Models.AddUserUser(3, 5, amWeightedAverage, TDistanceMode.dmCosine);
vRecommendation.Models.AddUserUser(3, 5, amSimpleSum, TDistanceMode.dmCosine);
vRecommendation.Models.AddUserUser(3, 5, amMode, TDistanceMode.dmEuclidean);
vRecommendation.Models.AddUserUser(3, 5, amWeightedAverage, TDistanceMode.dmEuclidean);
vRecommendation.Models.AddUserUser(3, 5, amSimpleSum, TDistanceMode.dmEuclidean);
vRecommendation.RunTestsItemItem('C:\Example\RecItemResultItem.csv', 'C:\Example\RecItemLogItem.txt');
vRecommendation.RunTestsUserUser('c:\Example\RecUserResultUser.csv', 'c:\Example\RecUserLogUser.txt');
end;EXEMPLO DE RETORNO

GUIA DE CLASSES E MÉTODOS
TAIClassificationSelector
constructor Create(aDataset : String; aHasHeader : Boolean = True); : cria o objeto com a base que será usada para treinamento.
aDataSet : caminho do arquivo CSV.
aHasHeader : indica se tem cabeçalho no arquivo.
constructor Create(aDataset : TDataSet); overload; : cria o objeto com a base que será usada para treinamento.
aDataSet : objeto TDataSet que contém os dados que serão usados para treinamento. Veja como deve ser a estrutura aqui.
procedure RunTests(aCsvResultFile, aLogFile : String; aMaxThreads : Integer = 0; aPercDatasetTest : Integer = 25; aRandomDataset : Boolean = True; aCrossValidation : Boolean = True); : realiza um teste com cada modelo.
aCsvResultFile : caminho onde será salvo um arquivo CSV contendo cada método testado, junto dos seus resultados.
aLogFile : caminho do arquivo de log.
aMaxThreads : opcional, máximo de threads que serão utilizadas simultaneamente. Caso for 0, irá usar a quantidade de threads disponíveis no CPU.
aPercDatasetTest : percentual da base de dados que será separada para treinamento.
aRandomDataset : indica se irá escolher aleatóriamente (True) ou se irá pegar as últimas X amostras para teste (False).
aCrossValidation : indica se utiliza validação cruzada. A quantidade de dataset diferentes gerados para teste será "100 / aPercDatasetTest"
property Models : TAIClassificationModels;
TAIClassificationModels
procedure AddKNN(aK : Integer); : adiciona o modelo de classificação KNN na lista de modelos que serão testados.
Parâmetros conforme create do modelo KNN.
procedure AddTree(aDepth: Integer; aSplitCriterion: TSplitCriterion); : adiciona o modelo de classificação Árvore de Decisão na lista de modelos que serão testados.
Parâmetros conforme create do modelo Árvore de decisão.
procedure AddNaiveBayes; : adiciona o modelo de classificação Naive Bayes na lista de modelos que serão testados.
TAIRegressionSelector
constructor Create(aDataset : String; aHasHeader : Boolean = True); : cria o objeto com a base que será usada para treinamento.
aDataSet : caminho do arquivo CSV.
aHasHeader : indica se tem cabeçalho no arquivo.
constructor Create(aDataset : TDataSet); overload; : cria o objeto com a base que será usada para treinamento.
aDataSet : objeto TDataSet que contém os dados que serão usados para treinamento. Veja como deve ser a estrutura aqui.
procedure RunTests(aCsvResultFile, aLogFile : String; aMaxThreads : Integer = 0; aPercDatasetTest : Integer = 25; aRandomDataset : Boolean = True; aCrossValidation : Boolean = True); : realiza um teste com cada modelo.
aCsvResultModels : caminho onde será salvo um arquivo CSV contendo cada método testado, junto aos seus resultados.
aLogFile : caminho do arquivo de log.
aMaxThreads : opcional, máximo de threads que serão utilizadas simultaneamente. Caso for 0, irá usar a quantidade de threads disponíveis no CPU.
aPercDatasetTest : percentual da base de dados que será separada para treinamento.
aRandomDataset : indica se irá escolher aleatóriamente (True) ou se irá pegar as últimas X amostras para teste (False).
aCrossValidation : indica se utiliza validação cruzada. A quantidade de dataset diferentes gerados para teste será "100 / aPercDatasetTest"
property Models : TAIRegressionModels;
TAIRegressionModels
procedure AddKNN(aK : Integer); : adiciona o modelo de regressão KNN na lista de modelos que serão testados.
Parâmetros conforme create do modelo KNN.
procedure AddRidge(aAlfa : Double = 1); : adiciona o modelo de regressão Ridge na lista de modelos que serão testados.
Parâmetros conforme create do modelo Ridge.
procedure AddLinearRegression; : adiciona o modelo de regressão linear na lista de modelos que serão testados.
TAIRecommendationSelector
constructor Create(aDataset : String; aHasHeader : Boolean = True); : cria o objeto com a base que será usada para treinamento.
aDataSet : caminho do arquivo CSV.
aHasHeader : indica se tem cabeçalho no arquivo.
constructor Create(aDataset : TDataSet); overload; : cria o objeto com a base que será usada para treinamento.
aDataSet : objeto TDataSet que contém os dados que serão usados para treinamento. Veja como deve ser a estrutura aqui.
procedure RunTestsItemItem(aCsvResultFile, aLogFile : String; aMaxThreads : Integer = 0); : realiza um teste com cada modelo com base no item.
procedure RunTestsUserUser(aCsvResultFile, aLogFile : String; aMaxThreads : Integer = 0); : realiza um teste com cada modelo com base no usuário.
aCsvResultModels : caminho onde será salvo um arquivo CSV contendo cada método testado, junto aos seus resultados.
aLogFile : caminho do arquivo de log.
aMaxThreads : opcional, máximo de threads que serão utilizadas simultaneamente. Caso for 0, irá usar a quantidade de threads disponíveis no CPU.
aPercDatasetTest : percentual da base de dados que será separada para treinamento.
property Models : TAIRecommendationModels;
TAIRecommendationModels
procedure AddItemItem(aItemsToRecommendCount : Integer; aDistanceMethod : TDistanceMode = dmManhattan); : adiciona o modelo de recomendação por item na lista de modelos que serão testados.
Parâmetros conforme create do modelo de recomendação para item.
procedure AddUserUser(aItemsToRecommendCount, aK : Integer; aAggregMethod : TUserScoreAggregationMethod = amWeightedAverage; aDistanceMethod : TDistanceMode = dmManhattan); : adiciona o modelo de recomendação por usuário na lista de modelos que serão testados.
Parâmetros conforme create do modelo de recomendação para usuário.
Last updated