Amazon a "les clients qui ont acheté cet article aussi acheté". P>
Je me demande et je veux ajouter ceci à mon panier que j'ai fait. p>
Quels champs ai-je besoin dans une base de données? Tout site Web, blog ou ressources pour cela? P>
Pouvez-vous suggérer le mécanisme comment je devrais le code s'il vous plaît? p>
7 Réponses :
Vous avez besoin d'une histoire de commandes afin que vous puissiez vérifier d'autres articles achetés avec l'utilisateur de l'article visualisent actuellement. P>
Vous n'avez probablement pas besoin de nouveaux champs dans votre base de données - gardez simplement une histoire de vos commandes. Ensuite, lorsque vous voulez trouver votre liste de ce que les autres personnes ont acheté: p>
Des systèmes simples à base de comptage font généralement des moteurs de recommandation assez faibles. C'est vraiment un problème de statistiques / miniers de données.
@RicknZ Les comptes simples sont des estimateurs robustes. Compliqué ≢ meilleur. @NICKF @Alix Axel Vous pouvez incorporer des intersections et couper les 25% pertinents les moins pertinents et améliorer le nombre.
À l'étape 2, je ne compterais que les articles qui ont été commandés à la même heure que X ou leur donnent un poids plus élevé.
voici Quelques questions similaires : p>
Ce n'est pas trop délicat. Supposons que vous avez les tables suivantes:
Pour trouver les produits que vous recherchez, vous devez trouver l'ensemble de clients qui ont acheté cet ID de produit particulier: P>
SELECT ProductID FROM (Customers INNER JOIN (Orders INNER JOIN OrderItems)) WHERE (Customer = <given customer ID>) AND (ProductID <> <your product id>)
Vous avez besoin "Programmation de l'intelligence collective" . Ils ont de bons chapitres sur les recommandations et tels. Vous voudrez lire sur les différences de Pearson et d'autres mesures. P>
Regardez sur Algorithmes de la bande intelligente , chapitre 3" Création de suggestions et de recommandations ". Pour votre question: éventuellement, vous pourriez avoir besoin d'une table avec des évaluations des utilisateurs pour différents articles. Sur la base de ces notations, vous serez en mesure de mesurer la similitude entre deux clients, puis effectuer une estimation basée sur ces valeurs sur les articles dont l'un des clients est sur le point de réaliser. Ces estimations sont utilisées pour classer les éléments. p>
Aussi, consultez le APIORI ALGORITHM A> Chapitre 4 ou une description générale de celui-ci ici ; Cela fonctionne pour les articles achetés ensemble et extraire des règles d'associations. Sur la base de ces règles, vous détecterez lequel des articles que vous vendez peut être ajouté au panier du client. Pour votre question: aucun champ supplémentaire ne doit être ajouté à votre base de données; Vous devez maintenir uniquement une table pour collecter des articles achetés ensemble (Contenu de paniers de marché). p>
select `A`.`ORDER_NO`, `A`.`SKU`, `B`.`SKU` `REL_SKU` from `order_detail` `A` inner join (select DISTINCT `ORDER_NO`, `SKU` from `order_detail`) `B` on `B`.`ORDER_NO` = `A`.`ORDER_NO` WHERE `B`.`SKU` = 'XXXXXXXX' AND `A`.`SKU` <> 'XXXXXXXX' This works for me. of course add in any filters in the where clause as appropriate such as order status etc...