sklearn決策樹訓(xùn)練結(jié)果參數(shù)解釋

  • 在使用sklearn的模型時,我們基本上不關(guān)心訓(xùn)練過程,只關(guān)心訓(xùn)練結(jié)果,然后直接使用模型去預(yù)測新數(shù)據(jù)集。比如,直接使用形如clf.predict(x) 或者clf.predict_proba(x),就能得出預(yù)測結(jié)果?;蛘呤褂胘oblib模塊中的dump和load,將已經(jīng)訓(xùn)練過的模型導(dǎo)入,直接使用。但是,在實(shí)際項(xiàng)目中,可能需要將模型嵌入到j(luò)ava工程中(因?yàn)楝F(xiàn)在的項(xiàng)目很大一部分是java開發(fā)的),這就需要考慮java工程和模型的由于不同語言之間存在的相通性而產(chǎn)生的一些兼容性問題或者效率問題,尤其在需要即時反饋的項(xiàng)目中是需要重點(diǎn)考慮的。在考慮模型嵌入問題時,可能有多種解決方法,比如用jpython調(diào)用python程序,通過系統(tǒng)的runtime調(diào)用python程序,將訓(xùn)練參數(shù)導(dǎo)出到對應(yīng)語言的版本(使用python包m2cgen,porter等)或者用pmml轉(zhuǎn)換成xml文件。通過以上幾種方式實(shí)現(xiàn)的跨平臺部署,可能存在以下問題,一個是在調(diào)用python程序時,語言之間的數(shù)據(jù)通信需要通過序列化和反序列化需要消耗一定時間,而且頻繁調(diào)用程序?qū)Ψ?wù)器的壓力較大。如果是使用工具將參數(shù)導(dǎo)出,那么在將參數(shù)文件導(dǎo)入項(xiàng)目中時可能存在一些細(xì)節(jié)性問題,比如預(yù)測結(jié)果不準(zhǔn)確,甚至無法編譯運(yùn)行,且可能參數(shù)極多,文件過大,編譯時間很長。本文其實(shí)是采用參數(shù)導(dǎo)出的方式,實(shí)現(xiàn)跨平臺部署,不過沒有使用既有的導(dǎo)出工具,而是自己寫了參數(shù)導(dǎo)出并應(yīng)用在java項(xiàng)目中,實(shí)現(xiàn)與原版模型預(yù)測效果一致。
  • 在應(yīng)用模型時,只需五個參數(shù)。
    • clf.estimators_.tree_.feature:存放每個節(jié)點(diǎn)所采用的特征
    • clf.estimators_.tree_.threshold:存放每個節(jié)點(diǎn)特征的閾值
    • clf.estimators_.tree_.children_left:存放經(jīng)過特征和閾值分裂之后的左孩子
    • clf.estimators_.tree_.children_right:存放經(jīng)過特征和閾值分裂之后右孩子
    • clf.estimators_.tree_.value:存放每個節(jié)點(diǎn)屬0的個數(shù)和屬于1的個數(shù)(兩分類模型),歸一化后就是該節(jié)點(diǎn)的各分類的概率值。
  • 預(yù)測新值的一般流程:將新的x值放到訓(xùn)練好的這顆樹模型中,根據(jù)每個節(jié)點(diǎn)的feature和threshold判斷是分為children_left還是children_right,直到該x值被放入某個葉子節(jié)點(diǎn)中,根據(jù)葉子節(jié)點(diǎn)的value計(jì)算出概率。
  • 關(guān)鍵點(diǎn):實(shí)際上在使用模型時,最重要的是判斷什么時候x已經(jīng)到葉子節(jié)點(diǎn)了。其實(shí)只要feature=-2時,那么這之前x所在的節(jié)點(diǎn)就是葉子節(jié)點(diǎn),只要取出該葉子節(jié)點(diǎn)的value,就能計(jì)算出概率。
  • 還不明白的反復(fù)看關(guān)鍵點(diǎn)。也可以將五個值對應(yīng)graphviz的樹形圖,對應(yīng)起來觀察理解。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容