Construir um modelo ALS
Vamos especificar seu primeiro modelo ALS. Complete o código abaixo para construir seu primeiro modelo ALS.
Lembre-se de que você pode usar o método .columns no data frame ratings para ver os nomes das colunas que contêm os dados de usuário, filme e avaliações. O Spark precisa saber os nomes dessas colunas para executar o ALS corretamente.
Este exercicio faz parte do curso
Construindo mecanismos de recomendação com PySpark
Instruções do exercicio
- Antes de construir nosso modelo ALS, precisamos dividir os dados em dados de treinamento e dados de teste. Use o método
randomSplit()para dividir o dataframeratingsemtraining_dataetest_datausando, respectivamente, uma divisão de 0.8/0.2 e umseedpara o gerador de números aleatórios de42. - Informe ao Spark quais colunas contêm
userCol,itemColeratingCol. Use o método.columnsse necessário. Complete os hiperparâmetros. Definarankcomo 10,maxItercomo 15,regParam(ou lambda) como .1,coldStartStrategycomo"drop", o argumentononnegativedeve serTruee, como nossos dados contêm avaliações explícitas, defina o argumentoimplicitPrefscomoFalse. - Agora ajuste o modelo
alsà partetraining_datados dadosratingschamando o métodoals.fit()sobre otraining_datafornecido. Chame o modelo ajustado demodel. - Gere previsões na parte
test_datados dadosratingschamando o métodomodel.transform()sobre otest_datafornecido. Chame as previsões detest_predictions. Fique à vontade para visualizar as previsões chamando o método.show()emtest_predictions
exercicio interativo prático
Tente este exercicio completando este código de exemplo.
# Split the ratings dataframe into training and test data
(training_data, test_data) = ratings.____([____, ____], seed=42)
# Set the ALS hyperparameters
from pyspark.ml.recommendation import ALS
als = ALS(userCol="____", itemCol="____", ratingCol="____", rank =____, maxIter =____, regParam =____,
coldStartStrategy="____", nonnegative =____, implicitPrefs = ____)
# Fit the mdoel to the training_data
____ = ____.fit(____)
# Generate predictions on the test_data
____ = ____.transform(____)
test_predictions.show()