2013-08-28 48 views
0

我已經在Python中使用sklearn模塊運行RandomForestClassifier模型。我將模型保存在一個pickle文件中。然後,我從Oracle提取數據,將其保存爲.csv文件,將此.csv文件發送到可以使用Python打開模型pickle文件的計算機,並對數據進行評分。一旦數據得分,我將結果發送回Oracle。您可以從Scikit-learn RandomForestClassifier中提取評分算法,並將負載係數提取到Oracle中?

是否可以從RandomForestClassifier(.predict_proba)函數中提取評分系數,以便將該數據加載到Oracle中並僅在Oracle內部對數據進行評分?

在閱讀文檔後,看起來評分算法太複雜,不能執行上述建議,因爲它必須在每棵樹上推送每條新記錄,才能達到最終得分概率。它是否正確?

我很感謝你的幫助。

馬特

+0

是的,一個隨機森林通過並行運行一堆決策樹並讓它們對最終結果進行投票來運作。對於Oracle數據庫管理系統來說,這是否太複雜了,取決於你的SQL fu,我猜;) –

回答

1

AFAIK有沒有現成的工具,這樣做,但你可以閱讀基地decision tree class的用Cython源代碼,特別是predict方法瞭解預測從的擬合參數是如何工作的決策樹模型。隨機森林預測將單個樹預測視爲二進制概率(0或1),對它們進行平均並將它們歸一化爲written here

雖然將它轉換爲PL/SQL可能並不簡單。顯然,Oracle Data Mining對PMML Import/Export of decision tree models和其他模型有一些支持。不幸的是,我不知道任何PMML出口商的scikit-learn決策樹的實現(雖然以graphviz tree exportersource code爲例可以更容易編寫)。

另請注意,在PostgreSQL中,您可以直接在使用PL/Python編寫的DB函數中使用scikit-learn。