Recomendação
Os sistemas de recomendação com Collaborative Filtering (Filtragem Colaborativa) ajudam a sugerir itens relevantes analisando o comportamento de diferentes usuários ou itens similares. Existem duas abordagens principais: user-user e item-item.
Por exemplo, imagine que você gostou de um filme em uma plataforma de streaming. Com o método user-user, o sistema procura pessoas com gostos parecidos com os seus e sugere filmes que elas gostaram. Já no método item-item, ele pode sugerir um filme com base no que você acabou de assistir.
Esses métodos funcionam como uma espécie de "rede de amigos invisível", ajudando você a descobrir coisas novas que têm tudo a ver com o usuário.
Atualmente, apenas o modelo Collaborative Filtering está disponível, outros modelos serão desenvolvidos em breve.
EXEMPLO DE USO
GUIA DE CLASSES E MÉTODOS
TRecommender:
FDataset : TAIDatasetClassification; : acessa a base de dados atual contido no modelo.
procedure ClearDataset; : limpa o dataset.
constructor Create(aMatrixFile : String; aItemsToRecommendCount, aK : Integer; aAggregMethod : TUserScoreAggregationMethod = amWeightedAverage; aDistanceMethod : TDistanceMode = dmCosine; aCalculateItemDistanceOnCreate : Boolean = False; aHasHeader : Boolean = True); ou
constructor Create(aMatrix: TDataSet; aItemsToRecommendCount, aK : Integer; aAggregMethod : TUserScoreAggregationMethod = amWeightedAverage; aDistanceMethod : TDistanceMode = dmCosine; aCalculateItemDistanceOnCreate : Boolean = False); : cria o objeto com a base que será usada para treinamento.
aMatrixFile : caminho do arquivo CSV.
aMatrix : objeto TDataSet que contém os dados que serão usados para treinamento. Veja como deve ser a estrutura aqui.
aItemsToRecommendCount : quantidade máxima de itens que serão recomendados.
aAggregMethod : método de agregação dos usuários:
amMode : refere-se ao valor mais frequente em um conjunto de dados;
amWeightedAverage : média calculada atribuindo pesos diferentes a cada valor no conjunto de dados, de acordo com sua importância;
amSimpleSum : soma de todos os valores do conjunto de dados, sem aplicar nenhum peso ou fator adicional.
aDistanceMethod :
dmManhattan : mede a distância entre dois pontos, somando as diferenças absolutas em cada dimensão, como se fosse percorrida em linhas retas ao longo de uma grade;
dmEuclidean : calcula a distância em linha reta entre dois pontos no espaço, sendo a raiz quadrada da soma dos quadrados das diferenças entre as coordenadas;
dmCosine : mede a similaridade entre dois vetores com base no cosseno do ângulo entre eles, focando na direção, não na magnitude;
dmJaccard : avalia a similaridade entre conjuntos dividindo o tamanho da interseção pelo tamanho da união dos conjuntos;
dmPearson : mede a correlação linear entre duas variáveis, avaliando a força e a direção da relação entre elas.
aCalculateItemDistanceOnCreate : define se será calculada a matriz de distância do item na hora criação, utilizada apenas para recomendação por item. Caso não seja calculada na criação, será calculada na primeira predição por item.
aHasHeader : indica se tem cabeçalho no arquivo.
function RecommendFromItem(aItemID: Integer): TArray; : recomenda X itens a partir de um certo item cadastrado.
function RecommendFromItem(aItemInfo: TArray; aIDSearch : Integer = -1): TArray; : recomenda X itens a partir dos dados de um item que não esta no dataset.
function RecommendFromUser(aUserID: Integer): TArray; : recomenda X itens a partir de um certo usuário cadastrado.
function RecommendFromUser(aUserInfo: TArray; aIDSearch : Integer = -1): TArray; : recomenda X itens a partir dos dados de um usuário que não esta no dataset.
Last updated