Tworzenie podziałów na zbiór testowy i treningowy oraz budowanie modelu ALS
Wiesz już, jak zbudować model ALS – zrobiłeś to w poprzednim rozdziale. Teraz zrobimy to ponownie, ale tym razem wykonamy kilka dodatkowych kroków, aby w pełni zbudować model z walidacją krzyżową.
Na początek zaimportujmy niezbędne funkcje i przygotujmy zbiory treningowy oraz testowy przed krokiem walidacji krzyżowej.
To ćwiczenie jest częścią kursu
Budowanie silników rekomendacji w PySpark
Instrukcje do ćwiczenia
- Zaimportuj
RegressionEvaluatorzml.evaluation, algorytmALSzml.recommendation, a takżeParamGridBuilderiCrossValidatorzml.tuning. - Podziel dane
ratingsna zbiór treningowy i testowy w proporcji 80/20, używając metodyrandomSplit. Nazwij zbiorytrainitest, a ziarno losowości ustaw na1234. - Zbuduj model ALS, podając Sparkowi nazwy kolumn z ramki danych
ratings, które odpowiadają parametromuserCol,itemColiratingCol. Ustaw argumentnonnegativenaTrue,coldStartStrategyna"drop", a argumentimplicitPrefsnaFalse, aby wskazać, że nie korzystasz z preferencji niejawnych. Nazwij ten modelals. - Sprawdź, czy model został poprawnie utworzony, wywołując funkcję
type()na obiekcieals. Wynik powinien wskazywać typ modelu.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Import the required functions
from pyspark.ml.evaluation import ____
from pyspark.ml.recommendation import ____
from pyspark.ml.tuning import ____, ____
# Create test and train set
(train, test) = ratings.___([0.____, 0.____], seed = ____)
# Create ALS model
als = ALS(userCol="____", itemCol="____", ratingCol="____", nonnegative = ____, implicitPrefs = ____)
# Confirm that a model called "als" was created
type(____)