Maison > base de données > tutoriel mysql > Parlons de la façon d'utiliser MySQL pour implémenter rapidement un algorithme de recommandation

Parlons de la façon d'utiliser MySQL pour implémenter rapidement un algorithme de recommandation

藏色散人
Libérer: 2023-01-07 19:41:53
avant
1788 Les gens l'ont consulté

Cet article vous apporte des connaissances pertinentes sur MySQL. Il présente principalement ce qu'est un algorithme de recommandation, quels problèmes cet algorithme peut nous aider à résoudre et comment utiliser MySQL pour implémenter un algorithme de recommandation simple : jetons un coup d'œil, j'espère. ça aide tout le monde.

Parlons de la façon d'utiliser MySQL pour implémenter rapidement un algorithme de recommandation

Utilisez MySQL pour implémenter un algorithme de recommandation simple

L'algorithme de recommandation est une technologie souvent rencontrée. En gros, le problème résolu est le suivant : si vous aimez le livre A, alors vous aimerez probablement le livre B.

Dans cet article, nous utilisons MySQL et démontons et implémentons un algorithme de recommandation simple basé sur des statistiques de données.

Tout d'abord, créez un tableau de données des livres que l'utilisateur aime, qui représente user_id aime book_id.

CREATE TABLE user_likes (
    user_id INT NOT NULL,
    book_id VARCHAR(10) NOT NULL,
    PRIMARY KEY (user_id,book_id),
    UNIQUE KEY book_id (book_id, user_id)
);
CREATE TABLE user_likes_similar (
    user_id INT NOT NULL,
    liked_user_id INT NOT NULL,
    rank INT NOT NULL,
    KEY book_id (user_id, liked_user_id)
);
Copier après la connexion

Insérez 4 données de test

INSERT INTO user_likes VALUES (1, 'A'), (1, 'B'), (1, 'C');
INSERT INTO user_likes VALUES (2, 'A'), (2, 'B'), (2, 'C'), (2,'D');
INSERT INTO user_likes VALUES (3, 'X'), (3, 'Y'), (3, 'C'), (3,'Z');
INSERT INTO user_likes VALUES (4, 'W'), (4, 'Q'), (4, 'C'), (4,'Z');
Copier après la connexion

La signification est la suivante : l'utilisateur 1 aime A, B, C, l'utilisateur 2 aime A, B, C, D, l'utilisateur 3 aime X, Y, C, Z, l'utilisateur 4 aime W, Q, C, Z.

En prenant l'utilisateur 1 comme exemple pour calculer les livres recommandés, nous devons calculer la similarité entre l'utilisateur 1 et les autres utilisateurs, puis les trier en fonction de la similarité.

Effacez le tableau de données de similarité

DELETE FROM user_likes_similar WHERE user_id = 1;
Copier après la connexion

Calculez le tableau de données de similarité utilisateur

INSERT INTO user_likes_similar
SELECT 1 AS user_id, similar.user_id AS liked_user_id, COUNT(*) AS rank
    FROM user_likes target
    JOIN user_likes similar ON target.book_id= similar.book_id AND target.user_id != similar.user_id
    WHERE target.user_id = 1
    GROUP BY similar.user_id ;
Copier après la connexion

Vous pouvez voir que le résultat de similarité trouvé est

user_id, liked_user_id, rank
1, 2, 2
1, 3, 1
1, 4, 1
Copier après la connexion

Triez ensuite en fonction de la similarité et prenez le top 10, qui sont les livres recommandés.

SELECT similar.book_id, SUM(user_likes_similar.rank) AS total_rank
    FROM user_likes_similar
    JOIN user_likes similar ON user_likes_similar.liked_user_id = similar.user_id
    LEFT JOIN user_likes target ON target.user_id = 1 AND target.book_id = similar.book_id
    WHERE user_likes_similar.user_id = 1 AND target.book_id IS NULL
    GROUP BY similar.book_id
    ORDER BY total_rank desc
    LIMIT 10;
Copier après la connexion

【Apprentissage recommandé : tutoriel vidéo mysql

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:learnku.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal