Мне нужно сделать систему рекомендаций, используя mahout. Мои данные содержат следующие фрагменты данных:
- userID -> числовой идентификатор пользователя
- foodID -> Содержит числовой идентификатор продукта (например, идентификатор кетчупа равен 88)
- rating -> Rating Пользователь дал элемент от 1 до 5
- brandID -> Числовой идентификатор бренда foodID (например, Heinz может быть id 4)
Используя код ниже:
UserBasedRecommender recommender;
int userId = 5;
try {
File file = new File(getClass().getResource("databaseFILE.csv").getFile());
DataModel dataModel = new FileDataModel(file);
UserSimilarity userSimilarity = new PearsonCorrelationSimilarity(dataModel);
UserNeighborhood userNeighborhood = new ThresholdUserNeighborhood(0.1, userSimilarity, dataModel);
recommender = new GenericUserBasedRecommender(dataModel, userNeighborhood, userSimilarity);
List<RecommendedItem> recommendations = recommender.recommend(userId, 5);
for (RecommendedItem recommendation : recommendations) {
System.out.println(recommendation);
}
} catch (IOException e) {
throw new RuntimeException(e.getMessage(), e);
} catch (TasteException e) {
throw new RuntimeException(e.getMessage(), e);
}
Это дает вывод для itemID и его соответствующее значение, однако я не получаю результата для brandID. Я не уверен, как бы я изменил это, чтобы brandID также мог быть включен в структуру данных.
Спасибо за любую помощь:)