Recommendation
Recommendation systems with Collaborative Filtering help suggest relevant items by analyzing the behavior of different users or similar items. There are two main approaches: user-user and item-item.
For example, imagine you liked a movie on a streaming platform. With the user-user method, the system looks for people with similar tastes to yours and suggests movies they enjoyed. On the other hand, with the item-item method, it may suggest a movie based on what you just watched.
These methods work like an "invisible network of friends," helping you discover new things that perfectly match your interests as a user.
Currently, only the Collaborative Filtering model is available, but other models will be developed soon.
EXAMPLE OF USE
CLASSES AND METHODS GUIDE
TRecommender:
FDataset : TAIDatasetClassification; : access the current database contained in the model.
procedure ClearDataset; : cleans the dataset.
constructor Create(aMatrixFile : String; aItemsToRecommendCount, aK : Integer; aAggregMethod : TUserScoreAggregationMethod = amWeightedAverage; aDistanceMethod : TDistanceMode = dmCosine; aCalculateItemDistanceOnCreate : Boolean = False; aHasHeader : Boolean = True); or
constructor Create(aMatrix: TDataSet; aItemsToRecommendCount, aK : Integer; aAggregMethod : TUserScoreAggregationMethod = amWeightedAverage; aDistanceMethod : TDistanceMode = dmCosine; aCalculateItemDistanceOnCreate : Boolean = False); : creates the object with the dataset that will be used for training.
aMatrixFile : CSV file path.
aMatrix : TDataSet object that contains the data that will be used for training. See what the structure should look like here.
aItemsToRecommendCount : maximum amount of items that will be recommended.
aAggregMethod : users' aggregation method:
amMode : refers to the most frequent value in a dataset.
amWeightedAverage : average calculated by assigning different weights to each value in the dataset, based on its importance.
amSimpleSum : sum of all values in the dataset, without applying any weights or additional factors.
aDistanceMethod :
dmManhattan : measures the distance between two points by summing the absolute differences in each dimension, as if traveling along straight lines on a grid.
dmEuclidean : calculates the straight-line distance between two points in space, being the square root of the sum of the squares of the differences between the coordinates.
dmCosine : measures the similarity between two vectors based on the cosine of the angle between them, focusing on the direction, not the magnitude.
dmJaccard : evaluates the similarity between sets by dividing the size of the intersection by the size of the union of the sets.
dmPearson : measures the linear correlation between two variables, evaluating the strength and direction of the relationship between them.
aCalculateItemDistanceOnCreate : defines if the item distance matrix will be calculated at creation time, used only for item-based recommendation. If not calculated at creation, it will be computed during the first item prediction.
aHasHeader : indicates whether the file has a header.
function RecommendFromItem(aItemID: Integer): TArray; : recommends X items based on a given registered item.
function RecommendFromItem(aItemInfo: TArray; aIDSearch : Integer = -1): TArray; : recommends X items based on the data of an item that is not in the dataset.
function RecommendFromUser(aUserID: Integer): TArray; : recommends X items based on a given registered user.
function RecommendFromUser(aUserInfo: TArray; aIDSearch : Integer = -1): TArray; : recommends X items based on the data of a user who is not in the dataset.
Last updated