como obter o melhor modelo treinado de um crossvalidator

Criei um pipeline incluindo um DecisionTreeClassifier (dt) como este

val pipeline = new Pipeline().setStages(Array(labelIndexer, featureIndexer, dt, labelConverter))

Então eu usei esse pipeline como estimador em um CrossValidator para obter um modelo com o melhor conjunto de hiperparâmetros como este

val c_v = new CrossValidator().setEstimator(pipeline).setEvaluator(new MulticlassClassificationEvaluator().setLabelCol("indexedLabel").setPredictionCol("prediction")).setEstimatorParamMaps(paramGrid).setNumFolds(5)

Finalmente, eu poderia treinar um modelo em um teste de treinamento com este crossvalidator

val model = c_v.fit(train)

Mas a questão é: eu quero ver o melhor modelo de árvore de decisão treinado com o parâmetro.toDebugTree doDecisionTreeClassificationModel. Mas modelo é umCrossValidatorModel. Sim, você pode usarmodel.bestModel, mas ainda é do tipoModel, você não pode aplicar.toDebugTree para isso. E também presumo que o bestModel ainda é um pipline, incluindolabelIndexer, featureIndexer, dt, labelConverter.

Alguém sabe como posso obter o modelo decisionTree a partir do modelo ajustado pelocrossvalidator, que eu pude visualizar o modelo realtoDebugString? Ou existe alguma solução alternativa que eu possa exibir o modelo decisionTree?

questionAnswers(2)

yourAnswerToTheQuestion