как получить обученную лучшую модель из кроссвалидатора

Я построил конвейер, включая DecisionTreeClassifier (dt), как это

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

Затем я использовал этот конвейер в качестве оценщика в CrossValidator, чтобы получить модель с наилучшим набором гиперпараметров, подобным этому.

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

Наконец, я смог обучить модель на тренировочном тесте с помощью этого кроссвалидатора

val model = c_v.fit(train)

Но вопрос в том, что я хочу просмотреть наилучшую обученную модель дерева решений с параметром.toDebugTree изDecisionTreeClassificationModel, Но модельCrossValidatorModel, Да, вы можете использоватьmodel.bestModel, но это все еще типаModel, вы не можете подать заявку.toDebugTree к этому. И также я предполагаю, что bestModel - это еще и трубопровод, включающийlabelIndexer, featureIndexer, dt, labelConverter.

Так кто-нибудь знает, как я могу получить модель принятия решения из модели, установленнойcrossvalidator, который я мог бы просмотреть фактическую модель поtoDebugString? Или есть ли обходной путь, который я могу просмотреть модель принятия решения?

Ответы на вопрос(2)

Ваш ответ на вопрос