Criar modelos implícitos
Agora que você definiu todos os valores de hiperparâmetros, vamos pedir ao Spark para construir modelos suficientes para testar cada combinação. Para isso, um loop for é fornecido aqui. Siga as instruções abaixo para criar automaticamente esses modelos ALS. Nos exercícios seguintes, você vai executar esses modelos em conjuntos de dados de teste para ver qual deles tem o melhor desempenho.
O algoritmo ALS já foi importado para você. As listas que você criou no último exercício (ranks, maxIters, regParams, alphas) também já foram criadas para você.
Este exercicio faz parte do curso
Construindo mecanismos de recomendação com PySpark
Instruções do exercicio
- Uma lista vazia chamada
model_listé fornecida aqui. O loopforvai criar um modelo para cada combinação de hiperparâmetros recebida e colocá-lo emmodel_list. - Complete o loop
forreferenciando o conteúdo de cada lista, onderrepresenta os elementos da listaranks,mirepresenta os elementos da listamaxIters,rprepresenta os elementos da listaregParamsearepresenta os elementos da listaalphas. - Imprima
len(model_list)e tambémmodel_listpara garantir que cada modelo foi criado. O tamanho deve ser igual ao produto dos comprimentos de cada lista de hiperparâmetros acima. Você pode executar a validação adicional fornecida para ter certeza.
exercicio interativo prático
Tente este exercicio completando este código de exemplo.
# For loop will automatically create and store ALS models
for r in ____:
for mi in ____:
for rp in ____:
for a in ____:
model_list.append(ALS(userCol= "userId", itemCol= "songId", ratingCol= "num_plays", rank = r, maxIter = mi, regParam = rp, alpha = a, coldStartStrategy="drop", nonnegative = True, implicitPrefs = True))
# Print the model list, and the length of model_list
print (model_list, "Length of model_list: ", len(____))
# Validate
len(model_list) == (len(ranks)*len(maxIters)*len(regParams)*len(alphas))