Python ist derzeit eine sehr beliebte Programmiersprache. Sein leistungsstarkes Bibliothekssystem und seine leicht zu erlernende Syntax machen es zur ersten Wahl für die Entwicklung verschiedener Anwendungen. Auch im Bereich des maschinellen Lernens ist Python eine häufig verwendete Programmiersprache. In diesem Artikel wird ein Beispiel für die Verwendung von Python zum Aufbau eines Empfehlungssystems vorgestellt.
Empfehlungssysteme beziehen sich auf Algorithmen und Anwendungen, die Benutzern Produkte, Inhalte oder Dienste auf der Grundlage ihres historischen Verhaltens, ihrer Interessen und anderer Informationen empfehlen. Empfehlungssysteme werden häufig im E-Commerce, in sozialen Medien, beim Lesen von Nachrichten und in anderen Bereichen eingesetzt. Python stellt einige Bibliotheken und Frameworks bereit, die zum Aufbau von Empfehlungssystemen verwendet werden können.
1. Arten von Empfehlungssystemen
Empfehlungssysteme werden hauptsächlich in zwei Arten unterteilt: inhaltsbasierte Empfehlungen und kollaborative Filterempfehlungen.
Bei der inhaltsbasierten Empfehlung handelt es sich um die Empfehlung ähnlicher Produkte basierend auf den früheren Hobbys des Benutzers und den Eigenschaften des Produkts. Diese Methode erfordert die Analyse der Produkteigenschaften. Sie können die Textverarbeitungsbibliothek NLTK oder Scikit-learn verwenden, um die Textinformationen der Produktattribute wie den Titel und die Beschreibung des Produkts zu verarbeiten.
Bei der kollaborativen Filterempfehlung geht es darum, die Beziehung zwischen Benutzern anhand ihrer historischen Verhaltensdaten zu ermitteln und Produkte zu empfehlen, an denen sie möglicherweise interessiert sind. Es gibt zwei Hauptmethoden für Empfehlungen zur kollaborativen Filterung: benutzerbasierte kollaborative Filterung und elementbasierte kollaborative Filterung.
Benutzerbasierte kollaborative Filterung gibt Empfehlungen basierend auf der Ähnlichkeit zwischen Benutzern ab, d. h. es werden andere Benutzer mit ähnlichen Interessen wie der aktuelle Benutzer gefunden und dem aktuellen Benutzer Produkte empfohlen, basierend auf den Produkten, die diese Benutzer mögen. Diese Methode erfordert die Berechnung der Ähnlichkeit zwischen Benutzern. Sie können cosine_similarity in Scikit-learn verwenden, um die Kosinusähnlichkeit zu berechnen.
Artikelbasierte kollaborative Filterung gibt Empfehlungen basierend auf der Ähnlichkeit zwischen Artikeln ab, d. h. es werden Artikel gefunden, die den Artikeln ähneln, die dem aktuellen Benutzer gefallen, und diese ähnlichen Artikel dem aktuellen Benutzer empfohlen. Diese Methode erfordert die Berechnung der Ähnlichkeit zwischen Elementen. Sie können „pairwise_distances“ in Scikit-learn verwenden, um den euklidischen Abstand oder den Kosinusabstand zu berechnen.
2. Beispiele für Empfehlungssysteme
Als nächstes stellen wir ein Beispiel für die Verwendung von Python zum Aufbau eines elementbasierten kollaborativen Filterempfehlungssystems vor.
Zuerst müssen wir die Daten vorbereiten. Wir wählen einen Filmbewertungsdatensatz aus, der Informationen wie Film-ID, Benutzer-ID und Bewertungen enthält. Wir können die Pandas-Bibliothek zum Lesen und Verarbeiten von Daten verwenden. Das Folgende ist ein Codebeispiel:
import pandas as pd ratings_data = pd.read_csv('ratings.csv') movies_data = pd.read_csv('movies.csv')
Als nächstes müssen wir die Daten vorverarbeiten und die benötigten Informationen extrahieren. Wir müssen Film-IDs Filmnamen und Benutzer-IDs Labels zuordnen. Hier ist das Codebeispiel:
# 将电影ID映射为电影名称 movie_names = {} for index, row in movies_data.iterrows(): movie_names[row['movieId']] = row['title'] # 将用户ID映射为标号 user_ids = {} user_counter = 0 for index, row in ratings_data.iterrows(): user_id = row['userId'] if user_id not in user_ids: user_ids[user_id] = user_counter user_counter += 1
Dann müssen wir eine Filmbewertungsmatrix erstellen, wobei die Zeilen der Matrix Benutzer darstellen, die Spalten Filme und jedes Element in der Matrix die Bewertung des Films durch den Benutzer darstellt. In der Matrix fehlen einige Werte, was darauf hindeutet, dass der entsprechende Film von Benutzern nicht bewertet wurde. Wir müssen diese fehlenden Werte mit der Füllmethode füllen. Hier ist das Codebeispiel:
import numpy as np n_users = len(user_ids) n_movies = max(movie_names.keys()) rating_matrix = np.zeros((n_users, n_movies)) for index, row in ratings_data.iterrows(): user_id = row['userId'] movie_id = row['movieId'] rating = row['rating'] rating_matrix[user_ids[user_id], movie_id] = rating # 使用均值填充缺失值 mean_ratings = np.zeros((n_users,)) for i in range(n_users): ratings = rating_matrix[i, :] ratings = ratings[ratings > 0] mean_ratings[i] = ratings.mean() rating_matrix[i, ratings == 0] = mean_ratings[i]
Dann müssen wir die Ähnlichkeitsmatrix zwischen Filmen berechnen, die mithilfe der Funktion „pairwise_distances“ in Scikit-learn berechnet werden kann, um den euklidischen Abstand oder den Kosinusabstand zu berechnen. Hier wählen wir den Kosinusabstand. Hier ist das Codebeispiel:
from sklearn.metrics.pairwise import pairwise_distances movie_similarity = 1 - pairwise_distances(rating_matrix.T, metric='cosine')
Abschließend müssen wir dem Benutzer Filme empfehlen. Wir können Filme basierend auf den Lieblingsfilmen des Benutzers empfehlen, die ihm ähnlich sind. Das Folgende ist ein Codebeispiel:
# 找到用户最喜欢的电影 user_id = 0 user_ratings = rating_matrix[user_id, :] fav_movie = np.argmax(user_ratings) print('用户 %d 最喜欢的电影是 %s' % (user_id, movie_names[fav_movie])) # 根据相似度找到相似的电影 similar_movies = movie_similarity[fav_movie, :] top_k = 5 top_k_movies = np.argsort(similar_movies)[::-1][:top_k] for i, movie_id in enumerate(top_k_movies): print('Top %d 推荐电影是 %s' % (i+1, movie_names[movie_id]))
Das Obige ist ein Python-Beispiel für ein elementbasiertes Empfehlungssystem für die kollaborative Filterung.
Zusammenfassung
Das Empfehlungssystem ist eine weit verbreitete Anwendung für maschinelles Lernen. Python bietet eine Fülle von Bibliotheken und Frameworks, die Entwicklern beim schnellen Aufbau von Empfehlungssystemen helfen können. In diesem Artikel wird ein Beispiel für die Verwendung von Python zum Aufbau eines elementbasierten kollaborativen Filterempfehlungssystems vorgestellt. Ich hoffe, dass es den Lesern hilfreich sein wird.
Das obige ist der detaillierte Inhalt vonBeispiele für Empfehlungssysteme in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!