2016-07-04 4 views
0

я построить дерево решений в Спарк MLLibОтображение дерева решений в Спарк MLlib с правильными именами художественных

val dt = new DecisionTreeClassifier().setLabelCol("indexedLabel").setFeaturesCol("indexedFeatures").setImpurity(impurity).setMaxBins(maxBins).setMaxDepth(maxDepth) 

Я показал это следующим образом:

val treeModel = model.stages(1).asInstanceOf[DecisionTreeClassificationModel] 
println("Learned classification tree model:\n" + treeModel.toDebugString) 

В результате текстовое описание дерево с «Features X» вместо фактических имен функций моего набора данных, что делает дерево не интерпретируемым.

У кого-нибудь есть указатели для отображения дерева с правильными именами объектов, позволяющими интерпретировать дерево? Спасибо!!

ответ

0

Модели дерева решений Spark ML (lib) (начиная с версии 1.6.X) не содержат спецификаций функций. В основном, ваш столбец функций («indexedFeatures») представляет собой двойной массив, в котором отдельные элементы массива функционируют как непрерывные пороговые значения разделения.

В соответствующем объекте DataFrame имеется информация о спецификациях функций. Во-первых, проверьте метаданные столбца «indexedFeatures». Если этого недостаточно, проверьте метаданные его составляющих столбцов и т. Д.

Библиотека JPMML-SparkML может использоваться для экспорта моделей трубопроводов Spark ML в формате данных PMML. Его двигатель выполняет отличную коллекцию спецификаций и (реконструкцию) строительных работ.

+0

Спасибо за ваш ответ, вы знаете, как вы можете исследовать составляющие столбцы индексированных элементов? – user3553070

+0

Если вектор функций был собран с использованием 'VectorAssembler', вы можете получить имена составных столбцов с помощью' VectorAssembler # getInputCols() '. – user1808924

Смежные вопросы