2015-12-07 1 views
0

La sortie de Mahout (0.11.1) étincelle itemsimilarity ressemble:
3705021559 3705021558:241.35418715327978 3705021546:163.6168323904276
Par ma compréhension, son format est:
(item)tab(item1:score)tab(item2:score), Item1, item2, itemx ... sont des indicateurs.

Ma question est comment utiliser les indicateurs?

Dans certains exemples comme
https://www.mapr.com/products/mapr-sandbox-hadoop/tutorials/recommender-tutorial et https://www.mapr.com/blog/mahout-spark-whats-new-recommenders%E2%80%94part-2,
nous indexons les indicateurs, et nous obtenons la recommandation par requête le champ indicateur, nous obtenons la recommandation. Pour moi, cela ressemble à ceci: nous formons une liste de ce que les gens ont acheté comme liste d'indicateurs, et nous interrogeons Elasticsearch/Solr avec la liste des indicateurs, et nous obtenons les éléments recommandés (similaires). Dans cette approche, nous interrogeons le champ indicateur pour obtenir des éléments similaires. Pourquoi n'est-ce pas simplement: si nous savons ce que les gens ont acheté en tant que liste, et nous interrogeons le champ ID pour obtenir les indicateurs comme résultat. En d'autres termes, la sortie que nous avons obtenue de spark-itemsimilarity nous a déjà dit quels articles (indicateurs) sont similaires à un article? Peut-être que j'ai mal compris la signification des indicateurs, quelqu'un s'il vous plaît veuillez clarifier ma question?La sortie d'étincelles itemsimilarity Mahout et ses indicateurs

Répondre

0

3705021559 3705021558:241.35418715327978 3705021546:163.6168323904276 est exactement le format (item)tab(item1:score)tab(item2:score)

Le premier élément est l'élément comparé à tout le reste. Donc, cela signifie que par rapport à 3705021559, 3705021558 a un rapport Log-vraisemblance de 241.35418715327978 et ainsi de suite.

La sortie correspond à votre saisie. Si 3705021558 n'est pas un ID d'élément, vous avez peut-être spécifié l'emplacement de l'élément dans l'entrée. Exécutez spark-elementsimilarity sans params pour obtenir une sortie d'aide. vous pouvez spécifier où dans l'entrée TSV votre ID d'élément est, où l'ID d'utilisateur et où votre nom d'indicateur est.

BTW si vous envisagez d'utiliser ceci dans un recommandeur, essayez le recommandeur universel, qui a la capture d'événement et un serveur de recommandation tous intégrés. http://templates.prediction.io/PredictionIO/template-scala-parallel-universal-recommendation

+0

Une autre question, dire la vente est client qui achète l'histoire, le format serait 'customer_id1, sku_id1, customer_id2, sku_id2, customer_id3, sku_id3, customer_id2, sku_id2,' (s'il vous plaît penser '' comme nouvelle ligne). Dois-je supprimer la ligne dupliquée comme 'customer_id2, sku_id2', ou juste le laisser? –