Heim >Backend-Entwicklung >Python-Tutorial >Empfehlungssystem in Python
Ein Empfehlungssystem ist ein Tool in Python, das Benutzern Elemente oder Inhalte basierend auf ihren Vorlieben und ihrem bisherigen Verhalten empfiehlt. Die Technologie verwendet Algorithmen, um die zukünftigen Präferenzen der Benutzer vorherzusagen und ihnen die relevantesten Inhalte bereitzustellen.
Der Anwendungsbereich dieses Systems ist sehr breit und es wird häufig in verschiedenen Branchen wie E-Commerce, Streaming-Diensten und sozialen Medien eingesetzt. Über diese Systeme können Produkte, Filme, Musik, Bücher usw. empfohlen werden. Die Bereitstellung personalisierter Empfehlungen trägt nicht nur zur Steigerung der Kundenbindung und -treue bei, sondern kann auch den Umsatz steigern.
Die Idee hinter diesen Vorgängen besteht darin, dass Benutzer Empfehlungen erhalten können, die mit Artikeln vergleichbar sind, denen sie zuvor ausgesetzt waren. Dieses System verwendet Algorithmen, um Elemente zu identifizieren, die den Präferenzen eines Benutzers sehr ähnlich sind, mit dem Ziel, eine Liste mit Vorschlägen zu erstellen, die für den Benutzer geeignet sind. In dieser Einstellung analysiert ein Algorithmus Daten zu einem Artikel, wie z. B. seine Qualität und Benutzerbewertungen, um zu bestimmen, welche Empfehlungen abgegeben werden sollen.
Schritt 1 − Erforderliche Bibliotheken importieren
Schritt 2 – Datensatz laden
Schritt 3 – Daten vorverarbeiten
Schritt 4 – Ähnlichkeitsmatrix berechnen
Schritt 5 − Für jeden Benutzer −
Wählen Sie Elemente aus, mit denen sie interagiert haben
Für jedes in Schritt 5a -
ausgewählte ElementÄhnlichkeitswerte für alle anderen Elemente abrufen
Berechnen Sie einen gewichteten Durchschnitt der Ähnlichkeitswerte, indem Sie die Bewertungen des Benutzers als Gewichte verwenden
Sortieren Sie Elemente in absteigender Reihenfolge basierend auf gewichteten Ähnlichkeitswerten
Empfehlen Sie Benutzern die Top-N-Artikel
Schritt 6 – Empfehlungen aller Benutzer zurückgeben.
import pandas as pd from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.metrics.pairwise import cosine_similarity # Load data data = pd.read_csv('movies.csv') # Compute TF-IDF vectors for each movie tfidf = TfidfVectorizer(stop_words='english') tfidf_matrix = tfidf.fit_transform(data['description']) # Compute cosine similarity between all movies cosine_sim = cosine_similarity(tfidf_matrix, tfidf_matrix) # Function to get top 10 similar movies based on input movie def get_recommendations(title): idx = data[data['title'] == title].index[0] sim_scores = list(enumerate(cosine_sim[idx])) sim_scores = sorted(sim_scores, key=lambda x: x[1], reverse=True) sim_scores = sim_scores[1:11] movie_indices = [i[0] for i in sim_scores] return data.iloc[movie_indices] # Example usage: get top 10 movies similar to 'The Godfather' get_recommendations('The Godfather')
Wir laden die Filmdaten aus einer lokalen CSV-Datei in einen Datenrahmen. Wir konvertieren die Filmbeschreibung mithilfe der Funktion fit_transform() in eine Matrix und berechnen die Kosinus-Ähnlichkeitsmatrix.
Dann definieren wir eine Funktion, die einen Filmtitel als Parameter verwendet und den Index des Filmtitels im Datenrahmen abruft, falls vorhanden.
Wir erstellen dann eine Liste von Tupeln, die die Ähnlichkeitswerte zwischen dem übergebenen Filmtitel und allen anderen Filmtiteln enthält. Jedes Tupel besteht aus einem Index und einem Ähnlichkeitswert. Anschließend zeigen wir die Liste der Filmtitel an, indem wir den Datenrahmen indizieren.
title \ 783 The Godfather 1512 The Godfather: Part II 1103 Casino 3509 Things to Do in Denver When 1246 Snatch 3094 Road to Perdition 2494 Scarface 1244 Following 2164 Dancer 2445 The Day of the Jackal
Stattdessen verlassen sich diese auf die Daten anderer Benutzer, um Empfehlungen zu generieren. Ein solches System vergleicht die Vorlieben und Verhaltensweisen verschiedener Benutzer und schlägt dann Artikel vor, die anderen Benutzern mit ähnlichen Vorlieben gefallen könnten. Kollaboratives Filtern ist im Allgemeinen genauer als inhaltsbasierte Systeme, da es bei der Generierung von Empfehlungen die Meinungen vieler Benutzer berücksichtigt.
Schritt 1 − Erforderliche Bibliotheken importieren.
Schritt 2 – Laden Sie die Datei „ratings.csv“, die Benutzerbewertungen bereitstellt.
Schritt 3 – Erstellen Sie „user_item_matrix“, um Benutzerbewertungsdaten in eine Matrix umzuwandeln
Schritt 4 – Berechnen Sie die Ähnlichkeit von Benutzerbewertungen mithilfe der Kosinusähnlichkeit.
Schritt 5 – Identifizieren Sie ähnliche Benutzer
Schritt 6 – Berechnen Sie die durchschnittliche Bewertung.
Schritt 7 – Wählen Sie die Zielbenutzer-ID aus.
Schritt 8 – Film-ID und Bewertung drucken.
import pandas as pd from sklearn.metrics.pairwise import cosine_similarity # Load data ratings_data = pd.read_csv('ratings.csv') # Create user-item matrix user_item_matrix = pd.pivot_table(ratings_data, values='rating', index='userId', columns='movieId') # Calculate cosine similarity between users user_similarity = cosine_similarity(user_item_matrix) # Get top n similar users for each user def get_top_similar_users(similarity_matrix, user_index, n=10): similar_users = similarity_matrix[user_index].argsort()[::-1] return similar_users[1:n+1] # Get recommended items for a user based on similar users def get_recommendations(user_id, user_similarity, user_item_matrix, n=10): similar_users = get_top_similar_users(user_similarity, user_id, n) recommendations = user_item_matrix.iloc[similar_users].mean(axis=0).sort_values(ascending=False).head(n) return recommendations # Example usage user_id = 1 recommendations = get_recommendations(user_id, user_similarity, user_item_matrix) print("Top 10 recommended movies for user", user_id) print(recommendations)
Top 10 recommended movies for user 1 movieId 1196 5.000000 50 5.000000 1210 5.000000 260 5.000000 1198 5.000000 2571 5.000000 527 5.000000 1197 5.000000 2762 5.000000 858 4.961538
Die Aufgabe, ein Empfehlungssystem zu erstellen, kann für den Programmierer eine große Komplexität mit sich bringen, aber es ist ein wertvolles Werkzeug, das enorme Vorteile bringen kann. Der Aufbau eines Empfehlungssystems mit Python bietet eine Vielzahl von Optionen, die den Erstellungs- und Anpassungsprozess vereinfachen. Wie bei jedem Codierungsvorhaben können jedoch auch bei der Entwicklung von Empfehlungssystemen potenzielle Probleme auftreten. Um den Erfolg eines Empfehlungssystems sicherzustellen, ist es von entscheidender Bedeutung, sich dieser typischen Komplikationen bewusst zu sein und Maßnahmen zu ihrer Behebung zu ergreifen.
Letztendlich ist es wichtig, sich daran zu erinnern, dass ein Empfehlungssystem ein sehr leistungsfähiges Gut sein kann. Daher lohnt es sich, die nötige Zeit und Mühe zu investieren, um sicherzustellen, dass es richtig aufgebaut ist und optimal funktioniert.
Das obige ist der detaillierte Inhalt vonEmpfehlungssystem in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!