5
我遇到的Apache Spark問題之一是可視化決策樹。反饋:Apache Spark決策樹的可視化
我可以使用DecisionTree.trainClassifier
生成一棵樹。 我可以用得到一些基本的輸出:
print(model.toDebugString())
但理想情況下,電流輸出:
If (feature 0 <= -35.0)
If (feature 24 <= 176.0)
Predict: 2.1
If (feature 24 = 176.0)
Predict: 4.2
Else (feature 24 > 176.0)
Predict: 6.3
Else (feature 0 > -35.0)
If (feature 24 <= 11.0)
Predict: 4.5
Else (feature 24 > 11.0)
Predict: 10.2
可以像JSON輸出,或什麼可分析的,這樣我們就可以層中的D3可視化圖書館。使用上面的例子...
{
"node": [
{
"name":"node1",
"rule":"feature 0 <= -35.0",
"children":[
{
"name":"node2",
"rule":"feature 24 <= 176.0",
"children":[
{
"name":"node4",
"rule":"feature 20 < 116.0",
"predict": 2.1
},
{
"name":"node5",
"rule":"feature 20 = 116.0",
"predict": 4.2
},
{
"name":"node5",
"rule":"feature 20 > 116.0",
"predict": 6.3
}
]
},
{
"name":"node3",
"rule":"feature 0 > -35.0",
"children":[
{
"name":"node7",
"rule":"feature 3 <= 11.0",
"predict": 4.5
},
{
"name":"node8",
"rule":"feature 3 > 11.0",
"predict": 10.2
}
]
}
]
}
]
}
什麼是你的問題? –
我不知道有任何直接從模型中獲取決策規則的方法,但是您可以保存它並讀取數據文件以獲得易於處理的表示形式。你可以在我的答案[這裏]找到一個例子(http://stackoverflow.com/a/31975050/1560062)。 – zero323
您也可以從model.rootNode開始,將其轉換爲InternalNode並訪問leftChild,rightChild等。從那裏你可以生成類似於你的JSON。 – pzecevic