Cómo obtener el mejor modelo entrenado de un validador cruzado

Construí una tubería que incluye un DecisionTreeClassifier (dt) como este

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

Luego usé esta tubería como el estimador en un CrossValidator para obtener un modelo con el mejor 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, podría entrenar a un modelo en una prueba de entrenamiento con este crossvalidator

val model = c_v.fit(train)

Pero la pregunta es, quiero ver el modelo de árbol de decisión mejor entrenado con el parámetro.toDebugTree deDecisionTreeClassificationModel. Pero el modelo es unCrossValidatorModel. Sí, puedes usarmodel.bestModel, pero todavía es de tipoModel, no puedes aplicar.toDebugTree lo. Y también supongo que el mejor modelo sigue siendo una tubería que incluyelabelIndexer, featureIndexer, dt, labelConverter.

Entonces, ¿alguien sabe cómo puedo obtener el modelo decisionTree del modelo ajustado por elcrossvalidator, que pude ver el modelo real portoDebugString? ¿O hay alguna solución alternativa para ver el modelo decisionTree?

Respuestas a la pregunta(2)

Su respuesta a la pregunta