2016-06-12 24 views
4

我已經使用DecisionTree模塊在Julia中訓練了一個修剪後的決策樹模型。我現在想保存這個模型以便稍後用於其他數據集。在Julia中保存一個決策樹模型以供日後應用

我試圖將模型轉換爲使用可寫()的導出數據數組,我試圖用writedlm()導出和這些工作都沒有。當我查看模型的類型時,我發現它是一個DecisionTree.Node類型。我不知道如何處理這個問題,無法將其導出/保存。

In:DataFrame(PrunedModel) 
Out:LoadError: MethodError: `convert` has no method matching convert(::Type{DataFrames.DataFrame}, ::DecisionTree.Node) 
This may have arisen from a call to the constructor DataFrames.DataFrame(...), 
since type constructors fall back to convert methods. 
Closest candidates are: 
    call{T}(::Type{T}, ::Any) 
    convert(::Type{DataFrames.DataFrame}, !Matched::Array{T,2}) 
    convert(::Type{DataFrames.DataFrame}, !Matched::Dict{K,V}) 
    ... 
while loading In[22], in expression starting on line 1 
in call at essentials.jl:56 

In:typeof(PrunedModel) 
Out:DecisionTree.Node 

任何想法如何讓這個模型保存以備後用?

回答

6

如果我正確理解這是一個Julia對象,您應該嘗試使用JLD.jl包將該對象保存到磁盤並將其重新加載,保留類型信息。

+2

謝謝,這工作完美。當我將保存的.jld文件導入新會話時,我必須首先使用DecisionTree鍵入,以便會話可以理解正在導入的數據的結構,但在完成此操作並使用JLD後,它可以很好地工作。 – lara