Heim  >  Artikel  >  Backend-Entwicklung  >  Empfehlungssystem in Python

Empfehlungssystem in Python

WBOY
WBOYnach vorne
2023-09-19 22:45:04768Durchsuche

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.

Arten von Empfehlungssystemen

Inhaltsbasiertes Empfehlungssystem

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.

Algorithmus

  • 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.

Beispiel

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.

Ausgabe

                                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   

Kollaboratives Filterempfehlungssystem

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.

Algorithmus

  • 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.

Beispiel

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)

Ausgabe

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

Fazit

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen