0

J'ai des commentaires implicites de la part des utilisateurs sur leur interaction avec différents produits. Voici la structure de l'ensemble de données: user_id, product_category, event_date, view_count, purchase_countRecommandation basée sur une rétroaction implicite - Spark Mlib

En fonction de ces données, j'essaie de prédire un score pour l'affinité d'un utilisateur avec une catégorie de produit. La forme implicite MLIB attend l'ensemble de données en entrée du format Classification (utilisateur: Int, produit: Int, classement: Double). Mais comment puis-je inclure view_count et purchase_count?

Si MLLIB ne peut pas être utilisé, il existe une autre méthode que je peux utiliser. Mes catégories de produits sont limitées (seulement 8 catégories de produits). Dans ce cas, puis-je utiliser 8 modèles de régression logistique pour prédire l'affinité?

Merci

Répondre

4

Qu'est-ce que vous décrivez est appelé multinomial logistic regression qui est utilisé pour multiclass classification. Ceci est une généralisation de la logistic regression typique qui a seulement 2 résultats (binaire).

Il semble que vous essayiez d'appliquer un modèle collaborative filtering qui ne fonctionnera pas dans ce cas comme vous l'avez indiqué. Consultez les documents Spark ML/MLlib pour multinomial logistic regression.

Vous traiteriez chacune des entrées (view_count et purchase_count) comme des entités distinctes (données d'entrée) pour former le modèle à l'aide de données existantes connues, y compris les résultats. Lorsque vous notez/prédisez de nouvelles données, le modèle renvoie une probabilité pour chacun des résultats possibles: 8, dans ce cas ... 1 pour chacune des catégories de produits. Choisissez ensuite la catégorie avec la plus haute probabilité.

Voici quelques liens de documentation Spark pertinents:

Programmation de régression logistique Spark Guide

http://spark.apache.org/docs/latest/mllib-linear-methods.html#logistic-regression

spark.mllib actuelle logistique API régression

http://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.mllib.classification.LogisticRegressionModel

http://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.mllib.evaluation.MulticlassMetrics

Nouvelle spark.ml API régression logistique

(Note: ce ne supporte que la régression binaire, logistique en ce moment, mais vous devez migrer vers quand il est disponible)

http://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.ml.classification.LogisticRegression

Etes-vous en train d'essayer de prédire le score d'affinité? O

http://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.ml.evaluation.MulticlassClassificationEvaluator

+0

merci pour la réponse. Un défi lié à l'utilisation d'un modèle de régression logistique unique est le résultat qui n'est pas mutuellement exclusif.Par exemple, laissez la variable dépendante est définie comme des achats de catégories de produits dans les 7 prochains jours et le client aurait effectué des achats dans plusieurs catégories. Y a-t-il une approche que je peux utiliser dans ce cas? Merci – Naveenan

0

r aller de l'avant avec la recommandation basée sur l'affinité? Par exemple, vous pourriez avoir un ratio d'achat à visiter, conservez-le comme note (cote d'affinité ici) et effectuez la recommandation

+0

J'essaie de prédire le score d'affinité pour chaque catégorie de produit. Je n'ai pas besoin des recommandations maintenant. – Naveenan