Как получить пользовательские предпочтения в Mahout Datamodel

StackOverflow https://stackoverflow.com//questions/22016211

Вопрос

Я пробую Mahout и задаваясь вопросом о входном Datamodel

для не распределенной версии

Файл datamodel должен следовать: usid, itemid, usermeference Проблема в том, что у меня нет этих ценностей пользовательских предпочтений, приходится прекомить его У Mahout есть какой-либо метод, чтобы сделать это?

Я нашел статью http:// www.CodeProject.com/articles/620717/building-a-recommendation-engine-machine-learning . Автор, похоже, на самом деле не имел ценностей развевающихся пользователей, но он использовал org.apache.mahout.cf.taste.hadoop.item.RecommenderJob -s SIMILARITY_COOCCURRENCE вычислить от {userid, quessis} Из того, что я могу сказать, Mahout кажется вычислительным вычислять значения из данных, а затем вычислите рекомендацию, я правильно в этом случае?

Это было полезно?

Решение

Если у вас нет значений пользовательских предпочтений, возможно, вам не нужны.Mahout предлагает реализацию для рекомендации предметов для пользователей без значений предпочтений.Это называется логическими параметрами. в основном вы просто знаете, что некоторым пользователю нравится какой-то товар, но вы не знаете, сколько.Иногда это нормально.

below - это пример кода, как это можно сделать.По сути, только первая строка отличается, где вы говорите, что ваша модель данных имеет тип GeneracodicCode.Затем с логическими данными вы можете использовать два типа сходства мер: loglikelioodsimility, BooleanPrefDataModel.Оба могут быть использованы для вычисления пользовательских рекомендаций на основе пользователей.

DataModel model = new GenericBooleanPrefDataModel( GenericBooleanPrefDataModel.toDataMap( new FileDataModel(new File("FILE_NAME"))));

UserSimilarity similarity = new LogLikelihoodSimilarity(model);
UserNeighborhood neighborhood = new NearestNUserNeighborhood(10, similarity, model);
Reecommender recommender =  new GenericUserBasedRecommender(model, neighborhood, similarity);

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

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

Другой альтернативой состоит в том, чтобы вычислить значения предпочтений за пределами Mahout и подайте модель данных в некоторых других алгоритмах на основе пользователей.Но, насколько я знаю, Mahout не предлагает реализации для вычисления значений предпочтения.

Другие советы

Вы можете определить значение предпочтения для вашей модели данных (но это зависит от модели данных).Например, ваши элементы модели данных являются треками, которые пользователи прослушивают.Значение предпочтений можно определить, что user1 прослушивает Tracka X раз.Таким образом, значение предпочтений для модели данных должна быть определена для каждой уникальной пары UserID-itemid.

Пример модели данных:

usid, itemid, предпочтения

1,1,3 - 1,2,5 - .... - 5,1,2 ... так далее.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top