как получить обученную лучшую модель из кроссвалидатора
Я построил конвейер, включая 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
? Или есть ли обходной путь, который я могу просмотреть модель принятия решения?