Mahout Рекомендатор не работает должным образом - PullRequest
1 голос
/ 27 августа 2011

Я работаю над Mahout и обнаружил проблему, когда пытался изменить свой CSV, ранее он давал мне правильные рекомендации.

Пример кода:

model = new FileDataModel(new File("E:\\WriteTest.csv"));
UserSimilarity similarity = new PearsonCorrelationSimilarity(model);
UserNeighborhood neighborhood = new NearestNUserNeighborhood(2,similarity,model);   
Recommender recomender = new  GenericUserBasedRecommender(model,neighborhood, similarity);

List<RecommendedItem> recommendations = recomender.recommend(1,1);

for(RecommendedItem recommendation: recommendations){
    System.out.println(recommendation);
}

Я только что обновил значения моего CSV, и он перестал давать мне подсказки.

CSV, который не дает мне никакого результата:

1,13,9.9
1,26,9.0
1,40,4.0
2,83,9.9
2,167,9.0
2,250,4.0
3,91,9.9
3,167,9.0
3,274,4.0
4,91,9.9
4,167,2.0

CSV, который дает мне результат:

1,101,5.0
1,102,3.0
1,103,3.0

2,101,5.0
2,102,2.5
2,103,3.0
2,104,2.1

3,101,5.0
3,102,2.5
3,105,4.0
3,107,5.0

4,102,2.0
4,104,4.0
4,105,2.5
4,106,3.0
4,107,2.6

5,101,5.0
5,102,3.4
5,104,2.5
5,105,2.5
5,106,1.0

Вывод на консоль соответственно:

Результат из 1-го набора данных 27 августа 2011 г. 2:45:06 org.slf4j.impl.JCLLoggerAdapter info INFO: Создание FileDataModel дляfile WriteTest.csv 27 августа 2011 г. 2:45:06 org.slf4j.impl.JCLLoggerAdapter info INFO: чтение информации о файле ... Aug 27, 2011 2:45:06 org.slf4j.impl.JCLLoggerAdapter info INFO:Readlines: 11 августа 27, 2011 2:45:06 org.slf4j.impl.JCLLoggerAdapter info ИНФОРМАЦИЯ: Обработано 4 пользователей

Я ожидал, что пункт № 167, но я не нашел никакой рекомендации

Вывод 2-го набора данных:

Aug 27, 2011 2:52:42 AM org.slf4j.impl.JCLLoggerAdapter info
INFO: Creating FileDataModel for file WriteTest.csv
Aug 27, 2011 2:52:42 AM org.slf4j.impl.JCLLoggerAdapter info
INFO: Reading file info...
Aug 27, 2011 2:52:42 AM org.slf4j.impl.JCLLoggerAdapter info
INFO: Read lines: 21
Aug 27, 2011 2:52:42 AM org.slf4j.impl.JCLLoggerAdapter info
INFO: Processed 5 users
RecommendedItem[item:105, value:3.25]

1 Ответ

2 голосов
/ 27 августа 2011

Рекомендатель работает правильно. Проблема в том, что ваши данные слишком скудны. Он не может найти сходства, которое связывало бы двух пользователей, поэтому рекомендуется 167. Попробуйте более реалистичный набор данных, и я думаю, что поведение будет выглядеть менее удивительно.

...