工業數據分析技術與實戰之運作優化——崑崙數據田春華培訓聽課記錄

崑崙數據田春華老師在微信公衆號的專欄培訓:工業數據分析與實戰。培訓給出了一些實際的數據分析例子,包括“設備管理”、“運作優化”和“營銷服務”三類;然後講了數據分析的基本框架、方法和技術;最後給出了大數據時代,數據分析的認識誤區和挑戰。田老師發音不標準啊,好多詞聽好幾遍,再關聯上下文,連猜帶蒙的才勉強能明白,不過有的也不一定對。記錄以反覆學習。
視頻鏈接

————————————————
接上篇:
工業數據分析技術與實戰之設備管理

上節課講的與設備管理相關的例子,這節課將運作優化相關的例子。第一個例子先看一個集裝箱碼頭的。集裝箱碼頭就是一個貨物中轉的地方,船來了,船上的集裝箱趕緊卸下來;要裝船的集裝箱能夠儘快的裝船運走,總之就是集裝箱貨物在碼頭待的時間越短越好,也就是吞吐量越大越好。這裏面有個問題就是堆場優化,就是說需要往一艘船上裝的箱子儘量擺在一起,船來了以後,不用跑好幾個地方,就在一個地方把貨物就裝全了。一般碼頭的工作人員是三班倒,每個班8小時。一個班會來多少艘船,每艘船需要多少個集裝箱。比如一艘船能拉20件,那分配位置的時候就把一片能放20件集裝箱的位置分配給這艘船。這裏的問題就是通過精確預測未來一天的裝櫃量,優化堆場運作。它的難點是要求的粒度比較細。如果遇到日期還沒問題,遇到每個航線還沒問題,關鍵還要分解到港,一個航線,可能中間跨五個港,不同港口的箱子,還是要分開裝的,比如最遠的港要裝在最裏面,最近的港要放在最外面最上面。甚至要看貨櫃類型,是20尺的箱子還是40尺的箱子,因爲在碼放的時候有安全要求,40尺的要在下面,20尺的要在上面,還有每個箱子的重量等級,在爲船配重的時候,不同重量的箱子還是要分開的。在預測目的港和貨櫃類型的時候就很難了,因爲一個班組好多時候都只來1件兩件8件,10件,大多是10件之內,沒有很多。這還不是最難的,更難的是比如港口不可能每天都風平浪靜,有時候有大霧,需要封閉港口,颱風,還有的時候是船延誤了,還有的是船航線調整,有的停掉。在綜合這些業務、環境、天氣等等條件下,還能很好的預測,是最難的。比如說在臺風前,一般會拼命的送箱子,在臺風到來的時候就停了,颱風過去後又一個反彈。包括一些是有的貨主要求提前三週交箱子,有的貨主要求晚交。這些因素造成我們做一個精度很高的模型非常難。我們的難點不在通用算法,而在於處理這些特殊情況。
第二個例子,講一下航空裝貨的例子。這個問題會讓大家自然的想到揹包問題,也就是怎麼裝的越多越好。但其實業務上完全不是一回事兒,並不是裝的越多越好能解決的。所以說在實際解決問題的時候,一些看起來是使用學術上經典算法能解決的,實際上業務目標是完全不一樣的。這裏面業務目標跟船一樣,一個飛機停多個航段,裝貨的時候,首先遠航程的貨在裏面,近航程的在外面,這樣方便飛機停下以後卸貨比較容易,第二就是儘量避免出錯,把同一批貨放到一起,不能爲了裝更多,更好的平衡,把同一批(同一個地點要裝卸的)貨物分散到多處,這樣就很容易漏卸錯卸;再就是考慮貨的優先級,比如下一站要轉機的,要放在最外面,飛機一停,就能立馬轉運到另一架飛機上,而在本地是目的地的貨就可以晚一些卸。再一個問題就是,在這一站裝貨的時候,下一站的貨、人其實是不能完全清楚的,這時如果再用運籌優化去解,是解不出來的,沒有那麼多數據。在這個項目裏,用戶有很有經驗的配載員,他把自己過去多少年的配載經驗,總結成規則,想用規則引擎的方式解決,一提數據分析,肯定會和專家系統,規則引擎結合到一起,是脫不了的。這幾個用戶很牛,他們畫了大概200多頁的visio圖,用來描述他們配載經驗總結出來的規則,然後就說能把這些規則實現出來,做成規則引擎,到時候用這個系統一跑,配載單就出來了,非常理想。系統只要實現把飛行計劃抓過來,把航班信息、旅客信息、貨物信息、天氣信息抓過來,分別在飛機起飛前1小時、45分鐘、30分鐘做三次配載,完了如果現場再有什麼問題,就做人工調整,然後再輸入到系統裏面,下一站再滾動。這樣就完了,非常簡單。但是實際做的時候發現,他們給出的專家規則,離計算機能執行的地步差的非常遠。這200多頁的規則,有漏的,有不嚴謹的,有死循環的,什麼問題都有。需要再重新把他們的邏輯消化吸收重新畫出來,變得更通用,但是也不敢保證是百分百對。這也是說,好多專家規則專家系統聽起來容易,但是他們給的大多是不能直接用的,會存在各種問題。包括飛機上,實際情況遠遠要複雜的多,比如要運輸遺體,那這就有很多講究,就不能隨便放,上面也不能壓東西。假如有這種特殊情況,倉容馬上就降下來了。而且還要保證飛機重心、配載平衡等。再就是要降低裝貨的錯誤率,錯放一次,可能80%的由優化帶來的時間就被浪費掉了。最後纔是越多愈好。從這個例子我們可以看到,專家知識我們要尊重,但是他們給出的東西離計算機能夠執行還差的很遠,需要我們進一步梳理總結,做大量的工作才能實現。而且怎麼驗證所實現的規則是自洽的呢?我們這裏採用了兩種方法,一種是當改變了一條規則時,使用過去五年的數據跑一邊,看看有沒有問題,看看自動配載的單據,與一個有經驗的配載員給出的配載單據有什麼差別,然後找到這些差別的原因。這樣也還是不能覆蓋所有的情況,我們採用另一種方法,產生幾千萬個虛擬的航班配載需求,讓計算機配,看有沒有異常。通過這些驗證才能保證一個複雜的專家規則,自動化運行兩年三年的時間。這個也造成了一個看起來很好的專家系統,爲什麼到現實中間都舉步維艱,一個專家規則到一個能自動運行的計算機系統,中間要補很多的課,要做很多的工作,這時候我們的數據分析,和專家知識,都非常的重要。
下面講第三個例子,備件需求預測。比如我們好多企業在好多地方有服務處,服務處要準備各種配件。作爲服務商來講,希望能囤積一些配件來提高服務效率。但是對於製造商來說,這些囤積的配件就會造成成本積壓。所以製造商希望知道各地服務商的銷售量是多少。這個聽起來比集裝箱問題簡單多了,它不需要做到單次,只要做到月就夠了,或者一旬,一旬是多少,因爲它的訂貨週期是兩三週。這個看起來很簡單,就是一個時間序列的預測,但是我們沒想到的是,難度不來自於這些東西,而是好多事件在數據中沒有反應,比如過去做的營銷、促銷,甚至有些特意囤貨,比如年底囤貨。這些信息都不在信息系統裏面。比如某一年的12月29號30號31號三天的銷量,是過去一個月銷量的和,這明顯就是年底爲了衝業績的囤貨。這些信息可能在信息系統中沒有體現,但是對我們的數據分析就是干擾,這個問題我們要通過數據的魯棒性解決。但是魯棒性太強又會帶來另外一個問題,就是宏觀經濟。宏觀經濟的變化,比如房地產固定投入降低之後,會影響整個工程機械行業,這些的備件需求量就會降低。那這個提前量怎麼搞,因爲我們歷史數據的反應都是滯後的,比如我們拿到統計局的GDP數據也是滯後的。這時候我們做預測,不管是做鋼鐵預測,各種預測,最大的問題就是提前性怎麼搞,特別是宏觀經濟的提前性怎麼搞。這個在工程機械裏好的一點是我們當時有工況數據,一般我們預測的是易損件,易損件與它的開工強度開工量是有關的。如果我們知道每個地區的開工強度開工量的話,加進去就可以有一定的提前量。但是實際情況也非常有意思,不同的地區的提前量是不一樣的,山東和廣東是不一樣的,包括節假日的影響。從這裏看出,好多預測難的不是數據分析概念的正常情況下的預測,而是業務概念的正常情況的預測。業務正常情況下,數據會有好多幹擾,比如促銷、節日答謝客戶、宏觀經濟變化,包括數據可能會升級,這都對數據分析造成干擾。但是這些都是數據分析師要做的一部分,我們不應該認爲數據說明了一切,這也是我們經常講,數據分析師應該相信數據,但不迷信數據的一個重要原因。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章