J'essaie de créer un algorithme de filtrage collaboratif pour suggérer des produits à certains utilisateurs.Système de recommandation (SVD) avec TensorFlow
J'ai commencé sous peu et j'ai commencé à travailler avec TensorFlow (je pensais que c'était suffisamment efficace et flexible). J'ai trouvé ce code qui fait ce qui m'intéresse, crée le modèle et forme les ID utilisateur, les produits et les évaluations: https://github.com/songgc/TF-recomm
J'ai lancé le code et entraîné le modèle. Après l'apprentissage du modèle, je devrais faire les prédictions, c'est-à-dire obtenir des suggestions pour chaque utilisateur afin qu'elles puissent être sauvegardées dans un DB auquel j'accède avec une application NODE.js.
Comment puis-je récupérer cette liste de suggestions pour chaque utilisateur lorsque la formation est terminée?
if __name__ == '__main__':
df_train, df_test=get_data()
svd(df_train, df_test)
print("Done!")
Ok parfait. J'ai une erreur sur embedding_lookup quand j'utilise mes données de DB ayant un id alphanumérique au lieu d'un int32, l'erreur est: "TypeError: La valeur passée au paramètre 'indices' a la chaîne de DataType pas dans la liste des valeurs autorisées: int32, int64". Comment puis-je le réparer? –
Pouvez-vous me dire quelle ligne est l'erreur? Et qu'est-ce que les 'données DB'? Dans embedding_lookup, quelle est l'entrée que vous modifiez en provoquant cette erreur? –
L'une des lignes qui provoque l'erreur: "embd_user = tf.nn.embedding_lookup (w_user, user_batch, name =" embedding_user ")". Cela est dû au fait que les ID qui se chargent à partir de ma base de données sont alphanumériques et non int32: https://www.dropbox.com/s/9s4vxsciue3mu38/Schermata%202017-07-08%20alle%2010.32.48.png?dl=0 . Ensuite, le lot utilisateur a le type tf.string: "user_batch = tf.placeholder (tf.string, shape = [Aucun], name =" id_user ")" –