1. UserBased Recommendation Engine
-PearsonCorrelationSimilarity
-LogLikelihoodSimilarity
-TanimotoCoefficientSimilarity
-EuclideanDistanceSimilarity
-GenericUserSimilarity
-SpearmanCorrelationSimilarity
2. ItemBased Recommendation Engine
-PearsonCorrelationSimilarity
-LogLikelihoodSimilarity
-TanimotoCoefficientSimilarity
-EuclideanDistanceSimilarity
Evaluated the results with RMSE, F1, Precision and Recall
Endpoint 1:[GET] /getItemBasedRecommendations
eg:
http://localhost:8090/getItemBasedRecommendations?userId=200&numberOfRecommendation=6
output:
[{"itemID":1,"value":3.5782933},
{"itemID":19,"value":3.5644608},
{"itemID":13,"value":3.5610337},
{"itemID":4,"value":3.5541322},
{"itemID":17,"value":3.5536952},
{"itemID":18,"value":3.5515275}]
Endpoint 2:[GET] /getUserBasedRecommendations
eg:
http://localhost:8090/getUserBasedRecommendations?userId=200&numberOfRecommendation=6
output:
[{"itemID":1,"value":3.8856046},
{"itemID":19,"value":3.7924228},
{"itemID":13,"value":3.5575802},
{"itemID":18,"value":3.2640123},
{"itemID":17,"value":3.2016375},
{"itemID":4,"value":3.1363637}]
Endpoint 3: [POST] /updateUserData
eg:
http://localhost:8090/updateUserData body: {"userId": "200","itemId": "9","ratings": "5"}
1. Postgrace for loading data
2. Apache.Mahout for recommendations
3. Java Spring Boot for REST api
The spring application is running on port 8090 by default.