訂閱
糾錯(cuò)
加入自媒體

SparkMLlib GBDT算法工業(yè)大數(shù)據(jù)實(shí)戰(zhàn)

在格物匯之前發(fā)表的《工業(yè)大數(shù)據(jù)挖掘的利器——Spark MLlib》中提到,Spark 的MLlib組件能夠?qū)I(yè)現(xiàn)場(chǎng)海量數(shù)據(jù)進(jìn)行高效挖掘,快速呈現(xiàn)結(jié)果給業(yè)務(wù)分析人員。接下來(lái)將向大家介紹SparkMLlib 中的GBDT算法,并將應(yīng)用該算法對(duì)工業(yè)數(shù)據(jù)進(jìn)行代碼實(shí)戰(zhàn)。

1算法概念

GB(Gradient Boosting)梯度提升算法,GB 共需要進(jìn)行M次迭代,通過(guò)采用梯度下降的方法,每次迭代向損失函數(shù)的負(fù)梯度方向進(jìn)行移動(dòng),從而使損失函數(shù)越來(lái)越小,進(jìn)而使模型越來(lái)越精確。算法偽代碼如下:

GB算法跟原始的Boosting算法相比較,還是有比較明顯的區(qū)別。

Boosting算法開(kāi)始的時(shí)候,是會(huì)給每個(gè)樣本附上權(quán)重的,在每次迭代的時(shí)候就會(huì)增加錯(cuò)的樣本的權(quán)重,減少對(duì)的樣本的權(quán)重,經(jīng)過(guò)N次迭代之后,會(huì)得到N個(gè)分類器,然后我們?cè)賹⑺麄兘M合起來(lái),得到最終模型。

GB算法與Boosting區(qū)別是,他的每一次迭代的目標(biāo)都是減少上一次的殘差,所以在殘差減少的方向上建立一個(gè)新的模型。在GB算法框架上加入決策樹(shù),就是GBDT(GradientBoost Decision Tree)算法。

GBDT主要的優(yōu)點(diǎn)有:

1) 可以靈活處理各種類型的數(shù)據(jù),包括連續(xù)值和離散值。

2) 在相對(duì)少的調(diào)參時(shí)間情況下,預(yù)測(cè)的準(zhǔn)備率也可以比較高。這個(gè)是相對(duì)SVM來(lái)說(shuō)的。

3)使用一些健壯的損失函數(shù),對(duì)異常值的魯棒性非常強(qiáng)。比如 Huber損失函數(shù)和Quantile損失函數(shù)。

4) 很好的利用了弱分類器進(jìn)行級(jí)聯(lián)。

5) 充分考慮的每個(gè)分類器的權(quán)重。

6) 可以得到變量間的重要性排序。

GBDT的主要缺點(diǎn)有:

1)由于弱學(xué)習(xí)器之間存在依賴關(guān)系,難以并行訓(xùn)練數(shù)據(jù),不過(guò)可以通過(guò)自采樣的SGBT來(lái)達(dá)到部分并行。

2完整代碼實(shí)例

工業(yè)生產(chǎn)中,產(chǎn)品在制程過(guò)程中會(huì)有很多特性值,如果能對(duì)產(chǎn)品的特性值及時(shí)進(jìn)行預(yù)測(cè),得到特性值的具體數(shù)值,那么就會(huì)幫組業(yè)務(wù)人員知曉產(chǎn)品的質(zhì)量,實(shí)現(xiàn)產(chǎn)品的全檢,并能防止異常產(chǎn)品后流,造成不必要的浪費(fèi)。

本次實(shí)戰(zhàn)代碼的采用的數(shù)據(jù)是半導(dǎo)體制程中某一道工序的機(jī)臺(tái)的制程參數(shù)值,通過(guò)采用SparkMLlib中的GBDT算法對(duì)工業(yè)現(xiàn)場(chǎng)機(jī)臺(tái)的制程參數(shù)進(jìn)行建模,預(yù)測(cè)出經(jīng)過(guò)該機(jī)臺(tái)生產(chǎn)之后產(chǎn)品的膜層厚度。

SparkMLlib GBDT算法工業(yè)大數(shù)據(jù)實(shí)戰(zhàn)

SparkMLlib GBDT算法工業(yè)大數(shù)據(jù)實(shí)戰(zhàn)

SparkMLlib GBDT算法工業(yè)大數(shù)據(jù)實(shí)戰(zhàn)

SparkMLlib GBDT算法工業(yè)大數(shù)據(jù)實(shí)戰(zhàn)

模型最后輸出模型性能指標(biāo)如下:

Mape(Mean Absolute Percentage Error):0.23%

通過(guò)上圖模型輸出的預(yù)測(cè)值與實(shí)際值對(duì)比,發(fā)現(xiàn)預(yù)測(cè)出來(lái)的產(chǎn)品膜厚的數(shù)值走勢(shì)跟實(shí)際數(shù)值走勢(shì)基本符合,mape達(dá)到0.5%以內(nèi),擬合度相當(dāng)可觀,后續(xù)還可以通過(guò)樣本篩選以及特征工程等手段對(duì)該模型進(jìn)行進(jìn)一步調(diào)優(yōu)。

在模型達(dá)到業(yè)務(wù)需求的擬合度等指標(biāo)后,通過(guò)該模型進(jìn)行部署,實(shí)現(xiàn)產(chǎn)品的“實(shí)時(shí)全檢”,從而實(shí)現(xiàn)產(chǎn)品質(zhì)量的全面監(jiān)控,杜絕異常產(chǎn)品后流;與工廠內(nèi)的抽檢系統(tǒng)結(jié)合后,降低產(chǎn)品的抽檢率,提高工廠的效率。

GBDT算法的用途還是比較廣泛的,它不僅可以處理分類問(wèn)題,能對(duì)線性與非線性回歸問(wèn)題進(jìn)行處理,還能通過(guò)輸出變量間重要因子排序,方便業(yè)務(wù)人員快速定位異常變量。在工業(yè)現(xiàn)場(chǎng)的頑固異常分析還是產(chǎn)品特性預(yù)測(cè)等領(lǐng)域,GBDT算法確實(shí)是很值得數(shù)據(jù)分析人員考慮的一種算法。

本文作者:

格創(chuàng)東智大數(shù)據(jù)工程師黃歡(轉(zhuǎn)載請(qǐng)注明作者及來(lái)源)

聲明: 本文由入駐維科號(hào)的作者撰寫(xiě),觀點(diǎn)僅代表作者本人,不代表OFweek立場(chǎng)。如有侵權(quán)或其他問(wèn)題,請(qǐng)聯(lián)系舉報(bào)。

發(fā)表評(píng)論

0條評(píng)論,0人參與

請(qǐng)輸入評(píng)論內(nèi)容...

請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字

您提交的評(píng)論過(guò)于頻繁,請(qǐng)輸入驗(yàn)證碼繼續(xù)

  • 看不清,點(diǎn)擊換一張  刷新

暫無(wú)評(píng)論

暫無(wú)評(píng)論

文章糾錯(cuò)
x
*文字標(biāo)題:
*糾錯(cuò)內(nèi)容:
聯(lián)系郵箱:
*驗(yàn) 證 碼:

粵公網(wǎng)安備 44030502002758號(hào)