كيفية الحصول على تفضيلات المستخدم في نموذج بيانات mahout

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

سؤال

أحاول تجربة mahout وأتساءل عن نموذج بيانات الإدخال

للنسخة غير الموزعة

يجب أن يتبع نموذج بيانات الملف ما يلي:userId ، itemId ، userPreference المشكلة هل لا أملك قيم تفضيلات المستخدم هذه ، يجب أن تتمثل في أن يكون لها أي طريقة للقيام بذلك؟

لقد وجدت مقالا http://www.codeproject.com/Articles/620717/Building-A-Recommendation-Engine-Machine-Learningيبدو أن المؤلف لم يكن لديه حقًا قيم تفضيلات المستخدم، لكنه استخدمها org.apache.mahout.cf.taste.hadoop.item.RecommenderJob -s SIMILARITY_COOCCURRENCE للحساب من {userId ، QuestionId} من ما يمكنني قوله ، يبدو أن Mahout يحسب قيم perference من البيانات ثم حساب التوصية ، هل أنا تصحح في هذه الحالة؟

هل كانت مفيدة؟

المحلول

إذا لم تكن لديك قيم تفضيلات المستخدم، فربما لا تحتاج إليها.يقدم Mahout تطبيقًا للتوصية بالعناصر للمستخدمين دون وجود قيم تفضيلية.هذا يسمي التفضيلات المنطقية. في الأساس، أنت تعرف أن بعض المستخدمين يحبون بعض العناصر، لكنك لا تعرف مقدار إعجابهم بها.في بعض الأحيان يكون هذا جيدًا.

فيما يلي نموذج للتعليمات البرمجية لكيفية القيام بذلك.في الأساس، يختلف السطر الأول فقط، حيث تخبر أن نموذج البيانات الخاص بك من النوع BooleanPrefDataModel.ثم باستخدام البيانات المنطقية، يمكنك استخدام نوعين من مقاييس التشابه:سجل التشابه, TanimotoCoefficientSimilarity.يمكن استخدام كلاهما لحساب التوصيات المستندة إلى المستخدم والقائمة على العناصر.

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 إمكانية تنفيذ قيم تفضيلات الحوسبة.

نصائح أخرى

يمكنك تحديد قيمة التفضيل لنموذج البيانات الخاص بك (لكن ذلك يعتمد على نموذج البيانات الخاص بك).على سبيل المثال، عناصر نموذج البيانات الخاصة بك هي مسارات يستمع إليها المستخدمون.يمكن تحديد قيمة التفضيلات بحيث يستمع المستخدم 1 إلى المسارA x مرات.وبالتالي، يجب تحديد قيمة التفضيلات لنموذج البيانات لكل زوج فريد من نوعه من معرف المستخدم والعنصر.

مثال لنموذج البيانات:

معرف المستخدم، itemid، التفضيلات

1،1،3 - 1،2،5 - ....- 5،1،2 ...قريباً.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top