Wczytywanie zbioru danych MovieLens do RDD
Filtrowanie kolaboratywne to technika stosowana w systemach rekomendacyjnych, w której oceny i interakcje użytkowników z różnymi produktami służą do sugerowania nowych pozycji. Wraz z rozwojem uczenia maszynowego i przetwarzania równoległego systemy rekomendacyjne zyskały dużą popularność i są wykorzystywane w wielu dziedzinach – od filmów i muzyki, przez książki i artykuły naukowe, po zapytania wyszukiwarek i tagi społecznościowe. W tym trzyczęściowym ćwiczeniu zbudujesz prosty system rekomendacji filmów przy użyciu PySpark MLlib, korzystając z fragmentu zbioru danych MovieLens 100k.
W pierwszej części wczytasz dane MovieLens (ratings.csv) do RDD. Każda linia RDD ma format userId,movieId,rating,timestamp – musisz odwzorować dane MovieLens na obiekt klasy Rating (userID, productID, rating), usuwając kolumnę timestamp, a następnie podzielić RDD na zbiory treningowy i testowy.
Pamiętaj, że w przestrzeni roboczej masz dostęp do SparkContext sc. Zmienna file_path (ścieżka do pliku ratings.csv) oraz klasa ALS (Rating) są już dostępne w przestrzeni roboczej.
To ćwiczenie jest częścią kursu
Podstawy Big Data z PySpark
Instrukcje do ćwiczenia
- Wczytaj zbiór danych
ratings.csvdo RDD. - Podziel RDD, używając
,jako separatora. - Dla każdej linii RDD utwórz krotkę
userID, productID, rating, korzystając z klasyRating(). - Losowo podziel dane na zbiór treningowy i testowy (0.8 i 0.2).
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Load the data into RDD
data = sc.____(file_path)
# Split the RDD
ratings = data.____(lambda l: l.split('____'))
# Transform the ratings RDD
ratings_final = ratings.____(lambda line: Rating(int(line[0]), int(____), float(____)))
# Split the data into training and test
training_data, test_data = ratings_final.____([0.8, 0.2])