1
resposta

Obter melhores hiper-parâmetros

Olá, espero que esteja tudo bem com vocês ;)

Possuo uma dúvida quanto ao método de cross-validation utilizando pyspark. Lendo a documentação disponível em: https://spark.apache.org/docs/latest/ml-tuning.html , entendi que o método de cross-validation irá separar o conjunto de dados em treino e teste em k folds diversas vezes, de formas diferentes, para cada separação destas o modelo ou pipeline (estimator) será ajustado aos dados de treino utilizando o mapa de parâmetros que escolhemos e avaliado de acordo com o "evaluator" escolhido.

Ao fim de tudo isso, o modelo retornado será aquele que melhor se ajustou aos dados de acordo com o mapa de hiper-parâmetros.

Minha dúvida é: se eu quisesse saber os hiper-parâmetros do melhor modelo escolhido durante o processo de cross-validação, como eu faria isso? Que parâmetro do meu modelo retornado me permite visualizar esse tipo de informação?

1 resposta

Olá William, tudo bem ? Espero que sim.

Muito interessante sua duvida. Embora exista o método getEstimatorParamMaps, a maneira que eu recomendo para extrair essa informação é utilizando o método getEstimator e depois utilizar o Get + o nome do hiperparâmetro.

Podemos verificar no grid os parâmetros que exploramos.

grid = ParamGridBuilder() \
    .addGrid(rfr.numTrees, [10, 20, 30]) \
    .addGrid(rfr.maxDepth, [5, 10]) \
    .addGrid(rfr.maxBins, [10, 32, 45]) \
    .build()

Por exemplo o numero de arvores.

rfr_cv.getEstimator().getNumTrees()

Depois a profundida maxima.

rfr_cv.getEstimator().getMaxDepth()

E por fim o numero máximo de Bins.

rfr_cv.getEstimator().getMaxBins()

Esse ponto é muito importante, porque depois da exploração vamos treinar novamente o nosso modelo final e devemos utilizar os hiperparâmetros selecionados.

Espero ter ajudado e qualquer duvida não hesite em perguntar.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!