Определение важности из дерева решений Spark с помощью MLlib

Мы запускаем Spark 1.0 или 1.1 для дерева решений с использованием MLlib.

Когда я запускал образец кода SCALA с образцами данных, он работал без ошибок, но я не мог определить важность функции по результату.

У кого-нибудь есть такая информация о том, как получить значения?


person SeungCheol Han    schedule 04.12.2014    source источник
comment
Пожалуйста, опубликуйте, что вы пробовали, и свои результаты. Мы не телепаты.   -  person The Archetypal Paul    schedule 04.12.2014


Ответы (2)


В Spark 2+ вы можете делать следующее:

val vectorAssembler = new VectorAssembler().setInputCols(featureArray)
val decisionTreeModel = decisionTree.fit(trainingDataset)
val featureImportances = decisionTreeModel.featureImportances // Sparse or Dense Vector

featureArray.zip(featureImportances.toArray).sortBy(_._2).reverse
person Marsellus Wallace    schedule 18.05.2017

Когда вы тренируете DecisionTreeModel в конце, у вас есть этот класс

class DecisionTreeModel(val topNode: Node, val algo: Algo) {
   ...
}

Вы можете начать обход узлов сверху, и вы можете получить от него все, что вам нужно (прогноз + InformationGainStats)

class Node (
    val id: Int,
    val predict: Double,
    val isLeaf: Boolean,
    val split: Option[Split],
    var leftNode: Option[Node],
    var rightNode: Option[Node],
    val stats: Option[InformationGainStats])
person Eugene Zhulenev    schedule 04.12.2014